kosareva.cloud

Invalid API key: почему ключ не принимают и как это проверить

Код 401 почти никогда не значит, что ключ сломан. Обычно он не тот, не туда или не доехал. Проверка занимает минуту.

/ Короткий ответ

Что это значит

Invalid API key, а у OpenAI дословно Incorrect API key provided, это ответ 401: сервер получил заголовок с ключом, но такого ключа у него нет. Ключ либо изменён при копировании, либо выпущен другим сервисом, либо отозван, либо отправлен не на тот адрес.

Самая частая причина при работе через посредников и агрегаторы: ключ от одного сервиса отправлен на адрес другого. Ключ проверяет тот сервер, куда вы стучитесь, и ключ чужого сервиса для него просто не существует. Второе место занимает переменная окружения, которая не перечитана после правки файла .env.

Быстрая проверка одна: запрос к списку моделей командой curl с тем же ключом и тем же адресом, что в коде. Если он проходит, ключ в порядке, и проблема в том, как его передаёт ваш код.

/ Почему

Откуда берётся ошибка

  • Ключ и адрес от разных сервисов: ключ агрегатора отправлен на api.openai.com или наоборот.
  • Лишний пробел, перенос строки или кавычка на конце ключа после копирования из письма или чата.
  • Файл .env изменён, а процесс не перезапущен: в памяти старое значение или пустая строка.
  • Ключ отозван или удалён в кабинете, а в коде остался.
  • Ключ проекта OpenAI (sk-proj-…) используется с другой организацией в заголовке OpenAI-Organization.
  • Заголовок не тот: Anthropic ждёт x-api-key, OpenAI-совместимые API ждут Authorization: Bearer.
  • Ключ подставлен в поле «модель» или в base_url, а поле ключа пустое.
/ Что делать

Порядок действий

01

Проверьте ключ одной командой

Тот же адрес и тот же ключ, что в коде. Ответ 200 со списком моделей означает, что ключ живой.

curl https://api.kosareva.cloud/v1/models \
  -H "Authorization: Bearer ВАШ_КЛЮЧ"
02

Сверьте пару «ключ + адрес»

Ключ проверяет тот сервер, куда идёт запрос. Ключ и base_url должны быть от одного сервиса.

03

Напечатайте длину ключа из кода

Не сам ключ, а len(key). Пробел на конце или пустая строка сразу видны.

04

Перезапустите процесс

После правки .env приложение, докер-контейнер или ноду n8n нужно перезапустить.

05

Выпустите новый ключ

Если всё сходится, а 401 остаётся, ключ мог быть отозван. Новый ключ и повтор проверки.

/ По инструментам

Где это чинится в разных инструментах

  • Cursor. Поле OpenAI API Key принимает ключ, кнопка Verify проверяет его сразу. Если вы подменили base_url, ключ должен быть от того же сервиса.
  • Cline. Провайдер OpenAI Compatible: Base URL, API Key и Model ID. Ключ от другого провайдера в этом списке не подойдёт.
  • Claude Code. Переменные ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL. Если задан только токен без адреса, запрос уйдёт в Anthropic и получит 401.
  • n8n. Ключ живёт в Credentials, а не в ноде. Проверьте, что нода использует свежие credentials, а не старую копию.
  • LangChain. Параметр openai_api_key либо переменная OPENAI_API_KEY. Если задано и то и другое, побеждает параметр.
/ FAQ

Частые вопросы

Ключ начинается с sk-, значит, он от OpenAI?

Нет. Префикс sk- используют многие OpenAI-совместимые сервисы. Смотрите, где ключ выпущен, а не как выглядит.

Ключ работал вчера, сегодня 401

Ключ отозвали, истёк срок или сменился адрес. Проверьте командой из первого шага, потом кабинет сервиса.

Можно ли увидеть свой ключ ещё раз?

У большинства сервисов полный ключ показывается один раз при создании. Если не сохранили, выпустите новый.

/ На kosareva.cloud

Как это выглядит у нас

В кабинете ключ проверяется в тот же момент: раздел «Ключи» показывает, когда ключ создан и сколько по нему потрачено. Пример команды с проверкой лежит в документации, адрес один для всех моделей: https://api.kosareva.cloud/v1.

Ключ, который работает из России

OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.

Получить ключ