Справочник API

Полная документация Pravia API — интеграция AI-сотрудников, управление документами и настройка ботов программно.

Базовый URL: /api/chat (относительный)

Аутентификация

Панель управления (Cookie сессии)

Запросы из панели управления используют cookie сессии для аутентификации. API-ключ не нужен — просто войдите в аккаунт.

Виджет (публичный)

Эндпоинт чата виджета доступен публично с ограничением скорости. Аутентификация не требуется — только ID бота.

Authorization Header Example

curl -X POST "/api/chat" \
  -H "Content-Type: application/json" \
  -d '{
    "botId": "your-bot-id",
    "query": "Hello!"
  }'

Чат-эндпоинты

POST/api/chat
ParameterTypeRequiredDescription
botIdstringДаУникальный идентификатор вашего бота.
querystringДаТекст сообщения пользователя (макс. 2000 символов).
conversationIdstringНетОпциональный ID диалога для сохранения контекста.
modelstringНетПереопределение модели для запроса (опционально).

Request Example

{
  "botId": "bot_abc123",
  "query": "Какой у вас срок возврата?",
  "conversationId": "conv_xyz789"
}

Response Example

{
  "conversationId": "conv_xyz789",
  "answer": "Наш срок возврата — 30 дней с момента покупки.",
  "sources": [
    { "chunkId": "...", "documentId": "...", "content": "...", "score": 0.92 }
  ],
  "offline": false
}
POST/api/widget/chat

Публичный эндпоинт для виджета. Принимает botId, query, conversationId и visitorId. Ограничение: 10 запросов в минуту на IP. Аутентификация не требуется.

Управление ботами

GET/api/bots

Получение списка всех ваших ботов.

curl -X GET "/api/bots" \
  -H "Content-Type: application/json"
POST/api/bots

Создание нового бота с указанной конфигурацией.

ParameterTypeRequiredDescription
namestringДаНазвание бота (1-64 символа).
descriptionstringНетОписание назначения бота.
modelstringНетМодель по умолчанию для этого бота.
{
  "name": "Support Bot",
  "description": "Отвечает на вопросы клиентов на основе базы знаний",
  "model": "pravia"
}

Управление документами

GET/api/documents

Получение списка документов для указанного бота.

ParameterTypeRequiredDescription
botIdstringДаФильтр документов по боту.
POST/api/documents

Загрузка документа в бота. Использует multipart/form-data с полями file и botId. Поддерживаемые форматы: PDF, Markdown (.md, .markdown).

Лимиты запросов

EndpointRate Limit
Widget Chat (/api/widget/chat)10 запросов/мин на IP
Панель управления (/api/chat, /api/bots, /api/documents)30 запросов/мин на пользователя

Ответы ошибок

CodeHTTP StatusDescription
400400Неверный запрос. Возвращает текстовую ошибку: 'botId is required', 'query is required' или 'Query too long'.
401401Не авторизовано. Cookie сессии отсутствует или недействительна.
403403Доступ запрещён. Лимит биллинга достигнут или нет доступа.
404404Не найдено. Бот не существует или неактивен.
503503Сервис временно недоступен. Превышен лимит биллинга.
500500Внутренняя ошибка сервера.

Сводка эндпоинтов

MethodEndpointAuthDescription
POST/api/chatСессияОтправка сообщения боту и получение ответа AI.
POST/api/widget/chatПубличныйОтправка сообщения из виджета с ограничением скорости.
GET/api/botsСессияСписок всех ботов в аккаунте.
POST/api/botsСессияСоздание нового бота.
GET/api/bots/:idСессияПолучение бота по ID.
GET/api/documentsСессияСписок документов бота.
POST/api/documentsСессияЗагрузка документа в бота.