# সার্ভে API ও MCP


# সার্ভে API ও MCP

imatic Survey আপনার স্ট্যাকের বাকি অংশের সাথে সংযুক্ত হয় — আপনার নিজস্ব সিস্টেমে প্রতিক্রিয়া পুশ করা, ফর্মের কাজ স্বয়ংক্রিয় করা, এবং AI এজেন্টদের আপনার ফর্মের সাথে কাজ করতে দেওয়া। এই পেজটি ডেভেলপার সারফেস কভার করে: API কী, webhook, REST API, MCP সার্ভার, এবং ইমেইল ডেলিভারি। এই বৈশিষ্ট্যগুলি আজই চালু আছে।

![ইন্টিগ্রেশন এবং ডেভেলপার সেটিংস এলাকা](/img/screenshots/survey/integrations.png)
*ডেভেলপার এলাকা হলো যেখানে আপনি API কী, webhook, এবং ইন্টিগ্রেশন পরিচালনা করেন।*

## API কী

API কী Survey **REST API**-এর বিপরীতে আপনার নিজস্ব অ্যাপ এবং স্ক্রিপ্ট অথেনটিকেট করে। **/developers/api-keys**-এর অধীনে এগুলি তৈরি ও পরিচালনা করুন, যেখানে আপনি একটি কী ইস্যু করতে, এটিকে একটি নাম দিতে, এর ব্যবহার পরিসংখ্যান দেখতে, এবং এটি কখনও প্রকাশিত হলে বাতিল করতে পারেন।

একটি কী সম্পূর্ণরূপে কেবলমাত্র একবার দেখানো হয়, তৈরির সময় — তখনই এটি কপি করুন এবং কোথাও নিরাপদে সংরক্ষণ করুন। এরপর আপনি তালিকায় কেবলমাত্র এর প্রিফিক্স দেখবেন, এর নাম, স্কোপ, এবং সর্বশেষ-ব্যবহারের সময়ের পাশাপাশি।

API `https://surveyapi.imatic.ai`-এ হোস্ট করা, এবং কী-গুলি `sk_`-প্রিফিক্সযুক্ত। আপনার কী-টি একটি Bearer টোকেন হিসেবে পাঠান। এন্ডপয়েন্টগুলি কাস্টম-verb POST অনুরোধ — উদাহরণস্বরূপ, আপনার ফর্মগুলি তালিকাভুক্ত করতে:

```bash
curl -X POST https://surveyapi.imatic.ai/forms/list \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

:::tip[কীগুলি গোপন রাখুন]

একটি API কী-কে একটি পাসওয়ার্ডের মতো বিবেচনা করুন। এটি সোর্স কন্ট্রোলে কমিট করবেন না, এবং ফাঁস হয়েছে সন্দেহ করলে এটি রোটেট করুন।

:::

## Webhooks

Webhook আপনার নিয়ন্ত্রিত একটি URL-এ ইভেন্ট পুশ করে, যাতে পরিবর্তনের জন্য পোল করার পরিবর্তে কিছু ঘটার মুহূর্তেই আপনার সিস্টেম প্রতিক্রিয়া জানায়। **/developers/webhooks**-এর অধীনে এগুলি কনফিগার করুন।

উপলব্ধ ইভেন্ট:

- **`response.created`** — একটি নতুন প্রতিক্রিয়া জমা দেওয়া হলে চালু হয়।
- **`response.flagged`** *(পরিকল্পিত — এখনও নির্গত হয় না)* — একটি প্রতিক্রিয়া ফ্ল্যাগ করা হলে (উদাহরণস্বরূপ, জালিয়াতি বা স্প্যাম চেক দ্বারা) চালু হয়।
- **`response.updated`** *(পরিকল্পিত — এখনও নির্গত হয় না)* — একটি প্রতিক্রিয়া আপডেট বা মডারেট করা হলে চালু হয়।
- **`form.published`** *(পরিকল্পিত — এখনও নির্গত হয় না)* — একটি ফর্ম প্রকাশিত হলে চালু হয়।
- **`form.closed`** *(পরিকল্পিত — এখনও নির্গত হয় না)* — একটি ফর্ম বন্ধ হলে চালু হয়।

প্রতিটি ডেলিভারি একটি **HMAC-SHA256** স্বাক্ষর দিয়ে স্বাক্ষরিত হয় (`X-Signature` হেডারে পাঠানো হয়, `X-Timestamp`, `X-Event-Id`, এবং `X-Event-Type`-এর পাশাপাশি) যাতে আপনার এন্ডপয়েন্ট যাচাই করতে পারে অনুরোধটি সত্যিই imatic Survey থেকে এসেছে এবং পরিবহনে কারচুপি করা হয়নি। ব্যর্থ ডেলিভারিগুলি ব্যর্থ হিসেবে চিহ্নিত হওয়ার আগে এক্সপোনেনশিয়াল ব্যাকঅফ দিয়ে **পুনরায় চেষ্টা** করা হয়।

## REST API

**REST API** আপনাকে প্রোগ্রামগতভাবে ফর্ম ও প্রতিক্রিয়া পরিচালনা করতে দেয়। এন্ডপয়েন্টগুলি একটি ভার্সনযুক্ত পাথ প্রিফিক্সের পরিবর্তে কাস্টম-verb POST অনুরোধ ব্যবহার করে — উদাহরণস্বরূপ, `POST /forms/list` (ফর্ম তালিকাভুক্ত করা), `POST /forms/get-for-edit` (একটি ফর্মের স্কিমা পড়া), `POST /forms/generate` (AI দিয়ে একটি ফর্ম জেনারেট করা), `POST /forms/duplicate`, এবং `POST /forms/delete`। এটি `https://surveyapi.imatic.ai`-এ হোস্ট করা এবং একটি [API কী](#api-কী) দিয়ে অথেনটিকেট করা হয় — একটি `sk_`-প্রিফিক্সযুক্ত Bearer টোকেন।

