Strona główna → Pomoc

405 Method Not Allowed przy wywołaniu API AI

Twój POST dotarł do serwera WWW, ale nie do API. Ścieżka, na którą go wysłałeś, odpowiada tylko na GET, więc serwer odrzuca metodę, a nie samo żądanie. W prawie każdej bramce oznacza to, że base URL kończy się o jeden segment za wcześnie – wskazuje na katalog główny strony zamiast na prefiks API.

Co widzisz

Dlaczego tak się dzieje

SDK z linii OpenAI nie dodają za ciebie prefiksu ścieżki. Cokolwiek wpiszesz w base_url, jest używane dosłownie, z dopisanym /chat/completions. Podaj https://example.com, a żądanie pójdzie na https://example.com/chat/completions; podaj samą domenę z końcowym ukośnikiem, a niektóre klienty sprowadzą to do https://example.com/ – zwykłego POST na stronę główną.

Strona główna jest statyczna. Odpowiada na GET i HEAD i odrzuca wszystko inne – to jest właśnie 405. Żądanie nie dotarło do żadnego kodu API, więc nic nie pojawia się w twoim logu użycia – a pusty log sam w sobie jest wskazówką.

To lustrzane odbicie przypadku Anthropic. Claude Code i Anthropic SDK same dopisują /v1/messages, więc potrzebują base URL BEZ /v1. Skopiowanie działającego ustawienia z Claude Code do klienta OpenAI za każdym razem odtwarza ten błąd.

Sprawdź, czy to ta przyczyna

Zapytaj serwer, jakie metody akceptuje dokładnie ta ścieżka:

curl -s -o /dev/null -w '%{http_code}\n' -X POST 'YOUR_BASE_URL/chat/completions'
# and compare with the bare domain:
curl -s -D- -o /dev/null -X POST 'https://YOUR_DOMAIN/' | grep -i '^allow\|HTTP/'

Jeśli sama domena odpowiada 405 z nagłówkiem Allow: GET, HEAD, znalazłeś przyczynę. Poprawna ścieżka API zwraca 401, gdy brakuje klucza – błąd uwierzytelnienia oznacza, że rozmawiasz z API.

Jak to naprawić

  1. Przywróć prefiks API w base URLW klientach w stylu OpenAI base URL musi kończyć się prefiksem API, zwykle /v1. SDK dopisuje po nim /chat/completions i nic więcej.
  2. Nie używaj wartości z Claude CodeKlienty z linii Anthropic przyjmują sam host, bo wewnętrznie dopisują /v1/messages. Te dwa ustawienia wyglądają na wymienne, ale nie są.
  3. Usuń końcowy ukośnikBase URL zakończony na / może dać podwójny ukośnik, a niektóre routery kierują go do frontendu zamiast do API – ten sam 405, ten sam brak wpisu w logu.
KlientBase URL powinien
OpenAI SDK (Python, Node, Go)kończyć się na /v1
Codex, Cherry Studio, Chatbox, LobeChat, LM Studiokończyć się na /v1
Cursor, Cline, Roo Codekończyć się na /v1
Anthropic SDKbyć bez /v1 – SDK dopisuje /v1/messages
Claude Codebyć bez /v1 – z tego samego powodu
W APICLAN base URL to https://apiclan.us/v1 dla klientów w stylu OpenAI i https://apiclan.us dla Claude Code i Anthropic SDK. Ustawienia każdego klienta są w szybkim starcie.

Powiązane

Unexpected token '<' przy wywołaniu API zgodnego z OpenAI401 invalid API key – gdy klucz wygląda dobrze, a i tak nie działa

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.