# Survey API & MCP


# Survey API & MCP

imatic Survey നിങ്ങളുടെ സ്റ്റാക്കിന്റെ ബാക്കി ഭാഗവുമായി ബന്ധിപ്പിക്കുന്നു — റെസ്പോൺസുകൾ നിങ്ങളുടെ സ്വന്തം സിസ്റ്റങ്ങളിലേക്ക് അയയ്ക്കുക, ഫോം ജോലി ഓട്ടോമേറ്റ് ചെയ്യുക, AI ഏജന്റുകളെ നിങ്ങളുടെ ഫോമുകളുമായി പ്രവർത്തിക്കാൻ അനുവദിക്കുക. ഈ പേജ് ഡെവലപ്പർ സർഫേസ് ഉൾക്കൊള്ളുന്നു: API കീകൾ, webhook-കൾ, REST API, MCP സെർവർ, ഇമെയിൽ ഡെലിവറി. ഈ ഫീച്ചറുകൾ ഇന്ന് ലൈവാണ്.

![ഇന്റഗ്രേഷനുകളും ഡെവലപ്പർ ക്രമീകരണ ഭാഗവും](/img/screenshots/survey/integrations.png)
*API കീകൾ, webhook-കൾ, ഇന്റഗ്രേഷനുകൾ എന്നിവ നിങ്ങൾ കൈകാര്യം ചെയ്യുന്ന ഇടമാണ് ഡെവലപ്പർ ഭാഗം.*

## API കീകൾ

Survey **REST API**-ക്കെതിരെ നിങ്ങളുടെ സ്വന്തം ആപ്പുകളും സ്ക്രിപ്റ്റുകളും API കീകൾ ആധികാരികമാക്കുന്നു. **/developers/api-keys** ന് കീഴിൽ അവ സൃഷ്ടിക്കുകയും കൈകാര്യം ചെയ്യുകയും ചെയ്യുക, അവിടെ നിങ്ങൾക്ക് ഒരു കീ ഇഷ്യൂ ചെയ്യാം, അതിന് ഒരു പേര് നൽകാം, അതിന്റെ ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകൾ കാണാം, അത് ഒരിക്കലെങ്കിലും വെളിപ്പെട്ടാൽ റദ്ദാക്കാം.

ഒരു കീ പൂർണ്ണമായി കാണിക്കുന്നത് സൃഷ്ടിക്കുമ്പോൾ ഒരിക്കൽ മാത്രമാണ് — അപ്പോൾ അത് പകർത്തി സുരക്ഷിതമായ ഒരിടത്ത് സൂക്ഷിക്കുക. അതിനുശേഷം ലിസ്റ്റിൽ അതിന്റെ പ്രിഫിക്സ് മാത്രമേ കാണൂ, അതിന്റെ പേര്, സ്കോപ്പുകൾ, അവസാനം ഉപയോഗിച്ച സമയം എന്നിവയ്ക്കൊപ്പം.

API ഹോസ്റ്റ് ചെയ്തിരിക്കുന്നത് `https://surveyapi.imatic.ai`-ലാണ്, കീകൾ `sk_`-പ്രിഫിക്സോടെയാണ്. നിങ്ങളുടെ കീ ഒരു Bearer ടോക്കൺ ആയി അയയ്ക്കുക. എൻഡ്പോയിന്റുകൾ custom-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 കീയെ ഒരു പാസ്‌വേഡ് പോലെ പരിഗണിക്കുക. അത് source control-ലേക്ക് കമ്മിറ്റ് ചെയ്യരുത്, ചോർന്നുവെന്ന് സംശയിച്ചാൽ അത് മാറ്റുക.

:::

## Webhooks

