Перейти к содержанию
Справочник APIUsage API

Usage API

Расход, токены и безопасная история запросов всех семейств по вашему ключу.

Протокол модели

Программный доступ к расходу

Usage API — расширение Guard для автоматического контроля собственного ключа. Оно показывает баланс, агрегаты и историю запросов Claude, Kimi, Composer и Grok, включая бесплатный подсчёт токенов там, где он поддержан. Это не организационный Admin API Anthropic и не даёт доступа к чужим ключам.

GET /v1/usage — агрегаты

ПараметрПравило
starting_atНачало окна RFC 3339; по умолчанию 30 дней до ending_at
ending_atИсключающая верхняя граница RFC 3339; по умолчанию начало завтрашнего дня UTC
bucket_widthТолько 1d
bash
curl -G https://api.guardrelay.ai/v1/usage \
  -H "x-api-key: $GUARD_API_KEY" \
  --data-urlencode "starting_at=2026-07-01T00:00:00Z" \
  --data-urlencode "ending_at=2026-07-08T00:00:00Z" \
  --data-urlencode "bucket_width=1d"
json
{
  "object": "usage_report",
  "starting_at": "2026-07-01T00:00:00.000Z",
  "ending_at": "2026-07-08T00:00:00.000Z",
  "bucket_width": "1d",
  "current_balance": {
    "scope": "key_including_inflight_reservations",
    "credit_usd": "100.00000000",
    "used_usd": "3.42000000",
    "remaining_usd": "96.58000000"
  },
  "retention": {
    "detailed_days": 90,
    "detailed_starting_at": "2026-04-09T12:00:00.000Z",
    "daily_aggregates": "lifetime"
  },
  "tracking_started_at": "2026-07-01T08:30:00.000Z",
  "data": [],

Пример сокращён: data и by_model намеренно оставлены пустыми. data, totals, tracked_totals и by_model содержат выбранные запросы генерации всех семейств, включая outcomes с нулевой стоимостью; бесплатный count_tokens отделён и не добавляется к их токенам или стоимости. token_counting показывает count-вызовы выбранного окна, tracked_token_counting — с tracking_started_at; обе операции остаются видны поштучно в /v1/usage/requests. tracking_started_at — нижняя граница покрытия и может быть null, пока не записано первое событие; после свёртки самой ранней детализации он округляется вниз до начала UTC-дня первого агрегата. Поле daily_aggregates: "lifetime" означает, что свёрнутые отслеживаемые дневные агрегаты не удаляются; история до запуска трекинга не восстанавливается. Все поля *_usd — строки с 8 знаками после точки; timestamps возвращаются в RFC 3339 UTC (Z). starting_at и ending_at должны быть границами суток UTC; максимальное окно — 366 дней.

GET /v1/usage/requests — отдельные вызовы

ПараметрПравило
starting_at / ending_atRFC 3339 с timezone; по умолчанию последние 90 дней
limit1–100, по умолчанию 50
cursorПодписанный opaque-токен из next_cursor; передавайте без изменений. Он фиксирует окно и фильтры исходной страницы
statusТочный статус из списка ниже
outcomeГрубая группа: success, failed, cancelled или interrupted; вместе со status работает как AND
operationmessages или count_tokens
bash
curl -G https://api.guardrelay.ai/v1/usage/requests \
  -H "x-api-key: $GUARD_API_KEY" \
  --data-urlencode "status=server_tool_error" \
  --data-urlencode "operation=messages" \
  --data-urlencode "limit=50"
json
{
  "object": "list",
  "data": [
    {
      "request_id": "req_0123456789abcdef0123456789abcdef",
      "created_at": "2026-09-09T11:20:31.120Z",
      "completed_at": "2026-09-09T11:20:32.960Z",
      "operation": "messages",
      "status": "server_tool_error",
      "retryable": false,
      "http_status": 200,
      "latency_ms": 1840,
      "model": "claude-opus-5",
      "stream": false,
      "usage": {
        "input_tokens": 840,
        "output_tokens": 90,
        "cached_input_tokens": 0,

Статусы

  • pending, success, client_error, rate_limited, policy_refusal.
  • upstream_error, stream_error, server_tool_error, internal_error.
  • cancelled — клиент отменил запрос; interrupted — запрос прерван рестартом сервиса.
  • retryable подсказывает, имеет ли смысл автоматически повторить вызов.
  • Бесплатный count_tokens также появляется в журнале, но с нулевой стоимостью.

Хранение и приватность

  • Детальные logical events хранятся 90 дней; текущая нижняя граница детализации указана в retention.detailed_starting_at.
  • Более старые отслеживаемые события сворачиваются в дневные агрегаты, которые не удаляются. Запросы до tracking_started_at не backfill'ятся.
  • Эти endpoint'ы не возвращают prompts, ответы, URL/поисковые запросы, содержимое документов, tool arguments, IP, User-Agent и raw errors.
  • Не раскрываются внутренние детали обработки запросов, аккаунты и сетевые данные. Ошибки нормализованы в безопасные code + message.
  • Пагинация идёт от новых событий к старым: если has_more=true, передайте next_cursor без изменений как следующий cursor. Окно и фильтры можно не повторять — они восстановятся из cursor; если повторяете, значения должны совпасть точно. Изменённый, чужой или malformed cursor получает одинаковый 400 Invalid cursor.

Kimi, Composer и Grok

Фильтр family принимает all, claude, kimi, composer и grok. Без параметра выбираются все семейства.

Разбор Kimi-расхода, отдельные ставки и формула резерва вынесены на страницу Kimi · Цены, reserve и usage.

Как отобрать Kimi-строки

Расход Kimi лежит в том же отчёте, что и остальной: ключ и баланс общие. Его отбирают два действующих фильтра, family и endpoint; они работают вместе как И.

ФильтрЧто принимает
familyall, claude, kimi, composer, grok; по умолчанию all
modeУдалён: любое значение возвращает 410 product_modes_removed; уберите параметр
endpointchat_completions, messages, responses, search, fetch, token_estimate или all
bash
curl -G https://api.guardrelay.ai/v1/usage \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  --data-urlencode "family=kimi" \
  --data-urlencode "bucket_width=1d"
bash
curl -G https://api.guardrelay.ai/v1/usage/requests \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  --data-urlencode "family=kimi" \
  --data-urlencode "endpoint=chat_completions" \
  --data-urlencode "limit=50"

Разделы документации

На этой странице