## AI এজেন্টদের জন্য MCP সার্ভার

**MCP সার্ভার** Model Context Protocol-এর মাধ্যমে AI এজেন্টদের কাছে Survey প্রকাশ করে, যাতে একটি সহায়ক আপনার পক্ষ থেকে আপনার ফর্ম ও প্রতিক্রিয়ার সাথে কাজ করতে পারে। এটি `POST /mcp`-এর মাধ্যমে **JSON-RPC 2.0** বলে এবং আপনার portal **JWT** (একটি Bearer টোকেন হিসেবে পাঠানো) দিয়ে অথেনটিকেট করা হয়, যা প্রতিটি কল আপনার প্রতিষ্ঠানে স্কোপ করে।

এটি **১০টি টুল** সহ আসে:

- **`whoami`** — অথেনটিকেটেড প্রতিষ্ঠান প্রসঙ্গ রিটার্ন করে।
- **`list_forms`** — আপনার প্রকাশিত ফর্মগুলি তালিকাভুক্ত করে।
- **`get_form`** — একটি ফর্মের স্কিমা এবং ফিল্ড পড়ে।
- **`submit_response`** — একটি ফর্মে একটি প্রতিক্রিয়া জমা দেয়।
- **`list_responses`** — প্রতিক্রিয়াগুলি তালিকাভুক্ত করে (পেজিনেটেড)।
- **`get_response`** — একটি একক প্রতিক্রিয়া পড়ে।
- **`get_response_stats`** — সমষ্টিগত প্রতিক্রিয়া পরিসংখ্যান পড়ে।
- **`create_poll`** — একটি একক-প্রশ্ন পোল তৈরি ও প্রকাশ করে।
- **`cast_vote`** — একটি পোলে একটি ভোট দেয়।
- **`live_poll_results`** — লাইভ পোল গণনা পড়ে।

:::info[দুটি ভিন্ন ক্রেডেনশিয়াল]

**MCP সার্ভার এবং webhook** আপনার portal **JWT** (org-স্কোপড) ব্যবহার করে। **REST API** আপনি /developers/api-keys-এর অধীনে তৈরি করা একটি **API কী** ব্যবহার করে। আপনি যে সারফেস কল করছেন তার জন্য সঠিক ক্রেডেনশিয়াল বেছে নিন।

:::

## ইমেইল ডেলিভারি

ইমেইল ডেলিভারি (উদাহরণস্বরূপ, প্রতিক্রিয়া বিজ্ঞপ্তি) **/settings**-এর অধীনে ইমেইল-ডেলিভারি ট্যাবে কনফিগার করা হয়। আপনি **ছয়টি প্রোভাইডার**-এর যেকোনোটি সংযুক্ত করতে পারেন:

- **Gmail**
- **Resend**
- **SendGrid**
- **Postmark**
- **Amazon SES**
- **Custom SMTP**

## পরবর্তী ধাপ

- [একটি ফর্ম প্রকাশ ও শেয়ার করুন](./publishing-sharing)
- [প্রতিক্রিয়া দেখুন](./responses)
- [অ্যানালিটিক্স খুলুন](./analytics)
- [AI দিয়ে একটি ফর্ম জেনারেট করুন](./ai-generation)