Webhook-കൾ നിങ്ങൾ നിയന്ത്രിക്കുന്ന ഒരു URL-ലേക്ക് ഇവന്റുകൾ അയയ്ക്കുന്നു, അതിനാൽ മാറ്റങ്ങൾക്കായി പോളിംഗ് ചെയ്യുന്നതിന് പകരം എന്തെങ്കിലും സംഭവിക്കുന്ന നിമിഷം നിങ്ങളുടെ സിസ്റ്റങ്ങൾ പ്രതികരിക്കുന്നു. **/developers/webhooks** ന് കീഴിൽ അവ കോൺഫിഗർ ചെയ്യുക.

ലഭ്യമായ ഇവന്റുകൾ:

- **`response.created`** — ഒരു പുതിയ റെസ്പോൺസ് സമർപ്പിക്കുമ്പോൾ പ്രവർത്തിക്കുന്നു.
- **`response.flagged`** *(ആസൂത്രണം ചെയ്തത് — ഇതുവരെ പുറപ്പെടുവിച്ചിട്ടില്ല)* — ഒരു റെസ്പോൺസ് ഫ്ലാഗ് ചെയ്യപ്പെടുമ്പോൾ പ്രവർത്തിക്കും (ഉദാഹരണത്തിന്, fraud അല്ലെങ്കിൽ spam പരിശോധനകൾ വഴി).
- **`response.updated`** *(ആസൂത്രണം ചെയ്തത് — ഇതുവരെ പുറപ്പെടുവിച്ചിട്ടില്ല)* — ഒരു റെസ്പോൺസ് അപ്ഡേറ്റ് ചെയ്യുകയോ മോഡറേറ്റ് ചെയ്യുകയോ ചെയ്യുമ്പോൾ പ്രവർത്തിക്കും.
- **`form.published`** *(ആസൂത്രണം ചെയ്തത് — ഇതുവരെ പുറപ്പെടുവിച്ചിട്ടില്ല)* — ഒരു ഫോം പ്രസിദ്ധീകരിക്കുമ്പോൾ പ്രവർത്തിക്കും.
- **`form.closed`** *(ആസൂത്രണം ചെയ്തത് — ഇതുവരെ പുറപ്പെടുവിച്ചിട്ടില്ല)* — ഒരു ഫോം അടയ്ക്കുമ്പോൾ പ്രവർത്തിക്കും.

ഓരോ ഡെലിവറിയും ഒരു **HMAC-SHA256** സിഗ്നേച്ചർ ഉപയോഗിച്ച് സൈൻ ചെയ്യപ്പെടുന്നു (`X-Signature` ഹെഡറിൽ, `X-Timestamp`, `X-Event-Id`, `X-Event-Type` എന്നിവയ്ക്കൊപ്പം അയയ്ക്കുന്നു), അതിനാൽ അഭ്യർത്ഥന യഥാർത്ഥത്തിൽ imatic Survey-ൽ നിന്നാണ് വന്നതെന്നും ട്രാൻസിറ്റിൽ കൃത്രിമം നടത്തിയിട്ടില്ലെന്നും നിങ്ങളുടെ എൻഡ്പോയിന്റിന് പരിശോധിക്കാം. പരാജയപ്പെട്ട ഡെലിവറികൾ പരാജയപ്പെട്ടതായി അടയാളപ്പെടുത്തുന്നതിന് മുമ്പ് exponential backoff-ഓടെ **വീണ്ടും ശ്രമിക്കുന്നു**.

## REST API

**REST API** നിങ്ങളെ ഫോമുകളും റെസ്പോൺസുകളും പ്രോഗ്രമാറ്റിക്കായി കൈകാര്യം ചെയ്യാൻ അനുവദിക്കുന്നു. എൻഡ്പോയിന്റുകൾ ഒരു പതിപ്പുള്ള പാത്ത് പ്രിഫിക്സിന് പകരം custom-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-ലൂടെ Survey-യെ AI ഏജന്റുകൾക്ക് വെളിപ്പെടുത്തുന്നു, അതിനാൽ ഒരു അസിസ്റ്റന്റിന് നിങ്ങൾക്ക് വേണ്ടി നിങ്ങളുടെ ഫോമുകളും റെസ്പോൺസുകളും കൈകാര്യം ചെയ്യാം. ഇത് `POST /mcp`-ലൂടെ **JSON-RPC 2.0** സംസാരിക്കുന്നു, നിങ്ങളുടെ പോർട്ടൽ **JWT** (ഒരു Bearer ടോക്കൺ ആയി അയയ്ക്കുന്നു) ഉപയോഗിച്ച് ആധികാരികമാക്കുന്നു, ഇത് ഓരോ കോളും നിങ്ങളുടെ ഓർഗനൈസേഷനിലേക്ക് സ്കോപ്പ് ചെയ്യുന്നു.

