Авторизация и ключи
Каждый запрос подписывается API-ключом в заголовке Authorization. Ключ привязан к вашему аккаунту: задачи списывают Мысли с общего баланса, а результаты сохраняются в вашем хранилище.
Authorization: Bearer nn_live_7Hc…Yq2Формат ключа
Рабочие ключи начинаются с nn_live_, ключи тестового стенда — с nn_test_. Ключ одного окружения не работает в другом. Последние символы ключа содержат контрольную сумму, поэтому ошибка копирования определяется сразу.
Управление ключами
- Ключи создаются в личном кабинете → API. Можно держать до 3 активных ключей, например отдельно для сервера и для тестов.
- Полный ключ показывается только один раз при создании. Мы храним лишь его хеш и не можем показать ключ повторно.
- «Пересоздать» — старый ключ сразу перестаёт работать, новый получает то же название и ограничения.
- «Отозвать» — ключ блокируется навсегда. Уже поставленные задачи будут выполнены.
- Если у вас включена двухфакторная аутентификация, операции с ключами подтверждаются кодом 2FA.
- О создании и пересоздании ключа приходит письмо на почту аккаунта.
Защита ключа
| Настройка | Зачем |
|---|---|
| Дневной лимит трат | Ограничивает расход Мыслей по ключу за сутки (по Москве). Если ключ утечёт, ущерб не превысит лимит. |
| Разрешённые IP | Запросы с других адресов получат 403 ip_not_allowed. Поддерживаются адреса и подсети: 203.0.113.10, 198.51.100.0/24. |
API не принимает запросы из браузера (CORS отключён намеренно). Вызывайте API только со своего сервера, чтобы ключ не попал к посетителям сайта.
Ошибки авторизации
| HTTP | Код | Причина |
|---|---|---|
| 401 | unauthorized | Нет заголовка Authorization |
| 401 | invalid_api_key | Ключ не найден или повреждён |
| 401 | api_key_revoked | Ключ отозван |
| 401 | api_key_wrong_environment | Тестовый ключ на рабочем стенде или наоборот |
| 403 | ip_not_allowed | IP не входит в список разрешённых для ключа |
| 403 | ip_blocked | IP временно заблокирован: 10 неудачных авторизаций за минуту → бан на 15 мин. |
| 403 | api_access_blocked | Доступ к API для аккаунта ограничен администрацией |
| 403 | paid_plan_required | API доступно только на платных тарифах (если так настроено) |