Каждая внутренняя фича доступна через `/api/v1/*` с теми же правами, что и сторонняя интеграция. OpenAPI-схема, ключи на проект, rate limits.
В админке создайте API-ключ со скоупом (`conversations:read`, `conversations:write`, `kb:read`). Передавайте в заголовке:
Authorization: Bearer tgd_live_a4f9…c1b3
# Список диалогов GET /v1/conversations?status=open&limit=50 # История одного GET /v1/conversations/:id/messages # Отправить ответ от имени оператора POST /v1/conversations/:id/messages { "body": "Спасибо, разобрались", "agentId": "usr_…" } # Создать контакт POST /v1/contacts { "name": "Анна", "email": "a@example.com" }
Подпишитесь на события — каждое подписывается HMAC-SHA256 по вашему секрету:
conversation.created — пришло новое обращение.conversation.assigned — оператор взял в работу.conversation.closed — диалог закрыт.message.received — клиент написал сообщение.const sig = req.headers['x-tgdesk-signature']; const mac = crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); if (sig !== mac) throw new Error('bad signature');
Webhook-доставщик повторяет запрос с экспоненциальным backoff до 24 часов. После — событие переезжает в dead-letter очередь, видимую в админке.
По умолчанию — 60 запросов в минуту на ключ. На тарифе «Бизнес» — индивидуально.
Полная схема — на странице справочника. Готовые SDK для Node и Python.