Documentación

Chat Completions compatible con OpenAI en la documentación de NexoRouter.

Chat Completions compatible con OpenAI

Estado: API pública estable.

La ruta pública principal de NexoRouter es el endpoint compatible con OpenAI POST /v1/chat/completions. La mayoría de SDKs y herramientas deben empezar por aquí.

Úsala cuando

  • Ya usas el SDK de OpenAI y quieres cambiar de proveedor con mínimos cambios.
  • Una herramienta pide proveedor OpenAI-compatible, Custom OpenAI u OpenAI API.
  • Tu app envía requests de chat de texto mediante messages.
  • Quieres ver request ID, costo, latencia y estado del resultado en Usage Logs.

No uses esta página como prueba de soporte para Responses API, Claude nativo, Gemini nativo, embeddings, streaming, visión, imagen, video o audio.

Endpoint

Base URL: https://api.nexorouter.com/v1
Endpoint: POST /v1/chat/completions
Header: Authorization: Bearer YOUR_NEXOROUTER_API_KEY

Configuración de SDK

ClienteCampo de keyCampo de base URL
Python openaiapi_keybase_url
Node.js openaiapiKeybaseURL
Herramientas con variables de entornoOPENAI_API_KEYOPENAI_BASE_URL
Clientes HTTP genéricosAuthorization: Bearer ...URL completa del request

Para herramientas que reutilizan nombres de variables de OpenAI:

export OPENAI_API_KEY="$NEXOROUTER_API_KEY"
export OPENAI_BASE_URL="https://api.nexorouter.com/v1"

Mantén esas variables limitadas al shell, servicio o proyecto que debe usar NexoRouter.

Request mínimo

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": "user", "content": "Write one short production checklist." }
    ],
    "max_tokens": 256
  }'

Regla de migración desde SDK de OpenAI

Cuando migres código existente del SDK de OpenAI, conserva la forma del request y cambia solo:

apiKey  -> API key de NexoRouter
baseURL -> https://api.nexorouter.com/v1
model   -> un model ID desde Models de NexoRouter

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",
});

Go:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/openai/openai-go"
    "github.com/openai/openai-go/option"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey(os.Getenv("NEXOROUTER_API_KEY")),
        option.WithBaseURL("https://api.nexorouter.com/v1"),
    )

    completion, err := client.Chat.Completions.New(
        context.Background(),
        openai.ChatCompletionNewParams{
            Model: "deepseek-v4-flash",
            Messages: []openai.ChatCompletionMessageParamUnion{
                openai.UserMessage("Write one short production checklist."),
            },
        },
    )
    if err != nil {
        panic(err)
    }

    fmt.Println(completion.Choices[0].Message.Content)
}

.NET:

using OpenAI;
using OpenAI.Chat;
using System.ClientModel;

ChatClient client = new(
    model: "deepseek-v4-flash",
    credential: new ApiKeyCredential(
        Environment.GetEnvironmentVariable("NEXOROUTER_API_KEY")
    ),
    options: new OpenAIClientOptions
    {
        Endpoint = new Uri("https://api.nexorouter.com/v1")
    }
);

ChatCompletion completion = client.CompleteChat("Write one short production checklist.");
Console.WriteLine(completion.Content[0].Text);

Otros lenguajes:

Usa un cliente OpenAI-compatible solo si permite configurar ambos:
api key  = API key de NexoRouter
base URL = https://api.nexorouter.com/v1

Límite del request body

Empieza con los campos comunes de Chat Completions:

CampoGuía
modelUsa un model ID exacto desde Models o GET /v1/models.
messagesEnvía mensajes de chat estilo OpenAI.
temperatureOpcional. Mantén defaults en las primeras pruebas.
max_tokensOpcional. Usa un valor pequeño para checks de setup.
streamNo dependas de streaming salvo que la página relevante documente soporte para tu cliente y modelo.
toolsVerifica por modelo y herramienta antes de workflows agénticos en producción.

Verifica

Después del primer request, abre Usage Logs y confirma API key, model ID, estado del resultado, tokens, costo, latencia y request ID.

Fallos comunes

FalloCausa probableSolución
invalid_api_keyKey incorrecta, falta Bearer, key expirada, key disabled o key de otro servicioRevisa key y base URL juntas.
model_not_foundTypo en model ID o alcance de modelos de la key no incluye ese modeloCopia el model ID desde Models y crea una key de reemplazo si el alcance es demasiado estrecho.
insufficient_quotaSaldo de cuenta o presupuesto de key insuficienteAgrega saldo o crea una key de reemplazo con el presupuesto correcto.
TimeoutModelo lento, timeout corto del cliente, proxy de red o request grandeAumenta el timeout del cliente o elige un modelo más rápido.

Incorrecto vs correcto

IncorrectoCorrecto
Key de NexoRouter con https://api.openai.com/v1Key de NexoRouter con https://api.nexorouter.com/v1
Key de OpenAI con https://api.nexorouter.com/v1Key de NexoRouter con https://api.nexorouter.com/v1
Key completa pegada en soporteNombre de key, últimos cuatro caracteres y request ID

Relacionado

Chat Completions compatible con OpenAI — NexoRouter