Аутентификация
Bearer-ключи
Каждый запрос к /v1/* должен нести заголовок:
Authorization: Bearer sk-tn-ВАШ_КЛЮЧКлюч создаётся в кабинете на странице API-ключи и показывается один
раз — храним только его SHA-256-хэш, восстановить значение потом нельзя.
В интерфейсе после этого виден лишь префикс (первые 10 символов, например
sk-tn-Ab3F) для опознания ключа в списке.
Проверка ключа на каждый запрос: заголовок должен начинаться с sk-tn-,
иначе — сразу 401 без обращения к базе. Валидный, но отозванный или
принадлежащий заблокированному аккаунту ключ — тоже 401.
curl https://api.aigateway.andrewdev.ru/v1/models \
-H "Authorization: Bearer sk-tn-ВАШ_КЛЮЧ"Отзыв ключа
Ключ отзывается на странице API-ключи в один клик — статус меняется
на REVOKED немедленно. Результат аутентификации кэшируется на стороне
шлюза на 30 секунд, поэтому уже отозванный ключ может продолжать
принимать запросы ещё до ~30 секунд после отзыва — это ожидаемое поведение,
а не баг.
Лимит на количество ключей
На аккаунт — не более 20 активных ключей одновременно. Попытка создать 21-й вернёт ошибку в кабинете; отзовите неиспользуемый ключ, чтобы создать новый.
Rate limit
Ограничение считается per-API-key (не per-аккаунт, если у вас несколько ключей — у каждого свой бюджет), алгоритм — token bucket:
| Параметр | Значение |
|---|---|
| Скорость пополнения | 300 запросов/мин |
| Максимальный запас (burst) | 60 запросов |
При превышении — 429 с заголовком Retry-After: 1:
{
"error": {
"message": "Rate limit exceeded, slow down",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}Подробности по кодам ошибок — на странице «Коды ошибок», по остальным числовым лимитам (размер тела, таймауты) — на странице «Лимиты».