Skip to content

HTTP API для агентов

В Jay Flow агент доступен по HTTP-эндпоинту:

https://jayflow.ai/channel/api/{channelId}

где {channelId} — уникальный идентификатор вашего канала (агента).

Общие параметры

  • input (string) — входной запрос к агенту.
  • threadId (string, опционально) — идентификатор сессии (диалога). При отсутствии создаётся новый поток.

GET-запрос

Новый диалог

curl -X GET "https://jayflow.ai/channel/api/12345?input=hello"

Продолжение диалога

curl -X GET "https://jayflow.ai/channel/api/12345?threadId=681a191ad74ee8d89080289a"

Пример ответа

json
{
  "threadId": "681a191ad74ee8d89080289a",
  "content": "Hello! How can I help you today?",
  "messages": [
    {
      "id": "681a191ad74ee8d89080289d",
      "content": "Hello! How can I help you today?",
      "annotations": []
    }
  ],
  "images": []
}

Пояснения:

  • threadId — сохраняйте для следующих запросов.
  • content — ответ агента в формате Markdown (по умолчанию).
  • messages — части этого ответа.
  • images — ссылки на изображения (если были сгенерированы).

POST с JSON

Новый диалог

curl -X POST "https://jayflow.ai/channel/api/12345" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello"}'

Продолжение диалога

curl -X POST "https://jayflow.ai/channel/api/12345" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello","threadId":"681a191ad74ee8d89080289a"}'

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

Если канал защищён API-ключом (в настройках агента), укажите его в заголовке:

-H "Authorization: <API_KEY>"

Пример:

curl -X POST "https://jayflow.ai/channel/api/12345" \
  -H "Authorization: abcdef123456" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello"}'

Загрузка файлов (multipart/form-data)

Агент умеет принимать файлы через поле files. Можно отправить несколько.

curl -X POST "https://jayflow.ai/channel/api/12345" \
  -H "Authorization: abcdef123456" \
  -H "Content-Type: multipart/form-data" \
  -F "input=сколько потратили по документам" \
  -F "files=@/path/to/file1.pdf" \
  -F "files=@/path/to/file2.xlsx"

input при этом необяазателен, агент может сгенерировать ответ без него, если он знает что делать с файлами.

Пример ответа с файлами и изображениями

json
{
  "threadId": "681a191ad74ee8d89080289a",
  "content": "Here are the documents I found:\n- [file1_link]\n- [file2_link]",
  "images": ["image1_link","image2_link"]
}
  • В content — ссылки на сгенерированные файлы (в виде Markdown).
  • В images — прямые URL изображений.

JSON-режим

Если в настройках агента включён JSON-режим, поле content будет содержать не строку Markdown, а полноценный JSON-объект.