API Reference
REST API Replyo — доступ из кода для программного управления ботами. Доступен с тарифа Комфорт и выше.
Аутентификация
Все запросы требуют Authorization: Bearer YOUR_API_KEY. Ключ создаётся в dashboard → Настройки аккаунта → API Keys.
curl https://api.replyo.su/v1/bots \
-H "Authorization: Bearer rpl_live_..."Rate limits
- Комфорт: 30 запросов / минута, 2 000 / сутки
- Бизнес: 60 запросов / минута, 5 000 / сутки
- Бизнес+: индивидуально
Превышение → HTTP 429 с заголовком Retry-After.
Endpoints
GET /v1/bots — список ботов
{
"data": [
{
"id": "bot_kx8f9z",
"name": "Маркет Норд",
"status": "active",
"pages_indexed": 127,
"created_at": "2026-04-01T10:15:00Z"
}
]
}POST /v1/bots — создать бота
POST /v1/bots
Content-Type: application/json
{
"name": "My Shop",
"url": "https://myshop.ru",
"language": "ru",
"tone": "friendly"
}
→ 201 Created
{
"id": "bot_new12",
"status": "ingesting",
"embed_snippet": "<script src=...></script>"
}POST /v1/bots/:id/reingest — переобучить
Принудительный re-crawl и переиндексация источников.
GET /v1/bots/:id/conversations — диалоги
С пагинацией и фильтрацией по дате, статусу (escalated, resolved), language.
POST /v1/bots/:id/ask — программный запрос к боту
POST /v1/bots/bot_kx8f9z/ask
Content-Type: application/json
{
"question": "Сколько стоит доставка в Москве?",
"session_id": "sess_abc" // optional, для контекста
}
→ 200
{
"answer": "По Москве доставка от 300 ₽...",
"sources": ["https://myshop.ru/dostavka"],
"confidence": 0.87,
"tokens": { "input": 1240, "output": 87 }
}Webhooks
Подпишитесь на события через POST /v1/webhooks. Поддерживаемые события:
conversation.started— новый диалогconversation.escalated— бот передал операторуlead.captured— собран контактbot.ready— бот закончил обучениеbot.reingested— завершилась переиндексация
Payload подписан HMAC-SHA256 (заголовок X-Replyo-Signature). Timing-safe проверка обязательна.
SDK
- JavaScript / Node.js:
npm install @replyo/sdk— в roadmap, Q2 2026 - Python:
pip install replyo— в roadmap, Q3 2026
До релиза SDK — используйте обычный fetch / requests с Bearer-аутентификацией.
Статус-коды
| Код | Значение |
|---|---|
| 200 / 201 | Успех |
| 400 | Невалидный запрос (детали в error) |
| 401 | Неверный API-ключ |
| 403 | Нет прав (тариф не позволяет) |
| 404 | Ресурс не найден |
| 429 | Rate limit exceeded |
| 500 / 503 | Ошибка на нашей стороне — retry с exponential backoff |