ToAPIsToAPIs
Тарифы и расходы

Фактическая стоимость и использование задач

Семантика фактических расходов полей billing и usage задач генерации

Каталог тарифов отражает текущие ставки. Фактические списания определяются ответами генерации, запросами задач, Webhook и записями использования.

Тарифы моделей и использование аккаунта — данные разных мер, не вычисляйте исторические списания из текущих цен.

Поля фактического списания

Если списание можно подтвердить, ответ генерации содержит следующий объект:

{
  "billing": {
    "status": "settled",
    "credits": "100",
    "cost_usd": "0.5"
  }
}
ПолеЗначение
statuspending, settled или refunded
creditsПодтверждённое число списанных ToAPIs Credits в виде десятичной строки
cost_usdТо же подтверждённое списание в USD в виде десятичной строки

pending означает, что итоговая сумма ещё не определена, поэтому поля суммы отсутствуют. refunded означает подтверждённое нулевое итоговое списание. Если весь объект billing отсутствует, платформа не смогла подтвердить безопасное публичное значение.

Это не означает бесплатный запрос.

Объект может находиться в следующих ответах:

  • Единый запрос задач изображений и видео GET /v1/tasks/{task_id}
  • запрос асинхронной задачи изображения GET /v1/images/generations/{task_id}
  • запрос асинхронной задачи видео GET /v1/videos/generations/{task_id} (также GET /v1/video/generations/{task_id} и GET /v1/videos/{task_id})
  • data.billing в Task Webhook
  • верхнеуровневый billing в совместимых нестриминговых ответах синхронной генерации или редактирования изображений

Для асинхронных задач используйте запрос статуса после завершения как резервный источник итоговой суммы. Объект может отсутствовать в стриминговых ответах изображений, неподдерживаемых форматах ответа провайдера, запросах Playground и при отложенной пакетной тарификации.

Поля использования задачи

Запросы задач изображений и видео возвращают подтверждённые оплачиваемые количества в поле usage верхнего уровня. Успешные Webhook используют те же определения в data.usage.

Количества для расчёта платы, токены модели и счётчики инструментов могут возвращаться вместе, если соответствующие данные доступны.

ПолеТипОписание
charge_typestringСпособ тарификации: per_request, per_second или per_token
requestsintegerОплачиваемое число запросов. Параметр n обычного запроса изображений не умножает это число напрямую; действующий batch_size видео Midjourney учитывается
billed_tokensintegerЧисло токенов, использованное для расчёта цены. Некоторые пути обработки изображений используют настроенную базу предварительного списания, которая может отличаться от фактических токенов генерации
output_secondsintegerОплачиваемая длительность выходного видео в целых секундах
input_secondsintegerОплачиваемая длительность входного видео в целых секундах
input_imagesintegerОплачиваемое число входных изображений после вычета бесплатного лимита
input_tokens, output_tokens, prompt_tokens, completion_tokens, total_tokensintegerНеотрицательные целые счётчики токенов видеомодели. Возвращаются доступные поля поставщика; подтверждённый расчёт по токенам может дополнить total_tokens
tool_usageobjectСчётчики инструментов, включая доступные web_search, image_search, grounding_queries; возвращаются независимо от данных токенов

Оплачиваемые количества берутся из сохранённых записей оплаты задачи: при фиксированной оплате — количества, подтверждённые при создании, при отложенном расчёте — итоговые. Из текущих цен и сумм не вычисляются.

per_request использует requests, per_second — output_seconds, per_token — billed_tokens. Дополнительные пункты вроде длительности входного видео и входных изображений возвращаются при наличии и опускаются при нуле.

У исторических задач, где сохранены только суммы без проверяемых количеств, неподтверждаемые поля опускаются, отсутствующие данные токенов нулями не заполняются.

После расчёта по токенам детализация видео сохраняется, только если сообщённый итог совпал с финальным оплачиваемым количеством. Наличие usage и billing независимо: отсутствие usage не значит отсутствие списания и не блокирует результат.

Но любое возвращённое оплачиваемое количество вроде charge_type всегда сопровождается billing.status=settled и фактической суммой. Задачи с фиксированной оплатой, полностью списанные при отправке, тоже возвращают settled.

Запросы задач и Webhook используют одинаковые условия подтверждения и значения полей.

On this page