404 page not found{"error":{"message":"Invalid URL (GET /v1/chat/completions)"}}NotFoundError: Error code: 404Esto pilla a la gente más durante la depuración que en producción. Pegas la URL en un navegador, o en una herramienta que usa GET por defecto, ves un 404 y concluyes que el endpoint está caído. El endpoint está bien; simplemente no tiene gestor para GET.
Es fácil de verificar: una ruta que realmente no existe y una ruta que existe pero rechaza tu método devuelven ambas 404, pero solo una cambia de comportamiento cuando cambias a POST.
Envía la misma ruta dos veces, una de cada forma, y compara:
# GET — expect 404 even on a healthy endpoint
curl -s -o /dev/null -w 'GET %{http_code}\n' \
'YOUR_BASE_URL/chat/completions'
# POST with a deliberately bad key — expect 401
curl -s -o /dev/null -w 'POST %{http_code}\n' -X POST \
'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer invalid' \
-H 'Content-Type: application/json' -d '{}'
GET 404 seguido de POST 401 significa que el endpoint está sano y lo estabas probando mal. Dos 404 significan que la ruta realmente es incorrecta.
GET /v1/chat/completions devuelve 404 y POST devuelve un error en JSON hasta que aportes una clave válida. Endpoints y ejemplos en el inicio rápido.Revisado por última vez el 2026-10-01. Escrito a partir de problemas diagnosticados en una pasarela compatible con OpenAI en producción, no recopilado de otras webs.