Heli

Организация и команда

Heli учитывает расход API для компаний: журнал метаданных запросов, выгрузки за период и фильтры по ключу, проекту, пользователю и модели. Содержимое запросов и ответов не хранится.

Кабинет

В разделе «Выгрузка» можно скачать CSV или JSON за выбранные даты (календарь Europe/Moscow). Там же фильтры по ключу, идентификатору проекта, полю user и модели.

Проекты и дашборд

В кабинете «Организация / команда» создаются проекты (центры затрат) и привязываются ключи. На «Дашборде» — расход по дням, моделям, проектам, ключам и пользователям, p95 задержки, доля ошибок 5xx, отдельно сбои шлюза Heli и сбои провайдера модели.

Лимиты и алерты

В кабинете «Лимиты» задаются бюджеты на день / неделю / месяц (весь аккаунт, проект или ключ). На почту уходят письма при 50, 80, 90 и 100% расхода. При 100% запросы останавливаются или переключаются на указанную резервную модель. Там же allowlist (разрешённые модели, пусто = все) и denylist (запрещённые модели; имеет приоритет), потолок max_output_tokens и RPM на ключ. Страница: /app/limits. API: GET/PUT /v1/org/policies (Bearer-ключ) и GET/PUT /api/app/policies (сессия кабинета).

Роли и 2FA

В «Организации» владелец приглашает коллег. Роли: владелец, админ, финансы (просмотр расхода и биллинг), участник. Права кабинета проверяются на сервере. Вход в кабинет можно защитить TOTP (приложение-аутентификатор). Журнал действий — кто менял ключи и состав команды. Ротация ключа выпускает новый секрет с периодом перекрытия: старый ключ ещё работает, затем отзывается.

Биллинг для юрлиц

В кабинете «Биллинг» задаются курс USD→₽ и наценка организации (не зашиты в код). Себестоимость и наценка видны раздельно в выгрузке и на дашборде. Акт по пополнению остаётся на «Пополнить». Дополнительно выставляется акт по факту потребления за календарный месяц по журналу запросов.

API выгрузки

GET /v1/usage/export — тот же отчёт, авторизация ключом sk-heli-….

curl "https://getheli.ru/v1/usage/export?from=2026-09-01&to=2026-09-30&format=csv" \
  -H "Authorization: Bearer sk-heli-…"

Параметры: from, to (YYYY-MM-DD), format=csv|json, key_id, project_id, user, model.

Allowlist и denylist моделей

Политика на аккаунт, проект или ключ. Denylist отклоняет модель даже если она в allowlist. Пустой allowlist не ограничивает каталог. Запрещённый запрос получает 400 model_denied. GET /v1/models уже фильтрует выдачу по политике ключа.

curl https://getheli.ru/v1/org/policies \
  -H "Authorization: Bearer sk-heli-…"

curl https://getheli.ru/v1/org/policies \
  -X PUT \
  -H "Authorization: Bearer sk-heli-…" \
  -H "Content-Type: application/json" \
  -d '{
    "scope": "key",
    "scope_id": "key_…",
    "allow_models": ["anthropic/claude-sonnet-4"],
    "deny_models": ["openai/gpt-4.1"]
  }'

Поля журнала

  • provider — владелец модели (anthropic, openai, google…), не транспорт Heli
  • model (фактический id), requested_model (как в запросе), project_id, key_id, user
  • prompt / completion / cached / cache_write tokens
  • status, error_class (ok / client / proxy / upstream), error_code
  • latency_ttfb_ms, latency_ms
  • base_cost_rub (себестоимость), markup_rub (наценка), total_cost_rub

Метаданные хранятся не менее 12 месяцев. Ежедневные агрегаты собираются на следующий календарный день (D+1, MSK).

Пользователь в запросе

Передайте строку user в JSON или заголовок X-User / X-Consumer — она попадёт в журнал. Это удобно, когда много сотрудников ходят через одни ключи.

Базовый API — документация Heli API.