Ключи и авторизация
Ключ — заголовок Authorization: Bearer <ключ>. Нет ключа или он неверный —
401 invalid_api_key.
Два вида ключей
| Ключ | Начинается с | Что делает |
|---|---|---|
| API-ключ | sk_ | запускает модели: чат, генерации, задачи, файлы |
| Ключ управления | mk_ | ведёт аккаунт: баланс, история, расходы, выдача API-ключей, настройки — Ключ управления |
Ключ не того вида — 403 forbidden с detail[].reason requires_api_key или
requires_management_key. Исключение — GET /v1/usage/{id}: API-ключ читает в нём
запросы, отправленные этим ключом, без предела частоты; запрос другого ключа — 404.
API-ключ создаёт любой участник аккаунта, кроме наблюдателя (кабинет, «API-ключи»), — себе:
траты ключа идут в его лимит, все ключи тратят общий баланс аккаунта. Секрет повторно
открывает только тот, кто создал ключ: в кабинете или GET /v1/keys/{id}/secret своим
ключом управления; остальным — 403 с detail[].reason: "not_key_author". В списке ключей
вместо секрета — подсказка secret_hint: приставка, первые 4 и последние 4 знака
(sk_9f3a…c1d2).
Ключ — только на сервере
- Храните ключ на своём сервере в переменной окружения (
SOUZ_API_KEY), не в коде браузера или мобильного приложения, не в логах и не в репозитории. В репозиторий —.env.exampleс пустым значением:SOUZ_API_KEY=. - Браузер к
api.souz.aiнапрямую не обращается: CORS у API нет, запрос из страницы браузер заблокирует. Фронтенд вызывает ваш сервер, сервер — Souz API. - Ключ утёк — отзовите его в кабинете («API-ключи») и выпустите новый.
Что можно без ключа
Каталог (GET /v1/models, GET /v1/models/{id}, /stats, /channels, GET /v1/channels),
превью роутинга (POST /v1/models/{id}/routing/preview), состояние сервиса
(GET /v1/status, Плановые работы) и документы: /,
/openapi.yaml, /openapi.json, /llms.txt, /llms-full.txt.
Сам ключ — GET /v1/key
Настройки ключа запроса (схема APIKey): потолок трат (spend_limit), его период
(spend_limit_reset), расход (spent), пресет и потолок цены по умолчанию, каналы по
моделям (routing_options), сроки хранения (retention) и режим без хранения (no_store).
curl https://api.souz.ai/v1/key -H "Authorization: Bearer $SOUZ_API_KEY"Потолок трат ключа
Потолок ключа — на всё время, в день или в месяц; у участника — общий лимит на все его
ключи. Исчерпан — 402 key_spend_limit_exceeded или 402 member_spend_limit_exceeded, без
списания (Лимиты). Ключ субагенту с дневным потолком создаёт и отзывает
ключ управления.