Documentación
FAQ: ¿Por qué mi API key es inválida? en la documentación de NexoRouter.
FAQ: ¿Por qué mi API key es inválida?
invalid_api_key significa que el request no incluyó una API key activa y válida de NexoRouter para la base URL de NexoRouter.
La causa más común es una mezcla entre key y base URL: una key de NexoRouter enviada a la API oficial de OpenAI, o una key de otro proveedor enviada a NexoRouter.
Revisión rápida
| Revisión | Valor esperado |
|---|---|
| Base URL | https://api.nexorouter.com/v1 |
| Header | Authorization: Bearer YOUR_NEXOROUTER_API_KEY |
| Origen de la key | Dashboard -> API Keys |
| Estado de la key | Enabled y no expirada |
| Secreto | La key completa nunca se comparte en chats, tickets, logs o capturas |
Base URL y key deben coincidir
| API key | Base URL | Resultado |
|---|---|---|
| Key de NexoRouter | https://api.nexorouter.com/v1 | Correcto |
| Key de OpenAI | https://api.openai.com/v1 | Correcto para OpenAI, no para NexoRouter |
| Key de NexoRouter | https://api.openai.com/v1 | Incorrecto |
| Key de OpenAI | https://api.nexorouter.com/v1 | Incorrecto |
Si la app dice que la key es inválida pero la key existe en NexoRouter, revisa la base URL antes de rotar la key.
Revisa el header Authorization
Debe ser:
Authorization: Bearer YOUR_NEXOROUTER_API_KEY
Revisa:
Bearerestá presente.- Hay un solo espacio entre
Bearery la key. - La key no está entre comillas.
- La key viene de NexoRouter, no de otro proveedor.
- El request va a
https://api.nexorouter.com/v1.
Ejemplos correctos
Python:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_NEXOROUTER_API_KEY",
base_url="https://api.nexorouter.com/v1",
)
Node.js:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.NEXOROUTER_API_KEY,
baseURL: "https://api.nexorouter.com/v1",
});
cURL:
curl https://api.nexorouter.com/v1/models \
-H "Authorization: Bearer $NEXOROUTER_API_KEY"
Errores comunes
| Configuración incorrecta | Por qué falla |
|---|---|
base_url="https://api.openai.com/v1" con una key de NexoRouter | El request va a OpenAI, que no puede validar una key de NexoRouter. |
Falta Bearer | El gateway no puede leer la credencial. |
| Key copiada con espacios ocultos | El valor ya no coincide con la key almacenada. |
| JavaScript de navegador llama la API directamente | La key puede filtrarse y CORS o comportamiento client-side puede bloquear el request. |
| Deploy usa otra variable de entorno distinta a local | El servidor no está leyendo la key que probaste localmente. |
Revisa el estado de la key
Abre Dashboard -> API Keys y confirma:
- la key existe;
- la key está enabled;
- la key no expiró;
- la key fue copiada completa;
- la key pertenece a la misma cuenta o workspace que tiene saldo;
- el alcance de modelos de la key incluye el modelo que estás probando.
Si la key expiró, está disabled, se filtró o tiene un alcance incorrecto, crea una key de reemplazo con los ajustes correctos.
Revisa variables de entorno
test -n "$NEXOROUTER_API_KEY" && echo "NEXOROUTER_API_KEY is set"
Esto confirma que la variable existe sin imprimir el secreto. Asegúrate de que el shell, dev server, worker o entorno de deploy actual esté leyendo la misma variable.
Para herramientas que requieren nombres estilo OpenAI:
export OPENAI_API_KEY="$NEXOROUTER_API_KEY"
export OPENAI_BASE_URL="https://api.nexorouter.com/v1"
Mantén esto limitado al proyecto o herramienta que debe usar NexoRouter.
Herramientas de terceros
Busca settings llamados:
- Custom OpenAI
- OpenAI-compatible
- Base URL
- API URL
- Endpoint
- OpenAI API key
Usa:
Base URL: https://api.nexorouter.com/v1
API key: YOUR_NEXOROUTER_API_KEY
No pegues una key de NexoRouter en un campo de proveedor específico para Anthropic, Gemini nativo u otro protocolo no compatible con OpenAI.
Qué enviar a soporte
Si sigue fallando, envía:
Request ID, si existe:
Endpoint:
Base URL configurada:
Model ID:
Nombre de key o últimos cuatro caracteres:
Hora aproximada:
Cliente/herramienta:
Si GET /v1/models funciona:
Nunca envíes la key completa. Si soporte pregunta qué key usas, envía solo el nombre o los últimos cuatro caracteres.