Авторизация и ключи

Каждый запрос подписывается 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КодПричина
401unauthorizedНет заголовка Authorization
401invalid_api_keyКлюч не найден или повреждён
401api_key_revokedКлюч отозван
401api_key_wrong_environmentТестовый ключ на рабочем стенде или наоборот
403ip_not_allowedIP не входит в список разрешённых для ключа
403ip_blockedIP временно заблокирован: 10 неудачных авторизаций за минуту → бан на 15 мин.
403api_access_blockedДоступ к API для аккаунта ограничен администрацией
403paid_plan_requiredAPI доступно только на платных тарифах (если так настроено)