История операций по балансу

GEThttps://api.souz.ai/v1/balance/history

Пополнения, списания за завершённые запросы, возвраты остатка и отмены начислений, новые первыми, прямо из журнала операций. У пополнения source: payment — оплата, bonus — бонус; у бонуса от службы поддержки — label (бонус к пополнению, компенсация за запрос, бонус). Списание — одно на успешный запрос, по фактической цене; провалившийся запрос не стоит ничего. Возврат остатка (refund) отмечает служба поддержки, когда вернула остаток по обращению клиента; он уменьшает баланс. Отмена (reversal) — служба поддержки отменила начисление или его часть; она уменьшает баланс, у пополнения растёт topup.reversed_micro. Страницы — по курсору: next_before из ответа передаётся в before следующего запроса, пока он не станет null. kind оставляет один вид операций. У аккаунта без баланса (has_balance: false в /v1/auth/me) — 403 account_without_balance.

Авторизация

ManagementKey

Ключ управления из кабинета souz.ai (выдают владелец и администратор аккаунта — себе или участнику). Даёт ровно то, что его держатель видит и может в кабинете: баланс, историю операций и запросов, расходы, обычные ключи, настройки аккаунта — с той же ролью, лимитами и цифрами. Модели не запускает. Обычный API-ключ здесь не подходит: 403 forbidden с detail[].reason: requires_management_key.

ClientSession

Сессия кабинета souz.ai в браузере — те же ручки, что у ключа управления.

Параметры запроса

limitinteger

По умолчанию 100, максимум 1000

Один вид операций; по умолчанию все

beforestring

Курсор next_before предыдущей страницы

Ответы

200OK
application/json
Схема BalanceHistoryResponse
currencystringобязательно
Пример: "RUB"
itemsarray[BalanceOperation]обязательно
next_beforestring | nullобязательно

Курсор следующей (более старой) страницы для before; null — страниц больше нет.

Пример: "1758600000123456.4211"
400Запрос отклонён; `error.detail[]` называет поля и допустимые значения.
application/json
401Нет ключа или ключ недействителен.
application/json
403Нельзя: у ключа не тот вид (модели запускает API-ключ, аккаунт — ключ управления), у роли

Нельзя: у ключа не тот вид (модели запускает API-ключ, аккаунт — ключ управления), у роли участника нет права или подпись ссылки на файл не сходится. detail[].reason говорит, что именно: requires_api_key, requires_management_key, cabinet_only (только в кабинете), insufficient_role (в allowed — роли, которым можно), not_key_author (секрет ключа открывает только тот, кто его создал).

application/json
429Слишком часто — повторите через `Retry-After` секунд. Запуск моделей, задачи и файлы результатов частотой не ограничены (их ограничивают баланс и лимиты трат); здесь 429 — на поток запросов с ключом, который сервер не знает, с одного адреса, и на потоки сверх 1000 одновременных на аккаунт (события задачи, чат с `stream: true`). Пределы — раздел «Лимиты» руководства.
application/json