Consulta los códigos de error de la API y sus soluciones.
Esta guía resume los códigos de error que puedes encontrar al usar la API o nuestra biblioteca oficial de Python. Cada código de error que se menciona en el resumen tiene una sección con más detalles sobre cómo resolverlo.
Errores de la API
Código
Resumen
400 - Argumento service_tier no válido
Causa: el proyecto no permite el nivel de servicio que solicitaste o el que determinó la API. Solución: asigna a service_tier un nivel permitido para el proyecto o actualiza los niveles de servicio permitidos en la configuración del proyecto.
401 - Autenticación no válida
Causa: la autenticación no es válida. Solución: verifica que la clave de API y la organización que realiza la solicitud sean las correctas.
401 - La clave de API proporcionada es incorrecta
Causa: la clave de API de la solicitud es incorrecta. Solución: verifica que estés usando la clave de API correcta, borra la caché del navegador o genera una clave nueva.
401 - Debes pertenecer a una organización para usar la API
Causa: tu cuenta no pertenece a ninguna organización. Solución: contáctanos para que te agreguemos a una organización nueva o pide a quien administra tu organización que te invite a una organización.
401 - Dirección IP no autorizada
Causa: la dirección IP desde la que enviaste la solicitud no está en la lista de direcciones IP permitidas de tu proyecto u organización. Solución: envía la solicitud desde la dirección IP correcta o actualiza la configuración de la lista de direcciones IP permitidas.
403 - País, región o territorio no admitido
Causa: estás accediendo a la API desde un país, una región o un territorio donde no está disponible. Solución: consulta esta página para obtener más información.
429 - Se agotó el saldo de créditos
Código:credit_balance_exhausted Causa: a tu organización no le quedan créditos prepagados. Solución:agrega créditos para seguir usando la API.
429 - Se alcanzó el límite de solicitudes
Causa: estás enviando solicitudes con demasiada frecuencia. Solución: espacia las solicitudes y respeta el tiempo indicado en el encabezado Retry-After cuando esté presente. Consulta la guía sobre límites de solicitudes.
429 - Reduce la frecuencia de las solicitudes
Tipo:rate_limit_error Código:slow_down Causa: la frecuencia de tus solicitudes aumentó demasiado rápido. Solución: respeta el tiempo indicado en el encabezado Retry-After cuando esté presente, reduce la frecuencia de tus solicitudes y auméntala gradualmente.
429 - Se alcanzó el límite de gasto de la organización
Código:organization_spend_limit_exceeded Causa: tu organización alcanzó el límite de gasto que tiene establecido. Solución: aumenta o elimina el límite de gasto de la organización.
429 - Se alcanzó el límite de gasto del proyecto
Código:project_spend_limit_exceeded Causa: tu proyecto alcanzó el límite de gasto que tiene establecido. Solución: aumenta o elimina el límite de gasto en la configuración del proyecto.
429 - Se alcanzó el límite de uso de la organización
500 - El servidor encontró un error al procesar tu solicitud
Causa: hay un problema en nuestros servidores. Solución: espera un momento y vuelve a enviar la solicitud. Contáctanos si el problema persiste. Consulta la página de estado.
503 - El modelo está sobrecargado temporalmente
Tipo:service_unavailable_error Código:server_is_overloaded Causa: el modelo solicitado está sobrecargado temporalmente. Solución: si está presente el encabezado Retry-After, espera el tiempo que indica y vuelve a enviar la solicitud.
Si el error está relacionado con la facturación, revisa error.code para identificar la causa específica. El campo más general error.type puede seguir teniendo el valor insufficient_quota.
Si el error es de facturación, gasto o cuota, volver a enviar la solicitud no restablecerá el acceso a la API. Actualiza los créditos o los límites correspondientes antes de enviar otra solicitud.
previous_response_not_found: la API no puede resolver previous_response_id con la información de estado disponible. Vuelve a enviar la solicitud con todo el contexto de entrada y con previous_response_id establecido en null.
websocket_connection_limit_reached: la conexión alcanzó el límite de 60 minutos. Abre una conexión WebSocket nueva y continúa.
La API devuelve el mensaje “Invalid service_tier argument: The requested service tier is not allowed for this project.” como un error de tipo invalid_request_error, con error.param establecido en service_tier, cuando la solicitud especifica un nivel de servicio no permitido para el proyecto o la API determina que le corresponde uno de esos niveles.
Las restricciones del proyecto se aplican a los niveles de servicio default, flex y priority. El nivel de servicio fast se evalúa como priority. Las solicitudes que omiten service_tier o lo establecen en auto también pueden generar este error si la API determina que les corresponde un nivel no permitido. Esta política del proyecto no se aplica al Nivel de capacidad.
Asigna a service_tier un nivel permitido para el proyecto.
Si la solicitud usa auto u omite service_tier, actualiza la configuración del proyecto para permitir el nivel que determina la API.
Este mensaje de error indica que tus credenciales de autenticación no son válidas. Estas son algunas posibles causas:
Estás usando una clave de API revocada.
Estás usando una clave de API distinta de la asignada a la organización o al proyecto que realiza la solicitud.
Tu clave de API no tiene los permisos necesarios para el punto de acceso al que llamas.
Para resolver este error, sigue estos pasos:
Verifica que la clave de API y el ID de la organización en el encabezado de tu solicitud sean los correctos. Puedes encontrar tu clave de API y el ID de la organización en la configuración de tu cuenta. Para encontrar las claves de un proyecto específico, ve a Configuración general y selecciona el proyecto que te interesa.
Si tienes dudas sobre la validez de tu clave de API, puedes generar una nueva. Reemplaza la clave anterior por la nueva en tus solicitudes y sigue nuestra guía de buenas prácticas.
Este mensaje de error indica que la clave de API que usas en tu solicitud es incorrecta. Estas son algunas posibles causas:
Tu clave de API contiene un error de escritura o un espacio de más.
Estás usando una clave de API que pertenece a otra organización u otro proyecto.
Estás usando una clave de API que se eliminó o desactivó.
Es posible que la caché local conserve una clave de API anterior que ya se revocó.
Para resolver este error, sigue estos pasos:
Borra la caché y las cookies del navegador y vuelve a intentarlo.
Verifica que estés usando la clave de API correcta en el encabezado de tu solicitud.
Si tienes dudas sobre si tu clave de API es correcta, puedes generar una nueva. Reemplaza la clave de API anterior en tu código y sigue nuestra guía de buenas prácticas.
Este mensaje de error indica que tu cuenta no pertenece a ninguna organización. Estas son algunas posibles causas:
Saliste de tu organización anterior o te quitaron el acceso.
Saliste de tu proyecto anterior o te quitaron el acceso.
Se eliminó tu organización.
Para resolver este error, sigue estos pasos:
Si saliste de tu organización anterior o te quitaron el acceso, puedes solicitar una organización nueva o pedir que te inviten a una existente.
Para solicitar una organización nueva, contáctanos a través de help.openai.com.
Si saliste de un proyecto anterior o te quitaron el acceso, puedes pedirle al propietario de la organización o del proyecto que te agregue de nuevo, o puedes crear otro proyecto.
El error credit_balance_exhausted indica que se agotó el saldo de créditos prepagados de tu organización.
Este mensaje de error indica que alcanzaste el límite de solicitudes que tienes asignado para la API. Enviaste demasiados tokens o solicitudes en poco tiempo y superaste la cantidad de solicitudes permitida. Estas son algunas posibles causas:
Estás usando un bucle o un script que envía solicitudes frecuentes o simultáneas.
Compartes tu clave de API con otros usuarios o aplicaciones.
Usas un plan gratuito con un límite de solicitudes bajo.
Alcanzaste el límite establecido para tu proyecto.
Para resolver este error, sigue estos pasos:
Espacia las solicitudes y evita las llamadas innecesarias o redundantes.
Si está presente el encabezado Retry-After, espera al menos el tiempo que indica antes de volver a intentarlo. Si no está presente, aumenta de forma exponencial el tiempo de espera entre reintentos, añade una variación aleatoria y limita el número de reintentos. La capacidad del SDK para gestionar tiempos de espera prolongados indicados por el servidor depende de la versión y la configuración. Consulta nuestra guía sobre límites de solicitudes para obtener más información.
Si compartes tu organización con otros usuarios, ten en cuenta que los límites se aplican por organización y no por usuario. Revisa el uso del resto de tu equipo, ya que también cuenta para el límite.
Si usas un plan gratuito o básico, considera cambiar a un plan de pago por uso con un límite de solicitudes más alto. Puedes comparar las restricciones de cada plan en nuestra guía sobre límites de solicitudes.
Pídele al propietario de la organización que aumente los límites de solicitudes de tu proyecto.
Una respuesta 429 de tipo rate_limit_error con el código slow_down indica que la frecuencia de tus solicitudes aumentó más rápido de lo que el servicio puede gestionar de forma segura. Esto puede ocurrir incluso si tu tráfico se mantiene dentro de los límites de solicitudes por minuto y de tokens por minuto.
Como regla general, cuando tu tráfico llegue a un millón de tokens de entrada por minuto (TPM), auméntalo como máximo un 50 % cada 15 minutos. El punto exacto a partir del cual se limita la velocidad de aumento del tráfico puede variar según el modelo y las condiciones del tráfico.
Para resolver este error:
Si está presente el encabezado Retry-After, espera al menos el tiempo que indica antes de volver a intentarlo. Si no está presente, aumenta el tiempo de espera entre reintentos y añade una pequeña demora aleatoria.
Reduce la frecuencia de tus solicitudes y luego auméntala gradualmente.
Mantén un ritmo de tráfico estable para reducir la probabilidad de que vuelva a producirse el error slow_down.
Si el tráfico de pago por uso de tu empresa alcanza con frecuencia el límite de crecimiento del tráfico, puedes considerar el Nivel de capacidad para disponer de una capacidad más predecible en los modelos compatibles. Para GPT-5.6 y modelos posteriores, consulta Reserved Tier. Estas opciones de capacidad no sustituyen los pasos anteriores para resolver el error. Sigue respetando el tiempo indicado en Retry-After cuando esté presente y aumenta el tráfico gradualmente.
El error organization_spend_limit_exceeded indica que tu organización alcanzó el límite de gasto mensual que tiene establecido. El límite se aplica al tráfico de la API de todos los proyectos de la organización en conjunto.
Para restablecer el acceso a la API, aumenta o elimina el límite en la configuración de límites de la organización. De lo contrario, recuperarás el acceso cuando se restablezca el límite mensual.
El error project_spend_limit_exceeded indica que tu proyecto alcanzó el límite de gasto mensual que tiene establecido. Los demás proyectos pueden seguir usando la API a menos que también se alcance su propio límite o el de la organización.
Para restablecer el acceso a la API, aumenta o elimina el límite en la configuración del proyecto. De lo contrario, recuperarás el acceso cuando se restablezca el límite mensual.
El error organization_usage_limit_exceeded indica que tu organización alcanzó el límite de uso mensual que le asignó OpenAI. Este límite es independiente de los límites de gasto que configuras para la organización y los proyectos.
Una respuesta 503 de tipo service_unavailable_error con el código server_is_overloaded indica que el modelo solicitado no tiene capacidad suficiente para procesar tu solicitud en ese momento.
Si está presente el encabezado Retry-After, espera al menos el tiempo que indica antes de volver a intentarlo. Si no está presente, aumenta el tiempo de espera entre reintentos. Si el error persiste, consulta la página de estado para saber si hay algún incidente en curso.
Tipos de errores de la biblioteca de Python
Python lanza RateLimitError para las respuestas 429 e InternalServerError para las respuestas 503. Si tu código solo capturaba una de estas clases para gestionar tanto las restricciones de tráfico como las sobrecargas, captura ambas y revisa error.code. Por ejemplo, en caso de sobrecarga de video, ahora se devuelve 503 donde antes se devolvía 429. Consulta la guía de migración para conocer los cambios en cada punto de acceso.
Tipo
Resumen
APIConnectionError
Causa: hubo un problema al conectarse a nuestros servicios. Solución: revisa la configuración de red y del proxy, los certificados SSL o las reglas del firewall.
APITimeoutError
Causa: se agotó el tiempo de espera de la solicitud. Solución: espera un momento y vuelve a enviar la solicitud. Contáctanos si el problema persiste.
AuthenticationError
Causa: tu clave de API o token no era válido, había vencido o se había revocado. Solución: verifica que estés usando la clave de API o el token correcto y que siga vigente. Es posible que debas generar uno nuevo desde el panel de tu cuenta.
BadRequestError
Causa: la solicitud tenía un formato incorrecto o le faltaban parámetros obligatorios, como un token o una entrada. Solución: el mensaje de error debería indicar qué falló. Consulta la documentación del método de la API al que llamas y verifica que los parámetros que envías sean válidos y estén completos. También es posible que debas revisar la codificación, el formato o el tamaño de los datos de la solicitud.
ConflictError
Causa: otra solicitud actualizó el recurso. Solución: intenta actualizar el recurso de nuevo y verifica que ninguna otra solicitud esté intentando actualizarlo.
InternalServerError
Causa: hubo un problema en nuestros sistemas. Solución: espera un momento y vuelve a enviar la solicitud. Contáctanos si el problema persiste.
NotFoundError
Causa: el recurso solicitado no existe. Solución: verifica que estés usando el identificador de recurso correcto.
PermissionDeniedError
Causa: no tienes acceso al recurso solicitado. Solución: verifica que la clave de API, el ID de la organización y el ID del recurso sean los correctos.
RateLimitError
Causa: alcanzaste el límite de solicitudes que tienes asignado o aumentaste el tráfico demasiado rápido. Solución: espacia tus solicitudes y respeta el tiempo indicado en Retry-After cuando esté presente, sin superar el límite de reintentos. Consulta nuestra guía sobre límites de solicitudes para obtener más información.
UnprocessableEntityError
Causa: no se pudo procesar la solicitud aunque el formato era correcto. Solución: vuelve a enviar la solicitud.
El error APIConnectionError indica que tu solicitud no pudo llegar a nuestros servidores o que no se pudo establecer una conexión segura. Puede deberse a un problema de red, a la configuración del proxy, a un certificado SSL o a una regla del firewall.
Si recibes un error APIConnectionError, prueba lo siguiente:
Revisa la configuración de red y verifica que tu conexión a internet sea estable y rápida. Es posible que debas cambiar de red, usar una conexión por cable o reducir el número de dispositivos o aplicaciones que consumen tu ancho de banda.
Revisa la configuración del proxy y verifica que sea compatible con nuestros servicios. Es posible que debas actualizar la configuración, usar otro proxy o conectarte directamente sin pasar por el proxy.
Revisa tus certificados SSL y verifica que sean válidos y estén actualizados. Es posible que debas instalar o renovar los certificados, usar otra autoridad de certificación o desactivar la verificación SSL.
Revisa las reglas del firewall y verifica que no bloqueen ni filtren el tráfico de nuestros servicios. Es posible que debas modificar la configuración del firewall.
Si corresponde, verifica que tu contenedor tenga los permisos necesarios para enviar y recibir tráfico.
Si el problema persiste, consulta los pasos que se indican en la sección sobre errores persistentes.
El error APITimeoutError indica que tu solicitud tardó demasiado en completarse y nuestro servidor cerró la conexión. Puede deberse a un problema de red, a una carga elevada en nuestros servicios o a que la solicitud es compleja y requiere más tiempo de procesamiento.
Si recibes un error APITimeoutError, prueba lo siguiente:
Espera unos segundos y vuelve a enviar la solicitud. Es posible que disminuya la congestión de la red o la carga de nuestros servicios y que la solicitud se complete en el segundo intento.
Revisa la configuración de red y verifica que tu conexión a internet sea estable y rápida. Es posible que debas cambiar de red, usar una conexión por cable o reducir el número de dispositivos o aplicaciones que consumen tu ancho de banda.
Si el problema persiste, consulta los pasos que se indican en la sección sobre errores persistentes.
El error AuthenticationError indica que tu clave de API o token no era válido, había vencido o se había revocado. Puede deberse a un error de escritura, a un error de formato o a una vulneración de la seguridad.
Si recibes un error AuthenticationError, prueba lo siguiente:
Verifica que estés usando la clave de API o el token correcto y que siga vigente. Es posible que debas generar una clave nueva desde el panel de claves de API, comprobar que no haya espacios ni caracteres de más o usar otra clave o token si tienes varios.
Verifica que hayas usado el formato correcto.
El error BadRequestError (antes InvalidRequestError) indica que la solicitud tenía un formato incorrecto o le faltaban parámetros obligatorios, como un token o una entrada. Puede deberse a un error de escritura, a un error de formato o a un error de lógica en tu código.
Si recibes un error BadRequestError, prueba lo siguiente:
Lee con atención el mensaje de error para identificar qué falló. El mensaje debería indicar qué parámetro no era válido o faltaba, y qué valor o formato se esperaba.
Consulta la referencia de la API para el método al que llamaste y verifica que los parámetros que envías sean válidos y estén completos. Es posible que debas revisar los nombres, tipos, valores y formatos de los parámetros y comprobar que coincidan con la documentación.
Revisa la codificación, el formato y el tamaño de los datos de la solicitud y verifica que sean compatibles con nuestros servicios. Es posible que debas codificar los datos en UTF-8, darles formato JSON o comprimirlos si son demasiado grandes.
Prueba la solicitud con una herramienta como Postman o curl y verifica que funcione como esperas. Es posible que debas depurar el código y corregir errores o inconsistencias en la lógica de la solicitud.
Si el problema persiste, consulta los pasos que se indican en la sección sobre errores persistentes.
El error InternalServerError indica que hubo un problema en nuestros sistemas al procesar tu solicitud. Puede deberse a un error temporal, a un defecto del software o a una interrupción del sistema.
Si recibes un error InternalServerError, prueba lo siguiente:
Espera unos segundos y vuelve a enviar la solicitud. Es posible que el problema se resuelva pronto y que la solicitud se complete en el segundo intento.
Consulta nuestra página de estado para saber si hay incidentes o tareas de mantenimiento en curso que puedan afectar a nuestros servicios. Si hay un incidente en curso, sigue las actualizaciones y espera a que se resuelva antes de volver a enviar la solicitud.
Si el problema persiste, consulta los pasos que se indican en la sección sobre errores persistentes.
Nuestro equipo de soporte investigará el problema y te responderá lo antes posible. Si hay mucha demanda, el tiempo de espera puede ser prolongado. También puedes publicar en nuestro foro de la comunidad. Asegúrate de omitir toda información sensible.
El error RateLimitError indica que alcanzaste el límite de solicitudes que tienes asignado. Enviaste demasiados tokens o solicitudes en un período determinado y nuestros servicios bloquearon temporalmente el envío de más tokens o solicitudes.
Establecemos límites de solicitudes para garantizar un uso equitativo y eficiente de nuestros recursos y evitar el abuso o la sobrecarga de nuestros servicios.
Si recibes un error RateLimitError, prueba lo siguiente:
Envía menos tokens o solicitudes, o espacia los envíos. Es posible que debas reducir la frecuencia o el volumen de tus solicitudes, agrupar los tokens en lotes o aumentar de forma exponencial el tiempo de espera entre reintentos cuando Retry-After no esté presente. Consulta nuestra guía sobre límites de solicitudes para obtener más detalles.
Cuando esté presente Retry-After, espera al menos el tiempo que indica antes de volver a intentarlo. La biblioteca de Python puede detener los reintentos automáticos si el tiempo de espera indicado por el servidor supera el límite que admite la biblioteca. Si tu aplicación realiza reintentos, respeta el tiempo de espera original y ten en cuenta los reintentos del SDK.
También puedes consultar las estadísticas de uso de la API en el panel de tu cuenta.
Los datos y los encabezados que enviaste en la solicitud
La marca de tiempo y la zona horaria de la solicitud
Cualquier otro detalle relevante que nos ayude a diagnosticar el problema
Nuestro equipo de soporte investigará el problema y te responderá lo antes posible. Si hay mucha demanda, el tiempo de espera puede ser prolongado. También puedes publicar en nuestro foro de la comunidad. Asegúrate de omitir toda información sensible.
Manejo de errores
Te recomendamos manejar en tu código los errores que devuelve la API. Para hacerlo, puedes usar un fragmento de código como el siguiente:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21import OpenAI from"openai";constclient=newOpenAI();try {constresponse=await client.responses.create({ model: "gpt-6-astra", input: "Hello world", }); console.log(response.output_text);} catch (error) {if (error instanceofOpenAI.APIConnectionError) { console.error("Failed to connect to the OpenAI API:", error.message); } elseif (error instanceofOpenAI.RateLimitError) { console.error("OpenAI API request exceeded its rate limit:", error.message); } elseif (error instanceofOpenAI.APIError) { console.error("OpenAI API returned an error:", error.status, error.message); } else {throw error; }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import openaifrom openai import OpenAIclient = OpenAI()try: response = client.responses.create(model="gpt-6-astra", input="Hello world")except openai.APIConnectionError as e: print(f"Failed to connect to OpenAI API: {e}")except openai.RateLimitError as e: print(f"OpenAI API request exceeded rate limit: {e}")except openai.APIError as e: print(f"OpenAI API returned an API Error: {e}")else: print(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28package mainimport ( "context" "errors" "fmt" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Hello world")}, }) if err != nil { var apiError *openai.Error if errors.As(err, &apiError) { fmt.Println("OpenAI API returned an API error:", apiError) return } fmt.Println("Failed to connect to OpenAI API:", err) return } fmt.Println(response.OutputText())}