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.