Documentación
Documentación de API compatible con OpenAI para el gateway de modelos de NexoRouter.
Inicio rápido
Compatible con OpenAINexoRouter expone una API estándar compatible con OpenAI. Usa tu API key de NexoRouter con los SDKs de OpenAI que ya conoces y cambia únicamente la base URL.
1. Crea una key
Genera una API key desde el panel.
2. Define la base URL
https://api.nexorouter.com/v1
3. Elige un modelo
deepseek-v4-flash
curl https://api.nexorouter.com/v1/chat/completions \
-H "Authorization: Bearer $NEXOROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain NexoRouter in Spanish."}
],
"temperature": 0.7,
"max_tokens": 512
}'import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["NEXOROUTER_API_KEY"],
base_url="https://api.nexorouter.com/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain NexoRouter in Spanish."},
],
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.NEXOROUTER_API_KEY,
baseURL: "https://api.nexorouter.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "system", content: "You are a concise assistant." },
{ role: "user", content: "Explain NexoRouter in Spanish." },
],
});
console.log(response.choices[0].message.content);URLs base
| Producción | https://api.nexorouter.com/v1 |
| Desarrollo local | http://localhost:3001/v1 |
Autenticación
Envía tu key en el header Authorization. Las keys se crean en el panel de NexoRouter y pueden limitarse a modelos específicos del catálogo de venta.
Authorization: Bearer YOUR_API_KEYChat Completions
La API pública soporta chat completions compatibles con OpenAI para los modelos de texto del catálogo de venta. Los endpoints de streaming, imagen, audio y vídeo permanecen internos hasta que se finalicen las reglas de facturación.
Endpoint
POST /chat/completions
Requerido
model, messages
Opcional
temperature, max_tokens
Modelos
El endpoint público de modelos devuelve solo los modelos del catálogo de venta de NexoRouter: precios confirmados, modelos de texto o embeddings facturados por token, e IDs de modelo utilizables directamente en solicitudes de chat.
curl https://api.nexorouter.com/v1/models \
-H "Authorization: Bearer $NEXOROUTER_API_KEY"| Modelo inicial | Ideal para |
|---|---|
| deepseek-v4-flash | Features de producto rápidos y de bajo coste, y bucles de agente |
| gpt-4o-mini | Workflows generales de app, extracción y soporte |
| Qwen/Qwen-Plus | Generación multilingüe equilibrada y razonamiento |
Facturación
NexoRouter usa saldo prepago. Stripe Checkout agrega créditos después de confirmar el webhook de pago firmado. Las llamadas a la API se detienen cuando el saldo prepago llega a cero.
Saldo
Compartido por todas las keys del workspace.
Presupuesto por key
Presupuesto opcional estricto por API key.
Logs
El uso aparece en los logs del panel.
Límites de tasa
Las cuentas en lanzamiento privado deben empezar con tráfico conservador. Si necesitas carga sostenida en producción, contacta al soporte para revisar los límites antes de escalar.
| Límites por key | Usa presupuestos y scopes por modelo en cada key. |
| Límites de tráfico | La automatización de RPM y TPM está planeada en la capa de gateway. |
| Límites de saldo | Las solicitudes se detienen cuando el saldo prepago se agota. |
Errores
Los errores de la API pública usan un formato JSON estable en inglés, compatible con clientes de estilo OpenAI.
{
"error": {
"message": "Insufficient prepaid balance. Current balance: $0.000000.",
"type": "invalid_request_error",
"code": "insufficient_quota"
}
}| HTTP | Código | Significado |
|---|---|---|
| 401 | invalid_api_key | La API key está ausente, desactivada, expirada o mal formada. |
| 403 | insufficient_quota | El workspace o la key no tiene saldo prepago suficiente. |
| 400 | invalid_request_error | El cuerpo de la solicitud, el ID del modelo o los parámetros no son válidos. |
| 403 | model_not_allowed | La key se creó con un scope de modelos que excluye este modelo. |
| 404 | model_not_found | El modelo solicitado no está disponible para venta pública. |
| 5xx | gateway_error | El gateway de modelos o el proveedor devolvió un error. |
Migración desde OpenAI
La mayoría del código con el SDK de OpenAI funciona sin cambios después de reemplazar la API key y la base URL. Mantén el cuerpo de la solicitud compatible con OpenAI y elige un ID de modelo desde la página de Modelos.
# Before
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
# After
client = OpenAI(
api_key=os.environ["NEXOROUTER_API_KEY"],
base_url="https://api.nexorouter.com/v1",
)