Inicio → Ayuda

La llamada funciona en curl pero no desde tu aplicación

curl y tu aplicación no envían la misma petición. Los culpables habituales son un proxy que solo uno de los dos respeta, una variable de entorno que sobrescribe base_url, una clave restringida a direcciones de origen concretas o una biblioteca cliente que añade una ruta que no esperabas.

Lo que ves

Por qué ocurre

OPENAI_BASE_URL, OPENAI_API_KEY y HTTPS_PROXY los leen automáticamente muchos SDK. Un valor obsoleto en el entorno gana en silencio al argumento que pasaste en el código.

Los proxies corporativos y los equipos de inspección TLS afectan de forma distinta a las pilas HTTP de las bibliotecas y a curl. Un error de certificado en el SDK con un curl limpio es la firma.

Las claves pueden estar restringidas por IP de origen. Tu portátil está permitido y el servidor no, y el error es un fallo de autorización que no se parece en nada a un problema de IP.

Comprueba si es esta la causa

Haz que la aplicación imprima lo que realmente va a usar:

# Python
import os
print(os.getenv('OPENAI_BASE_URL'), os.getenv('HTTPS_PROXY'))
print(client.base_url)
# then reproduce curl from inside the same host
curl -s -o /dev/null -w '%{http_code}\n' \
  'YOUR_BASE_URL/models' -H 'Authorization: Bearer YOUR_KEY'

Ejecuta el curl desde la misma máquina y la misma shell que la aplicación. Reproducirlo desde tu portátil prueba otra ruta de red y no demuestra nada.

Cómo solucionarlo

  1. Limpia o alinea el entornoElimina las variables OPENAI_* obsoletas o ponles los valores que pretendes. Pasar base_url explícitamente en el código no siempre gana.
  2. Revisa cualquier restricción de IP en la claveSi la clave está limitada a ciertas direcciones, añade la IP de salida del servidor o usa para ese despliegue una clave sin restricción.
  3. Prueba desde el host que fallaReprodúcelo con curl en la máquina que falla, no en la que funciona. La mitad de estos casos resultan ser de red, no de código.
Las claves de APICLAN se pueden bloquear a direcciones de origen concretas con una lista de IP permitidas por clave. Vale la pena configurarla para una clave que funciona desde un servidor fijo, y revisarla primero cuando una clave que funcionaba falla de repente desde un host nuevo.

Relacionado

Unexpected token '<' al llamar a una API compatible con OpenAI401 invalid API key: cuando la clave parece correcta pero sigue fallando

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.