Назад до блогу

Вирішення проблемПосібник

Помилка API 401 або 404: неправильний ключ, base URL або ідентифікатор моделі

Прочитайте код стану, з'ясуйте, що з трьох речей неправильне (ключ, base URL, ідентифікатор моделі), і підтвердьте виправлення одним запитом curl.

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

Картка помилки зі статусом 401 і підказкою перевірити ключ, base URL та ідентифікатор моделі
На цій сторінці
  1. Швидкий спосіб їх розрізнити
  2. 401: ключ не відповідає ендпоінту
  3. 404 на кожній моделі: адреса неправильна
  4. 404 на одній моделі: ідентифікатор моделі
  5. Підтвердьте виправлення однією командою curl
  6. Якщо все ще не працює

Ваш запит завершився помилкою з кодом стану, і ви не впевнені, за що хапатися першим. Коротка відповідь: 401 зазвичай вказує на ключ, 404 зазвичай означає, що ви стукаєте не туди — або адреса (base URL і шлях), або ідентифікатор моделі. Три речі, які варто перевірити, у такому порядку, і одна команда curl, яка підтвердить виправлення.

Сторінка кодів помилок OpenAI (перевірено 26 жовтня 2026) перелічує два повідомлення 401: "Invalid Authentication" та "Incorrect API key provided". Виправлення, яке вона дає, однакове для обох: перевірте ключ або згенеруйте новий. Сторінка не документує 404 для самого API, тому для 404 правило нижче походить з того, як працюють OpenAI-сумісні ендпоінти, а не з тієї сторінки.

Швидкий спосіб їх розрізнити#

Статус Що каже сервер На що дивитися першим
401 зазвичай: я не приймаю цей ключ ключ і до якого провайдера він належить
404 на кожній моделі зазвичай: за цією адресою нічого немає base URL і /v1
404 лише на одній моделі зазвичай: адреса правильна, цей ідентифікатор моделі невідомий ідентифікатор моделі

Формулювання повідомлення залежить від сервера та вашого інструмента (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 на одній моделі: ідентифікатор моделі#

Це ловить тих, хто копіює назву з таблиці цін або від іншого провайдера. Таблиця цін може вказувати DeepSeek-V4-Flash; API хоче повний ідентифікатор шлюзу, з префіксом розробника та релізом:

Де ви це бачили Що потрібно 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

Короткі ідентифікатори з цінників API не приймає, і написання має значення: великі літери, слеш, суфікс -0731. Копіюйте ідентифікатор з документації CheapTokens, а не набирайте з пам'яті — різні провайдери називають ту саму модель по-різному. Щоб побачити точні ідентифікатори, доступні вашому ключу, викличте GET https://api.cheaptokens.dev/v1/models з тим самим заголовком Authorization і скопіюйте ідентифікатор зі списку:

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

Якщо логіка назв у таблиці виглядає дивно, як читати назви AI-моделей пояснює різницю між аліасом і закріпленою версією.

Підтвердьте виправлення однією командою 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 у першому рядку, ідентифікатор моделі в тілі. Відповідь JSON із масивом choices означає, що всі три правильні, і проблема в тому, що ваш інструмент робить інакше. Якщо не вдається, змінюйте одну річ за раз:

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

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

Якщо все ще не працює#

  • Та сама помилка в інструменті, curl працює. Інструмент читає старий ключ або URL звідкись інде: другий файл конфігурації, збережений профіль, змінна середовища. Перезапустіть інструмент після зміни.
  • Не впевнені, що ідентифікатор моделі правильний. Викличте GET /v1/models зі своїм ключем і скопіюйте ідентифікатор зі списку.
  • Connection refused, тайм-аути, помилки сертифікатів. Це не 401 і не 404; дивіться поширені помилки з'єднання.
  • Не впевнені, як має виглядати перший запит. Ваш перший запит до API проходить крок за кроком, а документація містить повний довідник.

Звичка, яку варто зберегти: коли виклик не вдається, спершу читайте число. 401 зазвичай означає ключ, 404 — зазвичай адресу або ідентифікатор моделі, а curl усе вирішує. Це розв'язує більшість таких помилок, перш ніж ви відкриєте хоч один лог.