docs
Начало

Нейросети через API: как проходит запрос

Markdown

Как это работает

Что происходит с запросом между вашей программой и моделью.

Полное руководство

Вы отправляете запрос в Ailoot API так же, как отправили бы его напрямую в OpenAI, Anthropic или Google. Ailoot проверяет ключ и баланс, передаёт запрос модели, возвращает ответ в том же формате и списывает деньги по фактическому расходу.

01ЗапросВаш клиент шлёт запрос на api.ailoot.ai с ключом sk-…
02Проверка и резервКлюч, лимиты, баланс. На время ответа резервируется сумма.
03МодельМодель отвечает, ответ возвращается в вашем формате.
04СписаниеОдно списание по фактическим токенам; остаток резерва освобождается.

Один ключ — три формата

Формат определяется путём запроса, а не моделью. Одну и ту же модель Claude можно вызвать через OpenAI Chat, OpenAI Responses или Anthropic Messages — ответ придёт в формате того пути, который вы вызвали.

ФорматПутьКто им пользуется
OpenAI Chat Completions/v1/chat/completionsOpenAI SDK, большинство чатов и редакторов, n8n, LangChain
OpenAI Responses/v1/responsesCodex CLI, OpenAI Agents SDK, новые версии SDK
Anthropic Messages/v1/messagesClaude Code, Anthropic SDK, Zed, Cline
Gemini/v1beta/models/{model}:generateContentGemini CLI, Google GenAI SDK

Деньги: резерв и одно списание

  • Перед отправкой нового текстового запроса Ailoot резервирует оценку входа и типичного ответа с учётом лимита (max_tokens) и условий точной модели. Если резерв не помещается в свободный баланс или лимит ключа, уменьшить отправляемый лимит можно только у модели и метода, которые действительно его соблюдают, и не ниже 256 токенов и установленного минимума ответа. Для картинок, видео и звука на выходе сохраняется полный резерв стоимости результата.
  • После ответа — одно списание по фактическому расходу. Неиспользованный резерв возвращается на баланс сразу.
  • Если ответ вышел дороже резерва, разница берётся из свободного баланса. Баланс никогда не уходит в минус.
  • Если денег не хватает даже на минимальный резерв, запрос не отправляется: вы получите понятную ошибку 402, ничего не списывается.
  • Ошибка, после которой нет результата, не оплачивается.

Подробности и пример расчёта — на странице Резерв и списание.

Ошибки с Request ID

Каждый ответ получает идентификатор запроса: в заголовке X-Request-ID и в тексте ошибки. Ошибки приходят в JSON того формата, который вы вызвали, поэтому SDK их правильно распознают. Если что-то пошло не так, пришлите Request ID в поддержку — так мы найдём запрос за минуту.

401 Unauthorized
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Поток и таймауты

Потоковые ответы (stream: true) идут как Server-Sent Events. Платный текстовый ответ Ailoot отдаёт после расчёта стоимости. Поэтому с stream: true формат остаётся потоковым (SSE), но текст приходит одним блоком, когда модель закончит, а не по словам. Если ответ готовится дольше примерно 15 секунд, в потоках Chat Completions, Responses и Messages сначала идут служебные строки : ping (примерно раз в 10 секунд), затем строка : ailoot-charged-usd … с суммой списания и сами данные. SDK такие строки пропускают.

В формате Gemini служебных строк нет: ответ :streamGenerateContent приходит целиком после расчёта. Рассуждающим моделям ставьте таймаут клиента с запасом: несколько минут — нормально.

Заголовки ответа

X-Request-ID приходит в каждом ответе. Остальные заголовки Ailoot добавляет к оплаченным текстовым ответам:

ЗаголовокЧто в нём
X-Request-IDИдентификатор запроса — его просит поддержка
X-Ailoot-Charged-USDСколько списано за этот запрос, в долларах
X-Ailoot-Output-TokensСколько токенов ответа оплачено
X-Ailoot-Max-Tokens-CappedЛимит ответа, до которого его уменьшили, потому что баланса не хватило на полный резерв
X-Ailoot-Notice-Code, X-Ailoot-NoticeПояснение, если ответ остановился на лимите длины

Если поток уже начался служебными строками, эти сведения приходят строкой-комментарием перед данными, а не заголовком.

Кэш промптов

Если модель поддерживает кэширование, повторно отправленный длинный префикс (системная инструкция, документы) может стоить дешевле. Цены чтения и записи кэша показаны в карточке модели в каталоге. Попадание в кэш решает разработчик модели, Ailoot его не гарантирует.

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

Вопросы о работе нейросетей через API

Как приложение получает ответ нейросети через API?

Вы отправляете запрос в Ailoot API так же, как отправили бы его напрямую в OpenAI, Anthropic или Google. Ailoot проверяет ключ и баланс, передаёт запрос модели, возвращает ответ в том же формате и списывает деньги по фактическому расходу.