Powrót do bloga

Rozwiązywanie problemówPrzewodnik

Błąd API 401 lub 404: zły klucz, base URL lub identyfikator modelu

Odczytaj kod statusu, ustal, która z trzech rzeczy jest błędna (klucz, base URL, identyfikator modelu), i potwierdź poprawkę jednym żądaniem curl.

Autor: CheapTokens TeamOpublikowano 4 min czytania

Karta błędu ze statusem 401 i wskazówką, aby sprawdzić klucz, base URL i identyfikator modelu
Na tej stronie
  1. Szybki sposób na ich rozróżnienie
  2. 401: klucz nie pasuje do endpointu
  3. 404 przy każdym modelu: adres jest błędny
  4. 404 przy jednym modelu: identyfikator modelu
  5. Potwierdź poprawkę jednym poleceniem curl
  6. Jeśli nadal nie działa

Twoje żądanie zakończyło się błędem ze kodem statusu i nie wiesz, czego najpierw dotknąć. Krótka odpowiedź: 401 zwykle wskazuje na klucz, 404 zwykle oznacza, że pukasz w złe miejsce — albo adres (base URL i ścieżka), albo identyfikator modelu. Trzy rzeczy do sprawdzenia, w tej kolejności, i jedno polecenie curl, które potwierdza poprawkę.

Strona OpenAI z kodami błędów (sprawdzona 26 października 2026) wymienia dwie wiadomości 401: "Invalid Authentication" i "Incorrect API key provided". Podawana poprawka jest taka sama dla obu: sprawdź klucz lub wygeneruj nowy. Strona nie dokumentuje 404 dla samego API, więc dla 404 poniższa zasada wynika ze sposobu działania endpointów zgodnych z OpenAI, a nie z tej strony.

Szybki sposób na ich rozróżnienie#

Status Co mówi serwer Na co patrzeć najpierw
401 zwykle: nie akceptuję tego klucza klucz i to, do którego dostawcy należy
404 przy każdym modelu zwykle: pod tym adresem nic nie ma base URL i /v1
404 tylko przy jednym modelu zwykle: adres jest w porządku, ten identyfikator modelu nie jest znany identyfikator modelu

Treść wiadomości zależy od serwera i od twojego narzędzia (Cline, Aider, OpenCode i Continue każde opakowuje błędy po swojemu), więc zacznij od numeru, a potem potwierdź sprawdzeniem curl poniżej.

401: klucz nie pasuje do endpointu#

Klasyczna historia: przeniosłeś narzędzie do nowego dostawcy, zmieniłeś base URL, a w konfiguracji został klucz starego dostawcy. Adres jest nowy, klucz stary, a serwer odpowiada 401. Nic nie jest zepsute; klucz po prostu należy do innego domu.

Co sprawdzić:

  1. Który dostawca wydał klucz? Musi to być ten, którego adres wywołujesz. Klucz do jednej usługi nie jest ważny w innej.
  2. Zbłąkane znaki. Spacja lub znak nowej linii wklejony razem z kluczem albo cudzysłowy, które znalazły się wewnątrz wartości.
  3. Skąd narzędzie go czyta. Zmienna środowiskowa ustawiona w jednym terminalu, a nie w tym, z którego uruchomiono edytor, to częsta przyczyna. Jeśli narzędzie ma zarówno plik konfiguracyjny, jak i zmienną środowiskową, ustal, które wygrywa.
  4. Klucz unieważniony lub usunięty. Klucz, który usunąłeś lub unieważniłeś, przestaje działać — utwórz nowy i umieść go w konfiguracji.

Jeśli nie masz pewności, jak działają klucze lub gdzie je trzymać, czym jest klucz API i jak go bezpiecznie przechowywać omawia to prostymi słowami.

404 przy każdym modelu: adres jest błędny#

