docs
API

Responses

Markdown

Новый формат OpenAI: один вход, типизированный выход, инструменты и рассуждения. Его использует Codex CLI.

Полное руководство
POSThttps://api.ailoot.ai/v1/responses
Responses
curl https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "instructions": "Отвечай кратко.",
    "input": "Чем отличается TCP от UDP?"
  }' 
200 OK
{
  "id": "resp_67f1…",
  "object": "response",
  "status": "completed",
  "model": "gpt-6.1-sol",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        { "type": "output_text", "text": "TCP гарантирует доставку и порядок, UDP — нет, зато быстрее…" }
      ]
    }
  ],
  "usage": { "input_tokens": 24, "output_tokens": 61, "total_tokens": 85 }
}

Авторизация

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

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

Тело запроса

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

    ID модели с форматом Responses. Таких в каталоге 53: GPT, Claude, DeepSeek, Qwen, Kimi, GLM, MiniMax, Grok. Модели Gemini в этом формате недоступны.

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

    Текст запроса или массив сообщений и частей (текст, картинки).

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

    Системная инструкция.

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

    Поток событий SSE; последнее событие — response.completed. Платный текст приходит одним блоком после расчёта стоимости.

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

    Максимум токенов ответа, включая рассуждения. Если не указан, Ailoot подставляет 4096 (или меньше, если у модели лимит ответа меньше). Для длинных ответов задайте лимит явно. Запросы с previous_response_id и со встроенными инструментами web_search или code_interpreter для новых текстовых запросов учитывают отдельные оценки сохранённого контекста и работы инструментов; они не переходят автоматически к стоимости всего входного окна. Прежние принятые резервы сохраняют исходные условия. Для картинок, видео и звука на выходе резервируется полная стоимость результата. Если рассчитанный резерв не помещается в доступный баланс или лимит ключа, для поддерживаемой модели и метода Ailoot может уменьшить max_tokens (max_output_tokens в Responses) до оплачиваемого объёма, но не ниже 256 токенов или большего минимума данного метода, и сообщает об этом в заголовке X-Ailoot-Max-Tokens-Capped. Возможность уменьшения проверяется для точной текстовой модели и метода. Она применяется к поддерживаемым текстовым маршрутам Gemini в родном формате Gemini и в формате Anthropic Messages; deepseek-ai/deepseek-v4.1-flash, meta/llama-3.2-11b-vision-instruct, meta/muse-glimmer-30b, nvidia/ising-calibration-1.5-31b, nvidia/nemotron-3-nano-omni-30b-a3b-reasoning, nvidia/nemotron-3-super-120b-a12b, nvidia/nemotron-3-ultra-550b-a55b, nvidia/nemotron-3.5-content-safety, nvidia/nemotron-3.5-lightning-30b-a3b, nvidia/riva-translate-4b-instruct-v1.1, nvidia/riva-translate-4b-instruct-v2, poolside/laguna-xs-2.1, z-ai/glm-5.3-flash — в форматах Chat Completions и Messages (там, где модель их поддерживает). Выход для резерва нового текстового запроса оценивается по типичной длине ответа и принятым условиям. Запрошенный лимит задаётся через max_tokens (max_output_tokens в Responses). Запрошенный лимит не равен автоматически числу токенов, по которому рассчитан резерв, и не гарантирует фактическую длину ответа у модели без надёжного ограничения. Исходное значение 4096 применяется только к соответствующим маршрутам; конкретное правило зависит от модели и метода.

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

    {"effort": "low" | "medium" | "high"} для рассуждающих моделей.

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

    Функции, которые модель может вызвать.

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

    Формат ответа, например {"format": {"type": "json_schema", ...}}.

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

    Случайность ответа, если модель её поддерживает.

Ответ

  • outputarray

    Элементы ответа: сообщения (message), рассуждения, вызовы функций. В SDK удобно брать output_text.

  • statusstring

    completed, incomplete (упёрся в лимит) или failed.

  • usageobject

    input_tokens, output_tokens, total_tokens.

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