404 Not Found on /responsesopenai.NotFoundError: Error code: 404The same key works for chat/completions but not for responsesNothing appears in the usage log for the failed callEl prefijo pertenece a la base URL, no a cada endpoint. Una vez que base_url termina en /v1, el SDK genera la ruta correcta para cada endpoint que admite y no vuelves a pensar en ello.
Donde se rompe es en las peticiones escritas a mano. Alguien copia un ejemplo de curl de un blog que escribía la URL completa, cambia el host y pierde el prefijo al editar.
Como el 404 se devuelve en el borde, no deja rastro en el historial de peticiones de la cuenta. La gente entonces supone que el endpoint no está admitido, cuando en realidad nunca llegó a él.
Compara las dos rutas con la misma clave: la diferencia no deja dudas:
curl -s -o /dev/null -w 'no prefix: %{http_code}\n' -X POST \
'https://YOUR_DOMAIN/responses' -H 'Authorization: Bearer YOUR_KEY'
curl -s -o /dev/null -w 'with /v1: %{http_code}\n' -X POST \
'https://YOUR_DOMAIN/v1/responses' -H 'Authorization: Bearer YOUR_KEY'
Un 404 en la primera y un 400 o 200 en la segunda lo confirma. Un 401 en la segunda significa que la ruta es correcta y la clave no: es otro problema.
/v1/responses, /v1/chat/completions y /v1/messages con la misma base URL y la misma clave. Qué modelos responden en qué endpoint lo indica GET /v1/models.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.