Стоимость запроса приходит вместе с ответом, а не появляется в отчёте через сутки. Считать её самому по прайсу не нужно — и не стоит: правил тарификации там больше, чем кажется.
В каждом ответе есть usage со счётчиками токенов — это часть схемы OpenAI и приходит всегда.
"usage": {
"prompt_tokens": 412,
"completion_tokens": 128,
"total_tokens": 540
}Чтобы получить деньги и разбивку, попросите об этом явно:
{
"model": "anthropic/claude-sonnet-5",
"messages": [{"role": "user", "content": "…"}],
"usage": {"include": true}
}"usage": {
"prompt_tokens": 2310,
"completion_tokens": 1842,
"total_tokens": 4152,
"cache_read_tokens": 2048,
"cache_creation_tokens": 0,
"reasoning_tokens": 1610,
"images": 0,
"audio_seconds": 0,
"provider": "anthropic",
"cost_rub": 2.94,
"cost_breakdown_rub": {
"prompt": 0.07,
"cache_read": 0.05,
"completion": 2.43,
"markup": 0.39
},
"upstream_cost_usd": 0.0281,
"fx_rate": 91.40
}| Поле | Что это |
|---|---|
| cost_rub | Итог, который списан с баланса. Округляется до копейки в вашу пользу |
| cost_breakdown_rub.markup | Наша наценка отдельной строкой — мы её не прячем в цене токена |
| upstream_cost_usd | Сколько запрос стоил у первоисточника. По нему видно, за что вы платите нам |
| fx_rate | Курс, по которому пересчитано. Фиксируется на момент запроса |
| reasoning_tokens | Часть completion_tokens, а не добавка к ним |
| cache_read_tokens | Часть prompt_tokens, тарифицированная по льготной ставке |
markup — осознанное решение, а не техническая деталь. Рядом с нашей ценой мы всегда показываем цену первоисточника: на странице сравнения цен — заранее, в usage — по факту.Блок usage приходит в предпоследнем событии, перед [DONE], и относится ко всему ответу целиком. В промежуточных кусках его нет — считать токены по ходу нечем.
data: {"choices":[{"delta":{"content":"…"}}]}
data: {"choices":[],"usage":{"prompt_tokens":412,"completion_tokens":128,"cost_rub":0.63}}
data: [DONE]curl "https://zerno.one/api/v1/activity?from=2026-08-01&to=2026-08-31&group=day" \
-H "Authorization: Bearer $ZERNO_API_KEY"Группировать можно по дню, ключу, модели и площадке. Тот же срез доступен глазами в логе активности и выгружается в CSV — колонки те же, что в ответе API, чтобы отчёт из кабинета и отчёт из скрипта сходились до копейки.
Сумма cost_rub за период совпадает с суммой списаний за тот же период. Расхождение возможно в одном случае: запрос начался в последнюю секунду периода, а закончился в первую секунду следующего — он попадёт в тот период, в котором завершился. Для месячной сверки с актом это несущественно, для посуточной — учитывайте.