Strona główna → Pomoc

401 invalid API key – gdy klucz wygląda dobrze, a i tak nie działa

401 oznacza, że zapytanie dotarło do API, a klucz został odrzucony – to dobra wiadomość. Adres jest poprawny; zły jest tylko klucz.

Co widzisz

Dlaczego tak się dzieje

Warto to odróżnić od przypadku „HTML zamiast JSON”. Czyste 401 w JSON-ie dowodzi, że base URL jest poprawny, a zapytanie jest prawidłowo kierowane. Dzieli cię jedna drobna poprawka, zamiast debugowania niewłaściwej warstwy.

Najczęstszą przyczyną wcale nie jest zły klucz – tylko niewidoczny znak. Kopiując z terminala albo z panelu WWW, często łapiesz znak nowej linii na końcu albo twardą spację, a porównanie zawodzi na kluczu, który na ekranie wygląda identycznie.

Sprawdź, czy to ta przyczyna

Wypisz długość klucza i porównaj ją z tym, co pokazuje panel. Jeden znak za dużo zdradza problem:

# Python
import os
k = os.environ["API_KEY"]
print(len(k), repr(k[-4:]))

# shell
printf '%s' "$API_KEY" | wc -c

Jeśli repr() pokazuje '\n' albo długość jest o jeden większa od oczekiwanej, to jest twoja odpowiedź.

Jak to naprawić

  1. Usuń białe znakiPrzytnij klucz przy odczycie ze zmiennej środowiskowej lub pliku. Nowa linia na końcu jest niewidoczna w każdym interfejsie i psuje każde porównanie.
  2. Sprawdź nazwę nagłówkaEndpointy w stylu OpenAI oczekują Authorization: Bearer KEY. Endpointy w stylu Anthropic oczekują x-api-key. Dobry klucz w złym nagłówku zwraca 401 bez żadnej wskazówki, który błąd popełniłeś.
  3. Sprawdź, do czego klucz ma dostępW bramkach, gdzie klucze są przypisane do planu lub grupy, ważny klucz i tak może zostać odrzucony dla modelu spoza swojego zakresu. Niektóre zwracają wtedy 401 zamiast jaśniejszego błędu. Zanim uznasz klucz za zepsuty, wylistuj modele, które widzi.
  4. Potwierdź, że klucz nadal istniejeUsunięte i zrotowane klucze zwykle kończą się 401, a nie 404. Jeśli niedawno rotowałeś klucz, upewnij się, że działający proces został zrestartowany – długo żyjący proces trzyma starą wartość w pamięci.
W APICLAN listę tego, do czego klucz ma dostęp, sprawdzisz poleceniem curl https://apiclan.us/v1/models -H "Authorization: Bearer YOUR_KEY". Klucze należą do jednej grupy, więc klucz z jednego planu nie zadziała w innym.

Powiązane

Unexpected token '<' przy wywołaniu API zgodnego z OpenAI404 na /v1/chat/completions, choć endpoint na pewno istnieje

Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.