Перейти к содержимому

Ключи и аутентификация

Все запросы, кроме GET /models, требуют ключ в заголовке:

Authorization: Bearer mxn-...

Кабинет → Профиль → API-ключи → «Создать ключ».

Полный ключ показывается один раз, сразу после создания. Мы храним только sha256-хэш, префикс и последние символы — восстановить ключ невозможно, потерянный проще удалить и выпустить новый.

При создании ключа можно ограничить его набором возможностей. Доступны семь:

Область Что открывает
chat POST /chat/completions
search Модели с веб-поиском внутри /chat/completions
images POST /images/generations, POST /images/edits
video Все эндпоинты /videos
music Все эндпоинты /audio/music
audio POST /audio/speech, POST /audio/transcriptions
embeddings POST /embeddings

Ключ без ограничений (все области отмечены) получает доступ ко всему каталогу. Запрос вне разрешённых областей возвращает 403.

Ограничивайте области под задачу: ключ, который лежит в браузерном расширении и умеет только chat, при утечке не сожжёт баланс на видео.

Ключ — это доступ к вашему балансу. Правила те же, что для любого платёжного секрета:

  • переменные окружения или менеджер секретов, никогда не в репозитории;
  • не в клиентском коде — браузер и мобильное приложение отдают ключ любому, кто откроет DevTools;
  • отдельный ключ на каждое приложение и окружение, чтобы отзыв одного не ронял остальные;
  • при подозрении на утечку — удалить ключ в кабинете, это мгновенно.
Окно терминала
curl https://api.mixen.ai/v1/chat/completions \
-H "Authorization: Bearer $MIXEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"ping"}],"max_tokens":5}'

Ответ 401 означает, что ключ не найден или отозван. 402 — ключ рабочий, но на балансе не хватает денег.