API лавлах
Tenant API ашиглан enuchat-ыг системдээ нэгтгээрэй. Харилцан яриа удирдах, мессеж илгээх, төлбөрийн өгөгдөлд програмчилгааны аргаар хандана.
Баталгаажуулалт
Бүх API хүсэлтүүд нь X-Api-Key header-т илгээсэн API түлхүүрээр баталгаажна.
API түлхүүрээ авах
- Самбартаа Settings → API Keys руу ор
- Create API Key-ыг дараад нэр өгөх
- Түлхүүрийг шууд хуулж авах — энэ нь зөвхөн нэг удаа харуулагдана
- Аюулгүй хадгалах (орчны хувьсагч, нууцын менежер)
Хүсэлт хийх
Хүсэлт бүрд түлхүүрийг оруулах:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsБүх хариу JSON байна. Амжилттай хариултууд нь data талбартай байдаг. Алдаа нь code ба message-тэй error талбартай байдаг.
Аюулгүй байдал: API түлхүүрүүд манай өгөгдлийн санд хэшлэгдсэн байдаг (SHA-256). Бид түүхий түлхүүрийг хэзээ ч хадгалдаггүй. Түлхүүрээ нууц үг шиг хандаж, кодонд commit хийх, эсвэл олон нийтэд хуваалцахгүй бай.
Үндсэн URL
https://api.enuchat.com/api/v1/tenant-apiДоорх бүх endpoint-ууд энэ үндсэн URL-ээс харьцангуй юм.
Endpoint-ууд
GET /widgets
Дансныхаа бүх виджетийг жагсаана.
Хариу
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Хамгийн сүүлийн мессежээр эрэмбэлсэн харилцан яриаг жагсаана.
Query параметрүүд
| Параметр | Төрөл | Тайлбар |
|---|---|---|
status | string | Статусаар шүүх: open, pending, closed |
widgetId | string | Виджетийн UUID-аар шүүх |
limit | integer | Дээд тал үр дүн (үндсэн 20, дээд 100) |
offset | integer | N үр дүн алгасах |
Жишээ
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Хариу
{'{'}
"data": [
{'{'}
"id": "019d6724-000e-...",
"widgetId": "019d19c6-7e0b-...",
"visitorId": "v-abc123",
"visitorName": "John",
"visitorEmail": "john{'@'}example.com",
"visitorLanguage": "en",
"status": "open",
"assignedTo": null,
"lastMessageAt": "2026-04-11T14:30:00+00:00",
"startedAt": "2026-04-11T14:25:00+00:00"
}
]
}GET /conversations/{'{'}id}
Харилцан яриаг бүх мессежтэйгээ авах.
Query параметрүүд
| Параметр | Төрөл | Тайлбар |
|---|---|---|
limit | integer | Дээд мессеж (үндсэн 50, дээд 200) |
Хариу
{'{'}
"data": {'{'}
"id": "019d6724-000e-...",
"visitorLanguage": "en",
"status": "open",
"messages": [
{'{'}
"id": "019d6724-1234-...",
"role": "visitor",
"content": "Hello, how much does it cost?",
"contentLanguage": "en",
"translatedContent": "Cześć, ile to kosztuje?",
"translatedLanguage": "pl",
"isAutoReply": false,
"createdAt": "2026-04-11T14:25:30+00:00"
},
{'{'}
"id": "019d6724-5678-...",
"role": "ai",
"content": "Our plans start at €19/month...",
"isAutoReply": true,
"createdAt": "2026-04-11T14:25:32+00:00"
}
]
}
}POST /conversations/{'{'}id}/messages
Харилцан яриа руу мессеж илгээнэ. Мессеж нь чат виджетээр дамжуулан зочинд бодит цагаар хүргэгдэнэ.
Хүсэлтийн биет
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Талбар | Төрөл | Тайлбар |
|---|---|---|
content | string | Шаардлагатай. Мессежийн текст. |
role | string | system (үндсэн) эсвэл operator |
Хариу (201 Created)
{'{'}
"data": {'{'}
"id": "019d6725-abcd-...",
"role": "system",
"content": "Thanks for reaching out!",
"createdAt": "2026-04-11T14:35:00+00:00"
}
}PATCH /conversations/{'{'}id}
Харилцан ярианы статус эсвэл хариуцлагыг шинэчил.
Хүсэлтийн биет
{'{'}
"status": "closed"
}| Талбар | Төрөл | Тайлбар |
|---|---|---|
status | string | open, pending, эсвэл closed |
assignedTo | string|null | Хариуцах операторын UUID, эсвэл хасахад null |
GET /billing/balance
Одоогийн төлөвлөгөө ба кредитийн үлдэгдлийг авах.
Хариу
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Алдаа зохицуулалт
Алдаанууд нь JSON биеттэй 2xx бус статус код буцаадаг:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP статус | Утга |
|---|---|
401 | Хүчингүй, хугацаа дууссан, эсвэл алга болсон API түлхүүр |
400 | Хүчингүй хүсэлтийн биет эсвэл параметр |
404 | Нөөц олдсонгүй (эсвэл өөр tenant-д хамаарна) |
500 | Серверийн алдаа |
Нийтлэг хэрэглээний тохиолдол
CRM интеграцчлал
Шинэ харилцан яриануудыг санал асуулга хийж, зочны өгөгдлийг (нэр, имэйл, хэл) CRM руу синк хийнэ. Харилцан ярианы ID-г гадаад лавлагаа болгон ашиглана.
Автомат хяналт
Харилцан яриа хаагдсаны дараа API-аар дамжуулан дараагийн мессеж илгээ: "Чатласанд баярлалаа! Өөр юугаар туслах вэ?"
Webhook-ийн өөр хувилбар
Гарах webhook бэлэн болтол шинэ мессеж эсвэл статусын өөрчлөлтийг илрүүлэхийн тулд харилцан ярианы endpoint-ыг үе үе санал асуулга хийнэ.
Багц үйлдлүүд
7 хоногоос дээш хугацаанд хадгалагдсан бүх харилцан яриаг хаах, гадаад логикод суурилан операторуудад харилцан яриа хариуцуулах, эсвэл шинжилгээнд харилцан ярианы түүхийг экспортлох.
Rate хязгаар
API нь API түлхүүр тутамд минутад 60 хүсэлт хүртэл зөвшөөрдөг. Хэрэв энэ хязгаараас хэтрэвэл 429 Too Many Requests хариу авна. Хүлээж, exponential backoff-той дахин оролдоно уу.