LLM API providers — balance access audit
Назначение
Рабочий список проверки поставщиков LLM API на предмет доступа к балансу:
- по API
- через сайт / личный кабинет
- через публичную документацию
- через внутренние endpoints фронтенда
Единый формат для мониторинга
Целевое поле для всех провайдеров: remaining.
Нормализованная схема:
provider— имя провайдераstatus—confirmed/partial/unknown/blockedauth_type— тип авторизацииbalance_endpoint— основной endpoint баланса, если естьused— использованоlimit— лимитremaining— остаток (ключевое поле)unit— единица (tokens,credits,usd,quota, …)notes— пояснение по конвертации и ограничениям
Статусы
confirmed— подтверждено инструментамиpartial— есть частичное подтверждение, но не полный доступ к балансуunknown— данных недостаточноblocked— исследование упёрлось в защиту/авторизацию
1. WormSoft
- URL кабинета:
https://ai.wormsoft.ru/lk/ - Страница баланса:
https://ai.wormsoft.ru/lk/deposit - API URL:
https://ai.wormsoft.ru/api/gpt - Баланс в интерфейсе: да, пользователь видит в UI
- Баланс по API: не подтверждён
- Что подтверждено:
- в ЛК/на связанных страницах есть сущности
Остаток кредитов,Пополнить баланс,Потребление кредитов - пользователь подтверждает, что на странице
https://ai.wormsoft.ru/lk/depositесть блок:Ваш текущий баланс и тарифБаланс: 2 748 ₽Тариф: Payed
- пользователь подтвердил тарифную сетку страницы deposit:
Free—5 000 кредитов каждые 20 часовPromo—150 000 кредитов каждые 8 часовSimple—500 000 кредитов каждые 5 часовPayed—3 000 000 кредитов каждые 4 часаWormsoft developer—5 000 000 кредитов каждые 2 часаWormsoft boss—10 000 000 кредитов каждые 1 час
- найден публичный docs-раздел:
https://ai.wormsoft.ru/docs/llm/subscriptions/ - на docs-странице указан рабочий API лимитов подписок:
GET /api/user-connector/subscription-limits - найдены auth/data маршруты кабинета:
POST /api/auth/base/loginGET /api/lk/dataGET /api/user-connector/current-settings
- по клиентскому коду
_nuxtподтверждено, что UI баланса рендерится из поляlabelответаPOST /api/lk/data - из того же ответа используются поля:
limitResetAtsubscriptionRemainingSecondstokenSeriescreditSeriestokenCostSeriestokenCostByModelreferralLinkreferralWebLinkreferralsCount
- в ЛК/на связанных страницах есть сущности
- Проверка API-ключом пользователя:
POST /api/lk/data→401 UnauthorizedGET /api/user-connector/current-settings→401 UnauthorizedGET /api/user-connector/subscription-limits→200 OK
- Проверка browser-login по данным пользователя:
- UI форма отправляет
POST /api/auth/base/login - фактический ответ сейчас:
404 Not Found - cookies auth не выставляются (
tokenBase,refreshTokenBaseпустые) GET /api/lk/dataв текущем состоянии отвечает404 Not Found
- UI форма отправляет
- Что реально доступно программно:
- лимиты подписок/планов через
GET /api/user-connector/subscription-limits - поля по каждому плану:
amount,seconds,price,periodDays,rateLimitRequests,rateLimitSeconds - примеры:
free.amount=5000,promo.amount=150000,simple.amount=500000,payed.amount=3000000
- лимиты подписок/планов через
- Нормализация сейчас:
provider:wormsoftused:nulllimit:3000000remaining:2748unit:RUBplan:Payedlimit_unit:creditslimit_period_hours:4limit_period_display:каждые 4 часаsubscription_limits_endpoint:https://ai.wormsoft.ru/api/user-connector/subscription-limitsbalance_endpoint:ui_deposit_page_or_internal_lk_dataauth_type:website session / unknown internal auth
- Вывод:
- для утреннего отчёта WormSoft нужно тянуть UI-баланс страницы deposit:
2 748 ₽ - для тарифа
Payedлимит:3 000 000 кредитов каждые 4 часа - API key не даёт доступ к текущему балансу ЛК
- endpoint лимитов подписки — это справочник тарифов, не сам пользовательский баланс
- для утреннего отчёта WormSoft нужно тянуть UI-баланс страницы deposit:
- Статус:
confirmed-ui-only - Автоматизация:
- баланс страницы deposit — нужен browser/session-based check
- лимиты подписок — да
- приоритетный формат утреннего отчёта: баланс в RUB + тариф + лимит + период лимита
5. Polza.ai
- Dashboard:
https://polza.ai/dashboard - Docs:
https://polza.ai/docs - API base URL:
https://polza.ai/api/v1 - Баланс программно: да
- Что подтверждено по локальному конфигу:
- base URL взят из локального конфига/бэкапов Hermes/OpenClaw
- auth:
Authorization: Bearer <API_KEY> - провайдер присутствует в локальной конфигурации как реальный upstream
- Что подтверждено инструментами:
GET https://polza.ai/api/v1/models→200 OKGET https://polza.ai/api/v1/balance→200 OK- типовые endpoints
/balances,/credit,/credits,/usage,/billing/usage,/dashboard/billing/usage,/subscription→404 Not Found
- Реальный ответ
GET /balance:remaining: 580.09798977used: 15248.17574115- явного
limitнет
- Нормализация:
provider:polzaused:15248.17574115limit:nullremaining:580.09798977unit:RUBbalance_endpoint:https://polza.ai/api/v1/balanceusage_endpoint:not foundauth_type:bearer
- Вывод:
- у Polza есть рабочий balance API
remainingиusedдоступны программно- явный
limitAPI не отдаёт
- Статус:
confirmed - Автоматизация:
- balance/remaining — да
- used — да
- limit — нет явного поля, оставить
null
2. Tokenator
- Dashboard:
https://dashboard.tokenator.cloud/ - API endpoints:
- Anthropic:
https://api.tokenator.top/anthropic - OpenAI:
https://api.tokenator.top/v1
- Anthropic:
- Dashboard/API key alias:
Key-8a5f694f - Баланс/лимит в интерфейсе: да
- Что подтверждено пользователем:
- Использовано:
55,018,555 - Лимит:
255,000,000 - Остаток:
199,981,445
- Использовано:
- Что подтверждено инструментами:
GET https://api.tokenator.top/v1/tokensсAuthorization: Bearer <API_KEY>→200 OK- JSON ответа содержит:
used: 55018555limit: 255000000remaining: 199981445name: key-8a5f694fimage_limit: 0image_used: 0image_remaining: 0
- Нормализация:
provider:tokenatorused:55018555limit:255000000remaining:199981445unit:tokensbalance_endpoint:https://api.tokenator.top/v1/tokensauth_type:bearer
- Вывод:
- Tokenator даёт баланс токенов по API
- рабочий endpoint:
GET /v1/tokens - по словам пользователя также доступен зеркальный anthropic-compatible route:
GET /anthropic/v1/tokens - это годится для автопроверки
- Статус:
confirmed - Автоматизация:
- готово для прямой API-проверки баланса/лимита/остатка
- основной endpoint:
https://api.tokenator.top/v1/tokens
3. Codex.sale
- Кабинет:
https://codex.sale/user - API base URL:
https://codex.sale/v1 - Баланс/лимит в интерфейсе: да
- Баланс/остаток программно: да, через session auth кабинета
- Что подтверждено в UI:
- после логина открыт dashboard
unf86 - основной балансовый виджет показывает:
Tokens 351.31 M - есть статистика
Requests in 7 Days: 956 - есть оценка
Estimated OpenAI API Cost: $140.35
- после логина открыт dashboard
- Что подтверждено инструментами по internal API:
POST https://codex.sale/api/user-auth/loginс login/password →200 OK- login выдаёт cookie
codex_lb_user_session GET https://codex.sale/api/user/meс session cookie →200 OKGET https://codex.sale/api/user/overview?logsLimit=25&logsOffset=0&ledgerLimit=5с session cookie →200 OKGET /api/user/meсAuthorization: Bearer <API_KEY>→401 auth_required- вывод: internal balance endpoints работают через cookie-сессию, не через API key
- Поля баланса из
GET /api/user/me:rubBalance: 351.0153approxRubEquivalent: 351.0153baseTokensRemaining: 351015300adjustmentTokensRemaining: 0approxTokensRemaining: 351015300tariffLabel: "1M = 1 RUB"
- Что подтверждено по OpenAI-compatible API:
GET /v1/modelsсAuthorization: Bearer <API_KEY>→200 OKGET /v1/usageсAuthorization: Bearer <API_KEY>→200 OK- ответ
GET /v1/usage:request_count: 1667total_tokens: 81483048
GET /v1/tokens→404 Not FoundGET /v1/balance→404 Not FoundGET /v1/credits→404 Not FoundGET /v1/account→404 Not FoundGET /v1/me→404 Not FoundGET /v1/limits→404 Not FoundGET /v1/subscription→404 Not Found
- Auth observations:
- OpenAI-compatible API:
Authorization: Bearer <API_KEY> x-api-keyс этим ключом даётinvalid_api_key- balance/internal API: login/password → session cookie
codex_lb_user_session
- OpenAI-compatible API:
- Нормализация:
provider:codex-saleused:81483048(подтверждено по/v1/usageкакtotal_tokens)limit:null(явного поля лимита не найдено)remaining:351015300unit:tokensremaining_display:351.0153M tokensmoney_remaining:351.0153 RUBbalance_endpoint:https://codex.sale/api/user/meusage_endpoint:https://codex.sale/v1/usageauth_type:session_cookie_for_balance + bearer_for_usage
- Вывод:
- Codex.sale можно автоматизировать для ежедневной проверки остатка без браузера
- лучший источник текущего
remaining:GET /api/user/meпослеPOST /api/user-auth/login - лучший источник usage:
GET /v1/usageчерез Bearer API key - явный
limitне найден
- Статус:
confirmed - Автоматизация:
- balance/remaining — да, через login session
- usage — да, через Bearer API key
- limit — нет явного поля, оставить
nullдо появления данных
4. Claudexia
- Сайт:
https://claudexia.tech/ - API base URL:
https://api.claudexia.tech/v1 - Баланс в интерфейсе: да
- Баланс программно: да
- Что подтверждено по API:
GET https://api.claudexia.tech/v1/models→200 OKGET https://api.claudexia.tech/v1/balance→200 OKс рабочим ключомGET https://api.claudexia.tech/v1/usage→200 OKс рабочим ключомGET https://api.claudexia.tech/v1/credits→404 Not Found
- Рабочая авторизация:
Authorization: Bearer <API_KEY>→ работаетx-api-key: <API_KEY>→ работаетapi-key: <API_KEY>→401 unauthorized- логин/пароль не понадобились
- Реальный ответ
GET /v1/balance:balance_cents: 726total_input_tokens: 137594214total_output_tokens: 1122025total_tokens_used: 138716239
- Реальный ответ
GET /v1/usage:- формат: список
data[] - поля записи:
created_atmodelinput_tokensoutput_tokenstotal_tokenscost_cents
- в текущем ответе подтверждено 20 записей usage
- формат: список
- Нормализация:
provider:claudexiaused:138716239limit:nullremaining:726unit:cents_for_balance / tokens_for_usageremaining_display:726 centsbalance_endpoint:https://api.claudexia.tech/v1/balanceusage_endpoint:https://api.claudexia.tech/v1/usageauth_type:bearer_or_x_api_keyextra:total_input_tokens: 137594214total_output_tokens: 1122025
- Вывод:
- у Claudexia есть рабочий balance API и usage API
- для ежедневной автоматизации провайдер готов
- явный
limitAPI не отдаёт, поэтому в unified report покаnull
- Статус:
confirmed - Автоматизация:
- balance/remaining — да
- usage — да
- limit — нет явного поля, оставить
null
Morning cards — agreed output format
🟦 Tokenator
https://dashboard.tokenator.cloud/
Баланс: 199 981 445 tokens
Лимит: 255 000 000 tokens
Потрачено: 55 018 555 tokens
Ключ: key-8a5f694f
Источник данных: API
---
🟪 Codex.sale
https://codex.sale/user
Баланс: 351.02 ₽ (351.02M tokens )
Потрачено: 81.48M tokens
Лимит: —
Источник данных: ЛК + API
---
🟨 Claudexia
https://claudexia.tech/dashboard
Баланс: $14.52
Запросов: 165
Input: 11 906 161 tokens
Output: 49 138 tokens
Потрачено: $4.54
Источник данных: ЛК
---
🟩 WormSoft
https://ai.wormsoft.ru/lk/deposit
Баланс: 2 748 ₽
Тариф: Payed
Лимит: 3 000 000 credits: каждые 4 часа
Стоимость тарифа: 2 500 ₽/мес
Источник данных: ЛК
---
🟧 Polza
https://polza.ai/dashboard
Баланс: 580.10 ₽
Потрачено: 15 248.18 ₽
Источник данных: APIMapping / normalization rules
- Всегда выводить карточками, не таблицей.
- Вторая строка каждой карточки — ссылка на кабинет/дашбоард.
- Последняя строка —
Источник данных: APIилиЛКилиЛК + API. - Основное поле для утра — текущий баланс в нативных единицах провайдера.
- Если есть лимит и потрачено — выводить их отдельными строками.
- Для подписок дополнительно выводить тариф, период лимита и стоимость тарифа.
- Не подменять данные API-оценками из сторонних полей, если пользователь явно ориентируется на цифры из ЛК.
- Для Claudexia утренние карточки ориентировать на ЛК-метрики (
Current Balance,Requests,Input,Output,Total Cost), а не на raw/v1/balance, если между ними есть расхождение. - Для Codex.sale показывать и RUB, и token equivalent, если обе метрики доступны.
- Для WormSoft лимит брать из тарифа страницы deposit:
Payed→3 000 000 credits каждые 4 часа,2 500 ₽/мес
Следующие провайдеры
Добавлять сюда по мере проверки.