Назад в блог

Решение проблемИнструкция

Ошибка API 401 или 404: ключ, base URL или id модели

Прочитайте код ответа, найдите, что не так — ключ, base URL или id модели, — и проверьте исправление одним запросом curl.

Автор: CheapTokens TeamОпубликовано 4 мин чтения

Карточка ошибки 401 с подсказкой проверить ключ, base URL и id модели
Содержание
  1. Как быстро отличить
  2. 401: ключ не подходит к адресу
  3. 404 на любой модели: неверный адрес
  4. 404 на одной модели: id модели
  5. Проверьте исправление одной командой curl
  6. Если всё ещё не работает

Запрос упал с кодом, и непонятно, за что хвататься. Коротко: 401 обычно про ключ, 404 — про то, куда вы стучитесь: адрес (base URL и путь) или id модели. Проверяйте три вещи по порядку, а исправление подтвердит одна команда curl.

На странице OpenAI с кодами ошибок (проверено 26 октября 2026) два сообщения для 401: «Invalid Authentication» и «Incorrect API key provided». Совет один: проверьте ключ или создайте новый. Для самого API страница не описывает 404, поэтому правило для 404 ниже взято из того, как устроены OpenAI-совместимые эндпоинты, а не из неё.

Как быстро отличить#

Код Что говорит сервер Куда смотреть сначала
401 обычно: этот ключ я не принимаю ключ и то, у какого сервиса он выдан
404 на любой модели обычно: по этому адресу ничего нет base URL и /v1
404 только на одной модели обычно: адрес верный, такой id модели не знаю id модели

Текст сообщения зависит от сервера и от вашего инструмента (Cline, Aider, OpenCode и Continue оборачивают ошибки по-своему), поэтому начинайте с числа, а затем подтвердите проверкой curl ниже.

401: ключ не подходит к адресу#

Классическая история: вы перевели инструмент на нового провайдера, поменяли base URL, а ключ от старого оставили в конфиге. Адрес новый, ключ старый — сервер отвечает 401. Ничего не сломано, ключ просто из другого дома.

Что проверить:

  1. Кто выдал ключ? Тот сервис, чей адрес вы вызываете. Ключ одного сервиса на другом не работает.
  2. Лишние символы. Пробел или перенос строки, который приехал вместе с ключом, или кавычки внутри значения.
  3. Откуда инструмент берёт ключ. Переменная окружения, заданная в одном терминале, но не в том, из которого запущен редактор, — частая причина. Если есть и конфиг, и переменная, выясните, что из них главнее.
  4. Отозванный или удалённый ключ. Такой ключ перестаёт работать — создайте новый и подставьте его в конфиг.

Если не уверены, как устроены ключи и где их хранить, что такое API-ключ и как хранить его безопасно — простыми словами.

404 на любой модели: неверный адрес#

Base URL CheapTokens — https://api.cheaptokens.dev/v1. Путь к эндпоинту инструменты и SDK добавляют сами, так что обычные промахи — с /v1:

  • Нет /v1: инструмент вызывает https://api.cheaptokens.dev/chat/completions.
  • Двойной /v1: вы вставили полный путь в поле, которое его уже дописывает, и получили https://api.cheaptokens.dev/v1/v1/chat/completions.
  • Другой формат: инструменты в стиле OpenAI и OpenAI SDK принимают адрес с /v1. Anthropic SDK и Claude Code — адрес без /v1: https://api.cheaptokens.dev.

Если хочется понять, что такое base URL и какую его часть дописывает инструмент, разбор здесь. Про сторону Anthropic — Anthropic Python SDK с CheapTokens.

404 на одной модели: id модели#

Здесь спотыкаются те, кто скопировал название из таблицы цен или у другого провайдера. В таблице может быть DeepSeek-V4-Flash, а API нужен полный gateway-id: с префиксом разработчика и выпуском.

Что вы увидели Что нужно API
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731
GLM-5.3-Flash zai-org/GLM-5.3-Flash
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7

Короткие id из меток цен API не принимает, и важна каждая буква: регистр, слэш, суффикс -0731. Берите id из документации CheapTokens, а не набирайте по памяти: у разных провайдеров одна и та же модель называется по-разному. Чтобы увидеть точные id, доступные вашему ключу, вызовите GET https://api.cheaptokens.dev/v1/models с тем же заголовком Authorization и скопируйте id из списка:

bash
curl https://api.cheaptokens.dev/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Если логика имён в таблице кажется странной, в статье про названия моделей объяснено, чем алиас отличается от закреплённой версии.

Проверьте исправление одной командой curl#

Уберите инструмент из цепочки и вызовите API напрямую. Вместо заглушки подставьте свой ключ:

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
    "messages": [{"role": "user", "content": "Say hi in one word."}],
    "max_tokens": 20
  }'

В одном запросе сидят все три подозреваемых: ключ в заголовке, base URL в первой строке, id модели в теле. Ответ в JSON с массивом choices значит, что все три верны, и дело в том, что делает ваш инструмент. Если не вышло, меняйте что-то одно за раз:

  • 401 → подставьте ключ, полученный в CheapTokens, и повторите.
  • 404 → сверьте URL с тем, что выше, символ за символом, затем id модели.

Когда curl работает, перенесите те же три значения в инструмент: ключ, base URL (https://api.cheaptokens.dev/v1, а для Anthropic SDK и Claude Code — без /v1) и полный id модели.

Если всё ещё не работает#

  • В инструменте та же ошибка, а curl в порядке. Инструмент берёт старый ключ или адрес откуда-то ещё: из второго конфига, сохранённого профиля, переменной окружения. После правки перезапустите его.
  • Не уверены в id модели. Вызовите GET /v1/models со своим ключом и скопируйте id из списка.
  • Отказ в соединении, таймауты, ошибки сертификата. Это не 401 и не 404, смотрите частые ошибки соединения.
  • Не знаете, как должен выглядеть первый запрос. Первый запрос к API разобран по шагам, полный справочник — в документации.

Привычка, которую стоит оставить: упал вызов — сначала читайте число. 401 обычно значит ключ, 404 — адрес или id модели, а проверку закрывает curl. Так разбирается большинство таких ошибок ещё до того, как вы откроете логи.