Организация и команда
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.