ПЛАТФОРМА

Логи и наблюдаемость

Каждый оплаченный запрос попадает в лог: модель, провайдер, токены, стоимость и ссылки на сгенерированные файлы. Это источник истины по списаниям.

Что видно по каждому запросу

В разделе Логи кабинета лежит по строке на каждый оплаченный запрос:

  • время, поверхность (chat, image или video) и модель, которую вы запросили;
  • провайдер, который фактически обслужил запрос - он может отличаться от ожидаемого, если сработал failover;
  • ключ, которым запрос был сделан - так видно расход по сервисам;
  • токены (prompt, completion, всего) и итоговая стоимость в USD;
  • для изображений - image_urls со ссылками на наш CDN и кнопкой скачивания.
JSON
{
  "object": "usage_event",
  "created_at": "2026-07-09T08:14:02.511Z",
  "surface": "image",
  "model": "nano-banana-pro",
  "provider": "kie",
  "key_id": "0f2c…",
  "prompt_tokens": null,
  "completion_tokens": null,
  "total_tokens": null,
  "cost_usd": 0.032,
  "image_urls": ["https://api.altrouter.ai/media/…"]
}

Сверка списаний

Если списание выглядит неожиданным, начните отсюда: сумма всех cost_usd за период - это ровно то, что ушло с баланса. Сводка в кабинете считается за 1, 7 и 30 дней; постранично можно уйти дальше в прошлое.

i
Списание происходит по факту. На время запроса резервируется верхняя оценка стоимости, а после ответа модели она заменяется фактическим расходом - поэтому в логе всегда реальная цена, а не оценка. Текущий баланс и размер резерва отдаёт GET /v1/credits.

Наблюдаемость в самом ответе

Каждый ответ несёт заголовок x-request-id, генерирующие эндпоинты - ещё x-ratelimit-limit и x-ratelimit-remaining, а в теле - блок usage с токенами и полем cost - сколько списано за этот запрос, USD. В стриме он приходит последним чанком перед [DONE], у видео cost появляется в объекте рендера при status: completed. Этого достаточно, чтобы вести расход на своей стороне.

Лог через API

Тот же лог доступен по API-ключу, без входа в кабинет: GET /v1/generation?id=… отдаёт строку конкретного запроса по его x-request-id, GET /v1/usage - все запросы аккаунта постранично. Поля - в API-референсе.

cURL
curl -s -D - https://api.altrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer ar-..." -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Hi"}]}'
# x-request-id: req_mupm4nfkhzua0y8j
# ... "usage": { ..., "cost": 0.000036 }

curl "https://api.altrouter.ai/v1/generation?id=req_mupm4nfkhzua0y8j" \
  -H "Authorization: Bearer ar-..."

Сколько живут строки лога и файлы - в разделе Хранение данных.

ДалееХранение данных →