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) в нашата база данни. Никога не съхраняваме необработения ключ. Третирайте ключа си като парола — не го включвайте в код и не го споделяйте публично.
Базов 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
}
}Обработка на грешки
Грешките връщат HTTP статус код, различен от 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. Изчакайте и опитайте отново с експоненциално отлагане.
Готови ли сте да интегрирате?
Създайте безплатен акаунт и генерирайте API ключ за минути.
Започнете безплатно