Изменить свой API-ключ
https://api.souz.ai/v1/keys/{id}Полная замена редактируемых полей — null у spend_limit_micro/expires_at снимает ограничение, пропущенный spend_limit_reset — none. Держатель ключа не меняется. Разработчик — только свои ключи (чужой — 404), администратор и владелец — любые. Разработчик и выше. Ключ управления не меняется: его отзывают и создают новый.
Авторизация
ManagementKeyКлюч управления из кабинета souz.ai (выдают владелец и администратор аккаунта — себе или
участнику). Даёт ровно то, что его держатель видит и может в кабинете: баланс, историю
операций и запросов, расходы, обычные ключи, настройки аккаунта — с той же ролью, лимитами
и цифрами. Модели
не запускает. Обычный API-ключ здесь не подходит: 403 forbidden с
detail[].reason: requires_management_key.
ClientSessionСессия кабинета souz.ai в браузере — те же ручки, что у ключа управления.
Параметры пути
idstringобязательноId ключа
Тело запроса обязательно
Новые значения
application/jsonexpires_atstring | nullRFC 3339; null — ключ бессрочный.
"2026-12-31T00:00:00Z"namestring"production"spend_limit_microinteger | null · int64null — без потолка.
1000000spend_limit_resetstringnone | daily | monthly; без поля — none.
none, daily, monthly"monthly"Ответы
200OK
application/jsonblockedbooleanобязательноКлюч заблокирован службой поддержки — отдельно от enabled: включить его снова
нельзя, запросы по нему получают 403 key_blocked. Снять блокировку — через
поддержку.
falsecreated_atstringобязательно"2026-08-21T12:00:00Z"Автор ключа — только он открывает секрет (GET /v1/keys/{id}/secret); null — автор
неизвестен или удалён из аккаунта, секрет не открыть.
enabledbooleanобязательноtrueexpires_atstring | nullобязательноRFC 3339; null — ключ бессрочный.
"2026-12-31T00:00:00Z"idstringобязательно"key_1a2b3c4d5e6f7890"kindstringобязательноuser — обычный ключ, management — ключ управления: модели не запускает, потолка трат нет.
user, managementlast_used_atstring | nullобязательноКогда ключ последний раз прошёл проверку; null — ещё ни разу.
Держатель ключа — его автор: траты ключа идут в его лимит, при его удалении ключ отзывается; null — ключ аккаунта, выданный до того, как ключи стали личными.
namestring"production"secret_availablebooleanобязательноМожно ли показать секрет снова (GET /v1/keys/{id}/secret); false — показать нельзя
(ответ 409 secret_unavailable), создайте новый ключ.
truesecret_hintstring | nullобязательноПодсказка секрета: приставка, первые 4 и последние 4 знака — узнать ключ, не открывая его; null — секрет не сохранён.
"sk_9f3a…c1d2"spend_limit_microinteger | nullобязательноПотолок трат ключа в микроединицах валюты; null — без потолка.
1000000spend_limit_resetstringобязательноКак часто обновляется потолок: none — на весь срок ключа; daily / monthly —
spent_micro считается с 00:00 UTC текущего дня / с 1-го числа текущего месяца.
none, daily, monthly"monthly"spent_microintegerобязательноСписано по запросам ключа в текущем окне потолка (при none — за весь срок), в
микроединицах; только завершённые запросы.
250000400Запрос отклонён; `error.detail[]` называет поля и допустимые значения.
application/json401Нет ключа или ключ недействителен.
application/json403Нельзя: у ключа не тот вид (модели запускает API-ключ, аккаунт — ключ управления), у роли
Нельзя: у ключа не тот вид (модели запускает API-ключ, аккаунт — ключ управления), у роли
участника нет права или подпись ссылки на файл не сходится. detail[].reason говорит,
что именно: requires_api_key, requires_management_key, cabinet_only (только в
кабинете), insufficient_role (в allowed — роли, которым можно), not_key_author
(секрет ключа открывает только тот, кто его создал).
application/json404Нет такого объекта у этого аккаунта.
application/json415Тип тела не тот, что принимает метод: `Content-Type: application/json` (у загрузки файла и транскрибации — `multipart/form-data`). В `detail[]` — `{"path": "body", "reason": "unsupported_format"}` и принимаемые типы.
application/json429Слишком часто — повторите через `Retry-After` секунд. Запуск моделей, задачи и файлы результатов частотой не ограничены (их ограничивают баланс и лимиты трат); здесь 429 — на поток запросов с ключом, который сервер не знает, с одного адреса, и на потоки сверх 1000 одновременных на аккаунт (события задачи, чат с `stream: true`). Пределы — раздел «Лимиты» руководства.
application/json503Плановые работы (`maintenance`): новые запросы приостановлены до `error.ends_at`,
Плановые работы (maintenance): новые запросы приостановлены до error.ends_at,
причина — в error.reason. Повторите после этого времени (или через Retry-After
секунд, чтобы узнать, не закончились ли работы раньше); принятые задачи доделываются,
переключаться никуда не нужно. Состояние — GET /v1/status.
application/json