Base URL dla CheapTokens to https://api.cheaptokens.dev/v1. Narzędzia i SDK same dopisują ścieżkę endpointu, więc typowe pomyłki dotyczą /v1:

  • Brak /v1: narzędzie wywołuje w efekcie https://api.cheaptokens.dev/chat/completions.
  • Podwojone /v1: wkleiłeś pełną ścieżkę do pola, które już ją dodaje, i otrzymujesz https://api.cheaptokens.dev/v1/v1/chat/completions.
  • Zły wariant: narzędzia w stylu OpenAI i SDK OpenAI przyjmują adres z /v1. SDK Anthropic i Claude Code przyjmują adres bez /v1: https://api.cheaptokens.dev.

Jeśli kiedykolwiek zastanawiałeś się, czym dokładnie jest base URL i którą jego część dodaje narzędzie, ten przewodnik przeprowadza przez to krok po kroku. Po stronie Anthropic zobacz Anthropic Python SDK z CheapTokens.

404 przy jednym modelu: identyfikator modelu#

To łapie osoby, które kopiują nazwę z tabeli cen lub od innego dostawcy. Tabela cen może podawać DeepSeek-V4-Flash; API oczekuje pełnego identyfikatora bramy, z prefiksem dewelopera i wydaniem:

Gdzie to widziałeś Czego potrzebuje 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

Krótkie identyfikatory z etykiet cenowych nie są akceptowane przez API, a pisownia ma znaczenie: wielkie litery, ukośnik, sufiks -0731. Skopiuj identyfikator z dokumentacji CheapTokens, zamiast wpisywać go z pamięci — różni dostawcy nazywają ten sam model inaczej. Aby zobaczyć dokładne identyfikatory dostępne dla twojego klucza, wywołaj GET https://api.cheaptokens.dev/v1/models z tym samym nagłówkiem Authorization i skopiuj identyfikator z listy:

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

Jeśli logika nazw w tabeli wygląda dziwnie, jak czytać nazwy modeli AI wyjaśnia alias kontra przypiętą wersję.

Potwierdź poprawkę jednym poleceniem curl#

Wyłącz narzędzie z równania i wywołaj API bezpośrednio. Zastąp placeholder klucza własnym:

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
  }'

To jedno żądanie zawiera wszystkich trzech podejrzanych: klucz w nagłówku, base URL w pierwszej linii, identyfikator modelu w treści. Odpowiedź JSON z tablicą choices oznacza, że wszystkie trzy są poprawne, a problemem jest to, co twoje narzędzie robi inaczej. Jeśli się nie powiedzie, zmieniaj jedną rzecz naraz:

  • 401 → wstaw klucz otrzymany z CheapTokens i uruchom ponownie.
  • 404 → porównaj URL znak po znaku z powyższym, a potem identyfikator modelu.

Gdy curl zadziała, skopiuj te same trzy wartości do narzędzia: klucz, base URL (https://api.cheaptokens.dev/v1 lub bez /v1 dla SDK Anthropic i Claude Code) oraz pełny identyfikator modelu.

Jeśli nadal nie działa#

  • Ten sam błąd w narzędziu, curl działa. Narzędzie czyta stary klucz lub URL skądinąd: z drugiego pliku konfiguracyjnego, zapisanego profilu, zmiennej środowiskowej. Zrestartuj narzędzie po zmianie.
  • Nie masz pewności, czy identyfikator modelu jest poprawny. Wywołaj GET /v1/models ze swoim kluczem i skopiuj identyfikator z listy.
  • Connection refused, przekroczenia limitu czasu, błędy certyfikatów. To nie jest 401 ani 404; zobacz typowe błędy połączenia.
  • Nie masz pewności, jak powinno wyglądać pierwsze żądanie. Twoje pierwsze żądanie API prowadzi krok po kroku, a dokumentacja zawiera pełne odniesienie.

Nawyk wart zachowania: gdy wywołanie się nie powiedzie, najpierw przeczytaj numer. 401 zwykle oznacza klucz, 404 zwykle adres lub identyfikator modelu, a curl rozstrzyga sprawę. To rozwiązuje większość tych błędów, zanim otworzysz choćby jeden log.