ഇത് **10 ടൂളുകളോടെ** വരുന്നു:

- **`whoami`** — ആധികാരികമാക്കിയ ഓർഗനൈസേഷൻ സന്ദർഭം മടക്കുക.
- **`list_forms`** — നിങ്ങളുടെ പ്രസിദ്ധീകരിച്ച ഫോമുകൾ ലിസ്റ്റ് ചെയ്യുക.
- **`get_form`** — ഒരു ഫോമിന്റെ സ്കീമയും ഫീൽഡുകളും വായിക്കുക.
- **`submit_response`** — ഒരു ഫോമിലേക്ക് ഒരു റെസ്പോൺസ് സമർപ്പിക്കുക.
- **`list_responses`** — റെസ്പോൺസുകൾ ലിസ്റ്റ് ചെയ്യുക (പേജിനേറ്റഡ്).
- **`get_response`** — ഒരൊറ്റ റെസ്പോൺസ് വായിക്കുക.
- **`get_response_stats`** — സമാഹരിച്ച റെസ്പോൺസ് സ്ഥിതിവിവരക്കണക്കുകൾ വായിക്കുക.
- **`create_poll`** — ഒറ്റ-ചോദ്യ പോൾ സൃഷ്ടിച്ച് പ്രസിദ്ധീകരിക്കുക.
- **`cast_vote`** — ഒരു പോളിൽ ഒരു വോട്ട് രേഖപ്പെടുത്തുക.
- **`live_poll_results`** — ലൈവ് പോൾ എണ്ണങ്ങൾ വായിക്കുക.

:::info[രണ്ട് വ്യത്യസ്ത ക്രെഡൻഷ്യലുകൾ]

**MCP സെർവറും webhook-കളും** നിങ്ങളുടെ പോർട്ടൽ **JWT** (ഓർഗ്-സ്കോപ്പ്ഡ്) ഉപയോഗിക്കുന്നു. **REST API** /developers/api-keys ന് കീഴിൽ നിങ്ങൾ സൃഷ്ടിക്കുന്ന ഒരു **API കീ** ഉപയോഗിക്കുന്നു. നിങ്ങൾ വിളിക്കുന്ന സർഫേസിന് ശരിയായ ക്രെഡൻഷ്യൽ തിരഞ്ഞെടുക്കുക.

:::

## ഇമെയിൽ ഡെലിവറി

ഇമെയിൽ ഡെലിവറി (ഉദാഹരണത്തിന്, റെസ്പോൺസ് അറിയിപ്പുകൾ) ക്രമീകരിക്കുന്നത് **/settings** ന് കീഴിൽ ഇമെയിൽ-ഡെലിവറി ടാബിലാണ്. നിങ്ങൾക്ക് **ആറ് പ്രൊവൈഡർമാരിൽ** ഏതെങ്കിലും ബന്ധിപ്പിക്കാം:

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

## അടുത്ത ഘട്ടങ്ങൾ

- [ഒരു ഫോം പ്രസിദ്ധീകരിച്ച് പങ്കിടുക](./publishing-sharing)
- [റെസ്പോൺസുകൾ കാണുക](./responses)
- [അനലിറ്റിക്സ് തുറക്കുക](./analytics)
- [AI ഉപയോഗിച്ച് ഒരു ഫോം സൃഷ്ടിക്കുക](./ai-generation)
