Al programar para integrar las APIs de ChatGPT, Claude y Gemini, lo más desesperante no es la lógica de negocio, sino que nada más empezar te sueltan un 401/403/429. Tranquilo: este tipo de “errores de clave API” la mayoría de las veces no es que la clave esté realmente mal, sino que algún detalle de configuración te está jugando una mala pasada.
1 401 invalid_api_key: primero sospecha de cómo la copiaste
El fallo más común que he visto: copiar la clave con espacios de más, sin el prefijo, o poner la key del entorno de prueba en producción. Recomiendo hacer una “reproducción mínima”: una sola línea de petición, manteniéndolo simple (KISS), y no buscar una aguja dentro de un montón de lógica de negocio.
2 403 permisos insuficientes: casi siempre es que el proyecto o el modelo no está habilitado
Claude y Gemini a veces vinculan los permisos a proyectos, regiones o listas blancas de modelos. Confirma si el modelo que elegiste está habilitado para la Key actual y si en la consola aparece algún aviso de “necesitas habilitar la API / la cuenta de facturación”.
3 429 rate limit: no es que hayas programado mal, es por cuota o concurrencia
El 429 suele venir por dos motivos: demasiadas solicitudes seguidas o cuota agotada. Implementa reintentos con backoff exponencial y, de paso, añade un límite de concurrencia: mejora mucho al instante.
4 Las variables de entorno no surten efecto: en local funciona, en producción se cae todo
En Node/Python lo más común es que no se inyecte el ENV, que el contenedor no se reinicie o que en CI el nombre de la variable esté mal escrito. Puedes seguir una idea de depuración típica de herramientas dependientes: primero confirma “si realmente se está leyendo la key”, y luego ya habla de red y de código.
5 Restricciones de red y región: el 403 parece un callejón sin salida
El proxy de la empresa, la salida a internet del servidor en la nube y las políticas regionales pueden hacer que la petición parezca “como si no tuvieras permisos”. El orden de revisión que suelo usar es:
- En la misma máquina, si un curl directo funciona
- Cambiar de red o de nodo de salida y volver a probar
- Comprobar si el WAF/proxy está reescribiendo los headers
Pequeñas diferencias de Midjourney
Midjourney funciona principalmente dentro del ecosistema de Discord, no con el típico esquema de API Key; lo que te encuentras suele ser autorización de Discord, permisos del canal o que el bot no esté disponible. El enfoque es el mismo: reproducir con los pasos mínimos, primero descartar permisos y luego red.
Si estás lidiando con suscripciones, nodos de red o temas más “esotéricos” como la región de la cuenta, se recomienda echar un vistazo a Titikey: muchos problemas se pueden evitar con una solución más cómoda y sin tantas complicaciones.