X-Request-Id y devuelve únicamente la
información que necesitas para depurar tu solicitud.
OpenAI — /v1/chat/completions (y endpoints de imagen/vídeo)
Anthropic — /v1/messages
Gemini — /v1beta/models/{model}:generateContent
Mapeo de estados
Eltype / status del error se deriva del estado HTTP:
Parámetros rechazados
Cuando un modelo no acepta un valor de tu solicitud, el endpoint devuelve HTTP400 con la explicación del propio modelo. Los ajustes de razonamiento usan el código invalid_reasoning_effort, y el mensaje enumera los valores que acepta ese modelo, de modo que puedes corregir la solicitud sin adivinar. Los niveles de razonamiento admitidos por cada modelo, su valor predeterminado y si el razonamiento se puede desactivar se publican en GET /v1/models dentro de capability_metadata.reasoning.
El límite de solicitudes devuelve 429, y una solicitud que supera el tiempo disponible devuelve 504. Un 502 significa que la plataforma no pudo obtener una respuesta utilizable del modelo tras reintentar — no es un juicio sobre tus parámetros, así que lee el cuerpo de la respuesta antes de cambiarlos.
Errores de generación multimedia y reintentos
Para generar imágenes y vídeos, usa el campo estructuradoerror.code y el status
de la tarea (task.status en tu cliente) para decidir qué mensaje mostrar y si reintentar.
Sugiere cambios de contenido solo ante un código explícito de política o un rechazo
claro por la política de contenido. La mera mención de
safety en un mensaje, o HTTP
502 por sí solo, no demuestra una infracción. Si una tarea asíncrona sigue en pending
o processing, continúa consultando /v1/tasks/{task_id} con el mismo task_id;
no envíes otra solicitud de generación duplicada.