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

На цій сторінці
Ваш запит завершився помилкою з кодом стану, і ви не впевнені, за що хапатися першим. Коротка відповідь: 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. Нічого не зламано; ключ просто належить іншому дому.
Що перевірити:
- Який провайдер видав ключ? Це має бути той, чию адресу ви викликаєте. Ключ для одного сервісу недійсний на іншому.
- Зайві символи. Пробіл або розрив рядка, вставлений разом із ключем, або лапки, що потрапили всередину значення.
- Звідки інструмент його читає. Змінна середовища, встановлена в одному терміналі й не встановлена в тому, з якого запущено ваш редактор, — часта причина. Якщо інструмент має і файл конфігурації, і змінну середовища, з'ясуйте, який із них перемагає.
- Відкликаний або видалений ключ. Ключ, який ви видалили чи відкликали, перестає працювати — створіть новий і помістіть його в конфігурацію.
Якщо ви не впевнені, як працюють ключі або де їх зберігати, що таке API-ключ і як безпечно його зберігати пояснює це простими словами.
404 на кожній моделі: адреса неправильна#
Base URL для CheapTokens — https:/. Інструменти та 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-; API хоче повний ідентифікатор шлюзу, з префіксом розробника та релізом:
Прокрутіть таблицю праворуч →
| Де ви це бачили | Що потрібно API |
|---|---|
| DeepSeek-V4-Flash | deepseek- |
| GLM-5.3-Flash | zai- |
| MiniMax-M2.7 | MiniMaxAI/ |
Короткі ідентифікатори з цінників API не приймає, і написання має значення: великі літери, слеш, суфікс -0731. Копіюйте ідентифікатор з документації CheapTokens, а не набирайте з пам'яті — різні провайдери називають ту саму модель по-різному. Щоб побачити точні ідентифікатори, доступні вашому ключу, викличте GET https:/ з тим самим заголовком Authorization і скопіюйте ідентифікатор зі списку:
curl https://api.cheaptokens.dev/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"Якщо логіка назв у таблиці виглядає дивно, як читати назви AI-моделей пояснює різницю між аліасом і закріпленою версією.
Підтвердьте виправлення однією командою curl#
Приберіть інструмент із рівняння та викличте API напряму. Замініть плейсхолдер ключа своїм:
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:/, або без /v1 для Anthropic SDK і Claude Code) та повний ідентифікатор моделі.
Якщо все ще не працює#
- Та сама помилка в інструменті, curl працює. Інструмент читає старий ключ або URL звідкись інде: другий файл конфігурації, збережений профіль, змінна середовища. Перезапустіть інструмент після зміни.
- Не впевнені, що ідентифікатор моделі правильний. Викличте
GET /v1/modelsзі своїм ключем і скопіюйте ідентифікатор зі списку. - Connection refused, тайм-аути, помилки сертифікатів. Це не 401 і не 404; дивіться поширені помилки з'єднання.
- Не впевнені, як має виглядати перший запит. Ваш перший запит до API проходить крок за кроком, а документація містить повний довідник.
Звичка, яку варто зберегти: коли виклик не вдається, спершу читайте число. 401 зазвичай означає ключ, 404 — зазвичай адресу або ідентифікатор моделі, а curl усе вирішує. Це розв'язує більшість таких помилок, перш ніж ви відкриєте хоч один лог.



