docs
API

Chat Completions

Markdown

Ответ модели на диалог в формате OpenAI. Самый распространённый формат: его понимают почти все клиенты.

Полное руководство
POSThttps://api.ailoot.ai/v1/chat/completions
Chat Completions
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Объясни в двух предложениях, что такое API."}
    ]
  }' 
200 OK
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API — это договорённость о том, как одна программа просит другую что-то сделать…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}

Авторизация

  • Authorizationheaderобязательный

    Ключ в виде Bearer sk-…. Также подойдут заголовки x-api-key или x-goog-api-key.

Тело запроса

  • modelstringобязательный

    ID модели из каталога, например claude-sonnet-5-5. Модель должна поддерживать формат OpenAI Chat.

  • messagesarrayобязательный

    История диалога: объекты с role (system, developer, user, assistant, tool) и content — строкой или массивом частей (текст, image_url).

  • streambooleanнеобязательный

    Ответ в формате Server-Sent Events. По умолчанию false. Платный текст приходит одним блоком после расчёта стоимости, а не по словам.

  • stream_optionsobjectнеобязательный

    {"include_usage": true} — прислать итоговый usage последним событием потока.

  • max_tokensintegerнеобязательный

    Максимум токенов ответа. Новое имя — max_completion_tokens. Если лимит не указан, Ailoot подставляет 4096 (или меньше, если у модели лимит ответа меньше; у Grok свой лимит). Для длинных ответов задайте лимит явно, иначе ответ остановится на 4096 токенах с finish_reason: "length". Лимит входит в резерв: чем он больше, тем больше нужно свободного баланса.

  • temperaturenumberнеобязательный

    Случайность ответа, обычно от 0 до 2. У рассуждающих моделей может игнорироваться.

  • top_pnumberнеобязательный

    Альтернатива temperature: доля вероятностной массы для выбора токенов.

  • stopstring | arrayнеобязательный

    Строки, на которых генерация остановится.

  • toolsarrayнеобязательный

    Описания функций, которые модель может вызвать. Формат — как у OpenAI: {"type": "function", "function": {...}}.

  • tool_choicestring | objectнеобязательный

    auto, none, required или конкретная функция.

  • response_formatobjectнеобязательный

    {"type": "json_object"} или {"type": "json_schema", ...} для структурированного ответа — если модель умеет.

  • reasoning_effortstringнеобязательный

    Глубина рассуждений для рассуждающих моделей: low, medium, high.

Остальные параметры OpenAI передаются как есть; поддерживает ли их конкретная модель, решает разработчик модели.

Ответ

  • choices[].messageobject

    Ответ модели: content, при вызове инструментов — tool_calls.

  • choices[].finish_reasonstring

    stop — ответ закончен; length — упёрся в max_tokens (такой ответ всё равно полный и оплачивается по факту); tool_calls — модель вызывает инструмент.

  • usageobject

    prompt_tokens, completion_tokens, total_tokens — по ним считается списание.

Остались вопросы? Пришлите Request ID и описание — поможем разобраться.Написать в поддержку