> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Как читать суммы тарификации в логах?

> Понимание столбца «Cost» в журнале консоли: тарификация по использованию vs тарификация за вызов, как самостоятельно вычислить стоимость из поля usage, почему суммы в логах указаны до скидки и почему неудачные вызовы никогда не отображаются.

## Краткий ответ

Столбец **Cost** на [странице журнала](https://api.apiyi.com/log) — это сумма в USD за этот вызов. Все, что вы видите там, объясняется четырьмя вещами:

1. **Модели с тарификацией по использованию** (большинство текстовых моделей, а также gpt-image-2, семейство SeeDance 2.0 и другие) возвращают counts токенов в поле **`usage`** ответа, поэтому стоимость можно вычислить на стороне клиента;
2. **Модели с оплатой за вызов** не возвращают сумму в ответе, но цена за единицу фиксирована, поэтому cost = calls × фиксированная цена — это тоже легко вычислить;
3. Суммы в журнале указаны **до скидки**: ваша фактическая стоимость — это эта величина, деленная на коэффициент бонуса пополнения (бонус 10% означает деление на 1.1, то есть примерно скидку 9%);
4. **Журнал фиксирует только успешно тарифицированные вызовы.** Ошибки возвращаются в ответе API; неудачный вызов, за который не было списания, в журнале не появляется и не тарифицируется.

<Info>
  **Кратко**: тарификация за вызов = фиксированная стоимость; тарификация по использованию = вычисляется по token, возвращается в ответе.
</Info>

## Чтение каждого столбца

| Столбец    | Значение                                                   | Примечания                                                                  |
| ---------- | ---------------------------------------------------------- | --------------------------------------------------------------------------- |
| Время      | Временная метка расчета по вызову                          | Указывайте это при открытии тикета — это самый быстрый способ найти вызов   |
| Модель     | Модель, по которой фактически выполнена тарификация        | Модели с суффиксом группы тарифицируются с коэффициентом тарифа этой группы |
| Информация | Потоковая передача или нет, время до первого байта и т. д. | Проверяйте время до первого байта при разборе медленных ответов             |
| prompt     | Входные tokens                                             | Изображения и аудио в мультимодальных вызовах здесь преобразуются в tokens  |
| Completion | Выходные tokens                                            | Tokens рассуждения обычно попадают в этот столбец                           |
| Стоимость  | Сумма за этот вызов в USD, **до скидки**                   | Коэффициент тарифа группы уже применен; бонус за пополнение еще не применен |

<Note>
  **Модели с оплатой за вызов** по-прежнему могут показывать количество tokens в Prompt / Completion, но **сумма не выводится из этих столбцов**. Простой признак: если повторные вызовы с одинаковыми параметрами стоят ровно одинаково, а значение — круглое число вроде 0.030000, это тарификация за вызов.
</Note>

## Два режима тарификации

<CardGroup cols={2}>
  <Card title="По объему использования (за token)" icon="gauge">
    Поле `usage` в ответе возвращает количество token напрямую. Стоимость = input tokens × input rate + output tokens × output rate.

    **Применяется к**: большинству текстовых моделей, а также моделям изображений и видео с оплатой за token, таким как **gpt-image-2** и семейство **SeeDance 2.0**.
  </Card>

  <Card title="За вызов (фиксированная цена за единицу)" icon="hash">
    **Сумма не возвращается** в ответе, но у каждого вызова есть фиксированная цена, поэтому стоимость = calls × unit price — самый простой случай для бюджетирования.

    **Применяется к**: большинству моделей генерации изображений и видео с оплатой за изображение или за секунду. Узнайте тарифы на странице тарифов моделей в консоли.
  </Card>
</CardGroup>

## Может ли API возвращать стоимость напрямую?

**Она не возвращает сумму, но стоимость полностью вычислима:**

* **По использованию**: умножьте значения `usage` на коэффициенты тарифа сами — это собственные подсчеты token поставщика, более точные, чем любая оценка;
* **За вызов**: цена за единицу фиксирована, так что просто умножьте ее на количество вызовов.

Мы намеренно не включаем сумму в ответ, потому что итоговая стоимость вызова также зависит от **коэффициента группы** и от **коэффициента бонуса пополнения вашего аккаунта**. Встраивание незавершенной суммы в ответ только усложнило бы сверку, а не упростило бы ее.

### Расчет по использованию

Модели с оплатой по использованию возвращают примерно следующее:

```json theme={null}
{
  "usage": {
    "prompt_tokens": 905,
    "completion_tokens": 1629,
    "total_tokens": 2534,
    "prompt_tokens_details": {
      "cached_tokens": 512
    }
  }
}
```

Соответствующая формула:

```text theme={null}
cost = (uncached input tokens × input rate)
     + (cached input tokens × cache-hit rate)
     + (output tokens × output rate)
```

<Tip>
  Кэшированный input тарифицируется по **ставке попадания в кэш** (обычно около 0.1× ставки input), поэтому на задачах с длинным контекстом зафиксированная сумма может быть значительно ниже оценки по полной цене на основе `prompt_tokens`. См. [тарификацию кэша](/ru/faq/cache-billing).
</Tip>

<Card title="Проверка счетчиков token для gpt-image-2" icon="image" href="/ru/api-capabilities/gpt-image-2/overview">
  В разделе с ценами в обзоре модели есть измеренные данные о том, как входные и выходные изображения преобразуются в token
</Card>

## Почему суммы в логе показываются «до скидки»

В логе записывается **исходная сумма, рассчитанная по тарифам модели**. Ваша фактическая стоимость получает еще одну скидку сверху, потому что при пополнении вы получили бонусный кредит:

```text theme={null}
actual cost = logged amount ÷ (1 + bonus ratio)
```

Например: запрос, зафиксированный как \$0.011 при бонусе пополнения 10%, на самом деле обойдется в `0.011 ÷ 1.1 = 0.01` — примерно на 9% дешевле.

| Бонус пополнения  | Пересчет | Эффективная скидка      |
| ----------------- | -------- | ----------------------- |
| 10%               | ÷ 1.1    | примерно 9% скидки      |
| 12%               | ÷ 1.12   | примерно 11% скидки     |
| 15%               | ÷ 1.15   | примерно 13% скидки     |
| **20% (потолок)** | ÷ 1.2    | **примерно 17% скидки** |

<Card title="См. уровни бонусов пополнения" icon="gift" href="/ru/faq/recharge-promotions">
  Проценты бонуса по уровням, бонусы за первое пополнение и порядок начисления кредита
</Card>

<Note>
  **Не нужно повторно применять скидки группы**: коэффициент группы моделей уже учтен при тарификации, поэтому зафиксированная сумма уже его включает. Единственное, что еще нужно пересчитать, — это бонус пополнения. См. [коэффициенты моделей](/ru/faq/model-multiplier).
</Note>

## Списываются ли неудачные вызовы?

**Нет — и они вообще не появляются в журнале тарификации.** Это ключ к правильному чтению журнала:

<Warning>
  **Ошибки возвращаются в ответе API; журнал в консоли существует для фиксации успешной тарификации.** Поэтому «нет записи в журнале» обычно означает «этот вызов не был оплачен».
</Warning>

Типичный пример: вызов **gpt-image-2** и получение

```text theme={null}
400 Your request was rejected by the safety system
```

Такие запросы **возвращаются сразу без повтора**, поэтому запись о затратах не создается и оплата не списывается. Аналогично, когда видеомодели, такие как VEO или Sora 2, возвращают ошибку с префиксом `PUBLIC_`, это модерация контента на upstream — она не тарифицируется, и после корректировки prompt можно безопасно повторить запрос.

<Tip>
  **Обратная ситуация не менее полезна для отладки**: если запись о тарификации **есть**, запрос определенно дошел до upstream и потребил ресурсы. Если ее **нет**, сбой почти наверняка произошел до обращения к upstream (сеть, аутентификация, проверка параметров). «Есть ли запись о тарификации?» — часто самый сильный отдельный сигнал при диагностике проблем с подключением.
</Tip>

<Note>
  **Предварительная блокировка — это не списание.** Перед выполнением запроса система замораживает расчетную сумму; если запрос завершается с ошибкой, блокировка снимается, а окончательное списание всегда соответствует фактическому использованию. Кратковременное снижение баланса с последующим восстановлением — это ожидаемо: см. [механизм предварительного списания](/ru/faq/pre-deduction-quota).
</Note>

## Частые вопросы

<AccordionGroup>
  <Accordion title="Два вызова одной и той же модели стоят очень по-разному — это нормально?">
    Да. При тарификации по факту использования сумма зависит от объема использования. Распространенные причины:

    * **Разная длина входа**: длинный контекст, многоходовая история, изображения и аудио резко увеличивают число input tokens
    * **Токены рассуждения**: модели с включенным reasoning создают дополнительные output tokens, которые учитываются в столбце Completion
    * **Попадания в кэш**: cached input тарифицируется по значительно более низкой ставке, поэтому второй запуск того же prompt может стоить намного дешевле
    * **Параметры image/video**: разрешение, длительность и количество изображений напрямую влияют на число token или количество вызовов
  </Accordion>

  <Accordion title="Количество token в журнале не совпадает с моим подсчетом.">
    Доверяйте **полю `usage` в ответе** и журналу — они поступают из одного и того же источника. Несоответствия обычно возникают из-за того, что мультимодальный контент (изображения, аудио) преобразуется в token по правилам конкретного вендора; system prompts и схемы tools учитываются как input; а токены reasoning учитываются как output, не отображаясь в видимом тексте.
  </Accordion>

  <Accordion title="Где найти цены за единицу для моделей с оплатой за вызов?">
    Войдите в систему и откройте страницу Model Pricing в консоли или [обзор цен на модели](/ru/pricing) на этом сайте. Цены за вызов фиксированы, поэтому стоимость просто равна цене × количеству вызовов.
  </Accordion>

  <Accordion title="Вызов завершился ошибкой, но, кажется, с меня списали средства. Что делать?">
    Сначала проверьте журнал по метке времени, чтобы подтвердить, был ли действительно создан запись о стоимости. Если списание действительно некорректное, обратитесь в поддержку с **меткой времени и названием модели из журнала**. Потери, вызванные проблемами на нашей стороне, компенсируются повторно начисленным кредитом — см. [гарантии SLA](/ru/faq/sla-guarantee).
  </Accordion>

  <Accordion title="Могу ли я увидеть контент, который отправил, в журнале?">
    Нет. По причинам конфиденциальности и хранения журнал сохраняет только то, что требуется для тарификации — время, модель, количество token и сумму — и **не записывает содержимое запроса или ответа**. См. [как просматривать записи вызовов](/ru/faq/call-logs).
  </Accordion>
</AccordionGroup>

## Связанные документы

* [Как посмотреть мои записи вызовов?](/ru/faq/call-logs)
* [Как работает механизм предварительного списания для вызовов API?](/ru/faq/pre-deduction-quota)
* [Поддерживает ли APIYI тарификацию кэша?](/ru/faq/cache-billing)
* [Что означает коэффициент тарифа модели?](/ru/faq/model-multiplier)
* [Какие акции пополнения доступны?](/ru/faq/recharge-promotions)
* [В чем разница между режимами тарификации token?](/ru/faq/token-billing-modes)
