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ónValor esperado
Base URLhttps://api.nexorouter.com/v1
HeaderAuthorization: Bearer YOUR_NEXOROUTER_API_KEY
Origen de la keyDashboard -> API Keys
Estado de la keyEnabled y no expirada
SecretoLa key completa nunca se comparte en chats, tickets, logs o capturas

Base URL y key deben coincidir

API keyBase URLResultado
Key de NexoRouterhttps://api.nexorouter.com/v1Correcto
Key de OpenAIhttps://api.openai.com/v1Correcto para OpenAI, no para NexoRouter
Key de NexoRouterhttps://api.openai.com/v1Incorrecto
Key de OpenAIhttps://api.nexorouter.com/v1Incorrecto

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:

  • Bearer está presente.
  • Hay un solo espacio entre Bearer y 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 incorrectaPor qué falla
base_url="https://api.openai.com/v1" con una key de NexoRouterEl request va a OpenAI, que no puede validar una key de NexoRouter.
Falta BearerEl gateway no puede leer la credencial.
Key copiada con espacios ocultosEl valor ya no coincide con la key almacenada.
JavaScript de navegador llama la API directamenteLa key puede filtrarse y CORS o comportamiento client-side puede bloquear el request.
Deploy usa otra variable de entorno distinta a localEl 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.

FAQ: ¿Por qué mi API key es inválida? — NexoRouter