Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Hubris Metrics API
version: 1.0.0
description: 'OpenAI-совместимый API российского LLM-агрегатора. Все цены в рублях.
Версии и вывод из эксплуатации (deprecation policy): несовместимые изменения — только в новой версии префикса (`/v2`); об отключении эндпоинта или поля предупреждаем не меньше чем за 90 дней заголовками `Deprecation` (RFC 9745) и `Sunset` (RFC 8594), записью в журнале изменений и письмом. Подробно: https://hubris.pw/docs/api/versioning'
servers:
- url: https://api.hubris.pw
description: Production
tags:
- name: Metrics
paths:
/v1/metrics:
get:
operationId: getMetrics
tags:
- Metrics
summary: Метрики аккаунта для Prometheus
description: 'Баланс, расход, число запросов, токены, время ответа и лимиты ключей аккаунта в текстовом формате Prometheus 0.0.4. Его читают Prometheus, Grafana Agent, VictoriaMetrics и Zabbix.
Подходит любой обычный ключ, в том числе только для чтения — его и стоит класть в конфиг мониторинга. Management-ключ не подходит.
Значения обновляются раз в 45 секунд; не больше 30 запросов в минуту на аккаунт.'
security:
- bearerAuth: []
responses:
'200':
description: 'Метрики, `Content-Type: text/plain; version=0.0.4; charset=utf-8`.'
content:
text/plain:
schema:
type: string
example: '# HELP hubris_balance_kopecks Остаток на балансе аккаунта, копейки.
# TYPE hubris_balance_kopecks gauge
hubris_balance_kopecks 128400
'
'401':
description: Ключ не передан, невалиден, отозван или заморожен (`invalid_api_key`, `key_frozen_spike`).
'403':
description: 'Отказ в доступе: management-ключ (`inference_key_required`), запрос не с адреса, к которому привязан ключ (`key_ip_not_allowed`), или заблокированный аккаунт (`account_blocked`).'
'429':
description: Больше 30 запросов в минуту (`rate_limit_exceeded`).
headers:
Retry-After:
description: Секунды до повтора.
schema:
type: integer
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: sk-gw-...
description: API-ключ в формате `sk-gw-` + 32 hex. Создаётся в дашборде на /keys. Обычный ключ даёт все права, ключ только для чтения не может тратить баланс.
oauth2:
type: oauth2
description: 'OAuth-токен приложения с ограниченными правами. Регистрация клиента — `POST /oauth/clients` (RFC 7591), PKCE S256 обязателен. Метаданные: `/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`.'
flows:
authorizationCode:
authorizationUrl: https://api.hubris.pw/oauth/authorize
tokenUrl: https://api.hubris.pw/oauth/token
refreshUrl: https://api.hubris.pw/oauth/token
scopes:
chat:write: 'Запросы к моделям от имени пользователя (списывают баланс): чат, Responses, Messages, эмбеддинги, реранкеры, модели решений, изображения, распознавание и озвучка речи, расшифровка видео; коннекторы Битрикс24.'
models:read: Видеть цепочки резервных моделей пользователя в `GET /v1/models`.
balance:read: Видеть остаток баланса пользователя.
videos:write: Создавать видео от имени пользователя (`POST /v1/videos`, резервирует и списывает баланс).
videos:read: Узнавать статус и скачивать видео пользователя (`GET /v1/videos/{id}`, `GET /v1/videos/{id}/content`).
offline_access: Выдать refresh-токен, чтобы подключение жило 90 дней без повторного входа.