Свои запросы

GEThttps://api.souz.ai/v1/usage

Страница истории запросов, новые первыми; фильтры и страницы — на сервере. since ограничивает период снизу, status, modality, model и api_key_id оставляют одно значение, q — точный id запроса (job_…, chatcmpl-…) или ключ идемпотентности; фильтры действуют вместе. Модель без запросов, чужой или несуществующий ключ — пустая страница, а не ошибка. Страницы — по курсору: next_before из ответа передаётся в before, пока он не станет null. Разработчик видит только запросы по выданным ему ключам (включая его ключ плейграунда), остальные роли — все запросы аккаунта. Итоги и график периода — GET /v1/usage/summary.

Авторизация

ManagementKey

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

ClientSession

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

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

limitinteger

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

Минимум: 1
Максимум: 1000
sincestring · date-time

Нижняя граница периода, RFC3339

beforestring

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

Только запросы в этом статусе

modalityModality

Только запросы этой модальности

modelstring

Только запросы к этой модели — её id, как canonical_model у строки истории

api_key_idstring

Только запросы по этому ключу — его id (key_…), как api_key_id у строки истории

qstring

Точный id запроса (job_…, chatcmpl-…) или ключ идемпотентности

sourcestring

Только запросы из плейграунда (ключом плейграунда)

Значения: playground

Ответы

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

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

Пример: "1758283200000000000_job_1a2b3c4d5e6f7890"
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