es ▾
Obtén tu clave

Documentación de la API de OpenRouter

Conecta tu aplicación a nuestro LLM sin censura utilizando la interfaz estándar compatible con OpenAI. Esta guía cubre autenticación, formatos de solicitud y streaming para una integración rápida.

Inicio rápido: Conecta con Python

Empieza instalando el SDK oficial y apuntándolo a nuestra URL base.

Nuestra API se comporta como la interfaz estándar de OpenAI pero se enruta a un único modelo uncensored. Este enfoque elimina la complejidad del proxy mientras mantiene tu código portátil.

  • Instala la biblioteca mediante pip.
  • Configura tu clave de API en el entorno.
  • Define la URL base para nuestro punto de conexión.
from openai import OpenAI

client = OpenAI(base_url="https://api.apiopenrouter.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Reemplaza la clave marcador de posición con tus propias credenciales. Puedes enviar prompts simples o datos estructurados complejos.

Autenticación y claves

Genera una clave en el panel de control y pásala en el encabezado de Authorization.

Cada cuenta soporta una clave activa a la vez. Cuando creas una nueva clave, la antigua deja de funcionar inmediatamente. Esto simplifica la gestión de seguridad sin requerir lógica compleja de rotación.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

La solicitud anterior utiliza el esquema Bearer. Asegúrate de que tu clave comience con sk- y no contiene espacios en blanco adicionales.

Endpoint Chat Completions

Envía mensajes a la /v1/chat/completions endpoint usando JSON estándar.

El modelo acepta user y assistant roles. Puedes configurar temperature, top-p y secuencias de parada para controlar el estilo de salida. Las respuestas devuelven el uso de tokens en el último fragmento si el streaming está habilitado.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apiopenrouter.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Establecer max_tokens para controlar la longitud de la salida. Si se omite, el valor predeterminado es 2,048 tokens. El modelo admite hasta 16,000 tokens por solicitud.

Respuestas en streaming

Habilita la transmisión estableciendo stream: true en tu cuerpo de solicitud.

Los detalles de uso de tokens aparecen solo en el último fragmento del flujo. Esto permite actualizaciones de UI en tiempo real mientras se preservan los datos de facturación precisos. Los errores durante el streaming aún reportan uso para los tokens cobrados.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Maneja las respuestas parciales de manera adecuada. La transmisión se cierra normalmente cuando el modelo finaliza la generación o alcanza el límite de contexto.

Llamada de funciones y modo JSON

Usar response_format: {type: "json_object"} para salidas JSON estrictas.

Define herramientas en el tools array y establece tool_choice para forzar las llamadas a funciones. El modelo devuelve datos estructurados adecuados para el procesamiento programático. Esto funciona de forma fiable con nuestros pesos sin censura.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Combina la llamada de funciones con streaming para experiencias interactivas. Valida la salida JSON antes de pasarla a la lógica de tu aplicación.

Límites y cuotas

Monitorea tu uso contra los límites por clave para evitar interrupciones.

Cada clave permite 300 solicitudes por minuto y 8 solicitudes concurrentes. El límite de tamaño del cuerpo de la solicitud es de 8 MB. Si excedes estos límites, la API devuelve un código de estado 429. Los errores de autenticación devuelven 401 y el saldo insuficiente devuelve 402.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

La ventana de contexto es de 100.000 tokens en total. Los errores no consumen crédito. Las denegaciones por violaciones menores de contenido también son gratuitas.

Preguntas frecuentes

¿En qué se diferencia la API openrouter de OpenAI estándar?

Nuestra API utiliza un único modelo sin censura optimizado para contenido adulto legal y creativo sin denegaciones. Mantiene la misma estructura de solicitud y respuesta que OpenAI, permitiéndote cambiar los endpoints sin modificar tu código.

¿Qué ocurre si me quedo sin créditos?

Las solicitudes fallan con un error 402 cuando tu saldo prepagado es cero. Los créditos nunca expiran, por lo que puedes recargar con criptomonedas en cualquier momento. Los errores y rechazos no consumen tu saldo.

¿Puedo usar varias claves para diferentes proyectos?

Cada cuenta soporta una clave activa. Crear una nueva clave invalida automáticamente la anterior. Puedes generar una nueva clave al instante desde el panel sin perder tu historial de facturación.

Recupera tu clave API

Regístrate, copia el token y actualiza tu URL base. Esa es toda la configuración.

Obtén tu clave