Docs · Account · Limits
Docs → Account → Limits
Остатки лимитов по API ключу
Публичный endpoint, по которому можно получить текущие остатки кредитов по тарифу и активным бустам, используя свой API key — без личного кабинета и JWT.
Зачем нужен
Если вы встраиваете сервис в своё приложение и хотите показать пользователю, сколько кредитов осталось — этот endpoint вернёт актуальные цифры. Учитываются и тариф, и активные бусты, и тайминги сброса. Логика та же, что в Telegram-команде /limit и в личном кабинете.
✳ Важно. Endpoint только читает остатки и ничего не списывает. Вызывать его можно так часто, как нужно для UI.
Base URL и авторизация
GET https://ai.wormsoft.ru/api/v1/account/limits
Используется тот же API key, что и для остальных LLM endpoint-ов:
Authorization: Bearer YOUR_API_KEY
Либо альтернативный заголовок для клиентов, которые не могут задать Authorization:
x-api-key: YOUR_API_KEY
Пример запроса
curl --request GET \ --url https://ai.wormsoft.ru/api/v1/account/limits \ --header 'Authorization: Bearer YOUR_API_KEY'
Пример ответа
{
"userId": 123,
"subscriptionType": "payed",
"subscriptionLimit": 1234567,
"subscriptionLimitResetAt": 1730000000,
"boostLimit": 1000000,
"boostLimitResetAt": 1730003600,
"totalLimit": 2234567,
"isFrozen": false
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| userId | number | Внутренний идентификатор пользователя. |
| subscriptionType | string | Активный тариф: free, promo, simple, payed, wormsoft_developer, wormsoft_boss. Во время заморозки — free. |
| subscriptionLimit | number | Остаток кредитов по тарифу в текущем периоде. |
| subscriptionLimitResetAt | number | Unix timestamp (секунды) сброса subscriptionLimit. 0 — сброс выполняется по запросу при следующем списании. |
| boostLimit | number | Активные кредиты буста. Списываются раньше subscriptionLimit. 0 — нет активного буста. |
| boostLimitResetAt | number | Unix timestamp (секунды) окончания буста, после которого boostLimit обнулится. 0 — нет активного буста. |
| totalLimit | number | Удобное поле: subscriptionLimit + boostLimit. |
| isFrozen | boolean | true, если подписка сейчас заморожена и действуют лимиты Free. |
Как считаются остатки
- • Перед ответом сервис сбрасывает лимит, если окно тарифа уже истекло — цифры всегда актуальные.
- • Буст-кредиты тратятся раньше тарифных, поэтому остаток по тарифу меняется только после исчерпания буста.
- • У буста свой таймер сброса, не зависящий от сброса тарифа.
- • Если активна заморозка подписки, действуют лимиты тарифа Free, а
isFrozenбудет true.
Возможные ошибки
- • 401 Unauthorized — отсутствует или невалиден API key.
- • 429 Too Many Requests — превышен rate limit ключа.
- • 404 Not Found — ключ валиден, но запись пользователя была удалена (крайне редкий случай).