API интеграции
API интеграция — это набор ручек вашего бэкенда, которые AI оператор может вызывать по ходу диалога. Интеграция состоит из папок (структурирование) и эндпоинтов (описание метода/URL/параметров).
Токен должен иметь scope ai_api_integrations.
Базовый URL: https://api.apx.chat/api
Структура интеграции
JSON
{
"id": "uuid",
"name": "Магазин",
"authPrefix": "Bearer",
"folders": [
{
"id": "uuid",
"name": "Пользователи",
"order": 0,
"endpoints": [
{
"id": "uuid",
"method": "GET",
"url": "https://api.example.com/users/{id}",
"description": "Получить пользователя по id",
"responseExample": "{ \"id\": 1, \"name\": \"Иван\" }",
"enabled": true,
"useUserToken": false,
"order": 0
}
],
"children": []
}
]
}name— обязательно.authPrefix— опциональный префикс (напримерBearer), пробелы убираются.folders— иерархия; у каждой папки естьendpointsиchildren(вложенные папки).useUserToken— еслиtrue, AI оператор передаёт в ручку клиентский токен (см. widget.setToken).
Endpoints
Список
GET /api/ai-resources/external/api-integrations
Создание
POST /api/ai-resources/external/api-integrations
const url = "https://api.apx.chat/api/ai-resources/external/api-integrations";
const payload = {
"name": "Магазин",
"folders": [
{
"name": "Пользователи",
"endpoints": [
{
"method": "GET",
"url": "https://api.example.com/users/{id}",
"description": "Получить пользователя по id",
"enabled": true
}
]
}
]
};
const response = await fetch(url, {
method: "POST",
headers: {
"X-Api-Token": "tok_xxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
const data = await response.json();
console.log(data);Получение / обновление / удаление
GET /api/ai-resources/external/api-integrations/{id}PATCH /api/ai-resources/external/api-integrations/{id}— частичное обновление (полная замена структуры folders, если передать её)DELETE /api/ai-resources/external/api-integrations/{id}— каскадно снимает интеграцию с привязанных каналов
Каналы, использующие интеграцию
GET /api/ai-resources/external/api-integrations/{id}/channels
Привязка к каналу
Интеграция привязывается через настройки AI оператора канала — поле apiIntegrationUuid.