Skip to content

Биллинг и ограничения частоты

На этой странице описано, как с запроса списывается плата — от отправки до расчёта, — а также когда списание происходит при ошибках, отмене и ограничении частоты. Цены и способы тарификации для разных типов моделей см. в разделе Цены моделей.

Когда происходит списание

Section titled “Когда происходит списание”

Каждый запрос проходит два этапа: «резервирование → расчёт»:

  1. Резервирование: перед передачей запроса в upstream с квоты ключа и баланса аккаунта резервируется расчётная сумма. Если не хватает хотя бы одного из них, запрос сразу отклоняется и не отправляется в upstream.
  2. Расчёт: после завершения запроса фактическая стоимость рассчитывается по реальному использованию, которое вернул upstream. Лишнее возвращается, недостающее дописывается.

Как рассчитывается резервная сумма:

Тип моделиСпособ расчёта
Оплата по токенамЧисло входных токенов плюс max_tokens из запроса, оценка по цене модели
Ступенчатые ценыОценка по максимальной ступени, при расчёте — по фактической ступени
Оплата за запрос или за изображениеРезервируется цена за одну единицу
Асинхронные задачи (видео, музыка и т. п.)При отправке резервируется расчётная сумма, расчёт — после завершения задачи

Списывается ли плата при ошибке

Section titled “Списывается ли плата при ошибке”

Принцип: если оплачиваемого использования не было, плата не взимается, а резервная сумма возвращается полностью.

СценарийСписание
Ключ недействителен, истёк, либо не хватает баланса или квоты ключаНет; запрос не отправляется в upstream
Ошибка в параметрах запроса, модель недоступна, нет доступных каналовНет
Ограничение частоты (429)Нет
Upstream вернул ошибку (4xx / 5xx)Нет; резервная сумма возвращается полностью
Upstream вернул успех, но использование равно 0Нет
Upstream прервал поток или превысил таймаут во время стримингаПлата за уже сгенерированный контент
Асинхронная задача завершилась ошибкой или таймаутом (не завершилась за 24 часа)Нет; резервная сумма возвращается полностью

Повторные попытки и резервные модели

Section titled “Повторные попытки и резервные модели”

При ошибке upstream RouteAPI автоматически повторяет попытку или переключается на другой канал. Резервирование и расчёт выполняются один раз; неудачные попытки не тарифицируются — вы платите только за успешную. Если запрос в итоге выполняет резервная модель, плата рассчитывается по цене модели, которая его обслужила.

Стриминговый запрос, начавший выдавать вам содержимое, больше не повторяется. Если в этот момент upstream прерывается, плата взимается за уже сгенерированную часть.

Списывается ли плата при ручной отмене

Section titled “Списывается ли плата при ручной отмене”
СценарийСписание
Нестриминговый запрос: соединение разорвано до получения ответаНет; резервная сумма возвращается полностью
Стриминговый запрос: соединение разорвано в серединеДа, см. пояснение ниже
Асинхронные задачи (видео, музыка, Midjourney)Отмена после отправки не поддерживается

Если стриминговый запрос прерывается в середине, upstream обычно уже генерирует ответ и продолжит генерацию до конца. RouteAPI продолжит читать вывод upstream до завершения и спишет плату за фактически сгенерированное использование, а не только за полученную вами часть. Чтобы контролировать эти расходы, ограничивайте длину вывода через max_tokens.

Ограничения частоты запросов

Section titled “Ограничения частоты запросов”

Для стабильности платформы и upstream платформа может ограничивать частоту запросов к моделям для каждого аккаунта. Лимит считается на аккаунт: все API-ключи одного аккаунта делят его.

При срабатывании ограничения возвращается 429 Too Many Requests; тело ответа имеет тот же формат, что и другие ошибки:

{
"error": {
"message": "... (request id: ...)",
"type": "error",
"code": ""
}
}
  • Запросы, ограниченные по частоте, отклоняются до резервирования и не тарифицируются.
  • Если upstream возвращает 429, RouteAPI автоматически переключается на другой канал. 429 возвращается вам, только если ограничение срабатывает и после повторов.
  • В ответе нет заголовка Retry-After. Рекомендуется повторять запросы с экспоненциальной задержкой (например, 1 секунда, 2 секунды, 4 секунды) и случайным дрожанием.
  • Разделение на несколько API-ключей не увеличивает лимит. Если нужна более высокая частота запросов, свяжитесь с нами.

У API платформы (/api/open/v1) свои правила ограничения частоты; см. Ошибки и лимиты API платформы.

В журнале использования можно посмотреть детали каждого списанного запроса:

ПолеОписание
ВремяВремя запроса
КлючИмя API-ключа, отправившего запрос
МодельМодель, по которой фактически списана плата
Время / первый токенОбщее время; для стриминговых запросов также задержка до первого токена
ВходЧисло входных токенов; при попадании в кэш отдельно показываются чтение и запись кэша
ВыходЧисло выходных токенов
СтоимостьФактически списанная сумма за этот запрос
ДеталиЦена за единицу, множитель и процесс расчёта

Поле usage в ответе API также возвращает использование токенов за этот запрос:

ПолеОписание
prompt_tokensВходные токены
completion_tokensВыходные токены; сюда же входят токены рассуждения reasoning-моделей
total_tokensСумма входа и выхода
prompt_tokens_details.cached_tokensВходные токены, попавшие в кэш

Если для аккаунта действует индивидуальная скидка, сумма в журнале уже указана со скидкой.