Референца за API
Интегрирајте го enuchat во вашите системи користејќи го Tenant API. Управувајте со разговори, испраќајте пораки и пристапувајте до податоци за фактурирање програмски.
Автентикација
Сите API барања се автентицираат користејќи API клуч испратен во заглавието X-Api-Key.
Добивање на вашиот API клуч
- Одете на Поставки → API клучеви во вашата контролна табла
- Кликнете на Креирај API клуч и дајте му име
- Копирајте го клучот веднаш — се прикажува само еднаш
- Зачувајте го безбедно (променлива на средина, менаџер на тајни)
Правење барања
Вклучете го клучот во секое барање:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsСите одговори се JSON. Успешните одговори имаат поле data. Грешките имаат поле error со code и message.
Безбедност: 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
Листа на разговори, подредени по најновата порака.
Параметри на пребарување
| Параметар | Тип | Опис |
|---|---|---|
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}
Добиј разговор со сите пораки.
Параметри на пребарување
| Параметар | Тип | Опис |
|---|---|---|
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
}
}Справување со грешки
Грешките враќаат не-2xx статусен код со JSON тело:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP статус | Значење |
|---|---|
401 | Невалиден, истечен или недостасува API клуч |
400 | Невалидно тело на барање или параметри |
404 | Ресурсот не е најден (или припаѓа на различен тенант) |
500 | Грешка на сервер |
Чести случаи на употреба
CRM интеграција
Анкетирајте за нови разговори и синхронизирајте ги податоците на посетителите (име, е-пошта, јазик) со вашиот CRM. Користете го ID на разговорот како надворешна референца.
Автоматизирани следења
Откако разговорот ќе биде затворен, испратете порака за следење преку API: "Благодариме за разговорот! Има ли уште нешто со што можеме да помогнеме?"
Webhook алтернатива
Додека излезните webhook-и не бидат достапни, анкетирајте го endpoint-от за разговори периодично за да откриете нови пораки или промени на статус.
Масовни операции
Затворете ги сите разговори постари од 7 дена, доделете разговори на оператори врз основа на надворешна логика, или извезете ја историјата на разговори за аналитика.
Ограничувања на стапка
API дозволува до 60 барања по минута по API клуч. Ако го надминете ова ограничување, ќе добиете 429 Too Many Requests одговор. Почекајте и обидете се повторно со експоненцијален backoff.
Подготвени за интеграција?
Креирајте ја вашата бесплатна сметка и генерирајте API клуч за неколку минути.
Започни бесплатно