Si llevas un tiempo construyendo cosas con IA, conoces el dolor: hoy quieres probar Claude para razonar, mañana GPT para escribir, la semana que viene un modelo open source barato para tareas tontas. Cada uno tiene su propia API, su propia clave, su propio SDK, su propia forma de cobrar. Y cada vez que quieres cambiar, toca reescribir trozos de código y crearte otra cuenta más.
OpenRouter existe para matar ese dolor. La idea es de una simpleza tramposa: una sola clave para todos los modelos. Vamos a ver qué hay de verdad detrás y cuándo vale la pena, sin humo.
Nota
Esta guía es técnica pero útil tanto si programas como si solo quieres entender por qué tanta herramienta de IA "funciona con OpenRouter". No hace falta ser dev para pillar la idea; la parte de código es opcional.
Qué es OpenRouter y qué problema resuelve
OpenRouter es un gateway (pasarela) de modelos de IA. Traducido: es una capa intermedia que se sienta entre tu aplicación y los cientos de modelos que hay sueltos por el mundo. Tú le hablas a OpenRouter; OpenRouter habla con OpenAI, con Anthropic, con Google, con Meta, con Mistral, con decenas de proveedores de modelos open source. Una sola clave, una sola URL base, una sola factura.
El problema que resuelve es la fragmentación. Hoy el mercado de la IA está partido en silos: cada laboratorio tiene su API, su sistema de facturación y sus rarezas. Si quieres usar tres modelos de tres empresas distintas, mantienes tres integraciones. Si mañana sale un modelo mejor, te toca dar de alta otra cuenta y enchufar otro SDK. Es fricción pura, y la fricción mata la experimentación.
OpenRouter colapsa todo eso en un único punto de entrada. Da acceso a cientos de modelos de decenas de proveedores a través de la misma interfaz. Y el detalle que lo hace adictivo para quien programa: su API es compatible con la de OpenAI. Eso significa que si tu proyecto ya usa el SDK de OpenAI, migrar es prácticamente cambiar dos cosas —la URL base y la clave— y empezar a invocar cualquier modelo del catálogo con el mismo código.
Hay también un chat web (playground) para los que no quieren tocar código: entras, eliges modelo de un desplegable enorme y conversas, comparando respuestas de GPT, Claude o Gemini en la misma pantalla sin saltar entre pestañas. Es la forma más rápida de "catar" modelos antes de meterlos en producción.
Cómo se usa: clave, URL base y elegir modelo
El flujo para empezar es corto. Te das de alta, generas una clave API y apuntas tu código a la URL base de OpenRouter:
import requests, json
response = requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": "Bearer <TU_CLAVE_OPENROUTER>",
"HTTP-Referer": "https://tudominio.com",
"X-Title": "Tu App",
},
data=json.dumps({
"model": "anthropic/claude-sonnet",
"messages": [
{"role": "user", "content": "Resume esto en una frase: ..."}
]
})
)Lo importante de ese bloque no es la sintaxis, es lo que implica. La URL base es siempre https://openrouter.ai/api/v1. El modelo se elige con un slug del tipo proveedor/modelo (anthropic/claude-sonnet, openai/gpt-..., google/gemini-..., meta-llama/...). ¿Quieres cambiar de Claude a GPT? Cambias el string del campo model. Una línea. El resto del código no se toca.
Esa es la magia operativa: el modelo deja de ser una decisión de arquitectura y pasa a ser un parámetro. Puedes A/B testear dos modelos en la misma función, dejar el modelo en una variable de entorno, o exponerlo como ajuste para que el usuario final elija. Todo sin reescribir integraciones.
Como la API imita a la de OpenAI, casi cualquier librería o herramienta que "habla OpenAI" funciona con OpenRouter cambiando esos dos campos. Por eso ves tantas apps de IA, clientes de chat y frameworks que lo soportan de serie: para ellos, soportar OpenRouter es soportar todo el mercado de golpe.
Precios: créditos y pago por uso
Aquí conviene ser preciso para no llevarse sorpresas. OpenRouter funciona con créditos y pago por uso, no con suscripción.
- Cargas saldo (con tarjeta o cripto) y se va descontando por tokens a medida que haces llamadas.
- No hay mínimos, ni cuota mensual, ni caducidad del saldo. Pagas lo que consumes y punto.
- El precio por token de cada modelo coincide con lo que cobra el proveedor original. OpenRouter no infla el precio por token.
- La comisión está en la recarga: en torno a un 5,5% al añadir créditos con tarjeta (algo más alta pagando en cripto).
Es un modelo honesto y fácil de razonar: ves el precio de cada modelo en su catálogo, sabes que es el del proveedor, y la única capa extra es esa comisión al meter saldo. Para órdenes de magnitud (sin tomar como precio exacto), los modelos potentes ronden los pocos dólares por millón de tokens y los ligeros bajan a céntimos; el catálogo lo tienes siempre actualizado dentro.
Consejo
Antes de gastar un euro, tira de los modelos gratuitos: OpenRouter ofrece decenas de modelos a coste cero por token (con límites de peticiones por minuto y por día). Perfectos para prototipar, montar el flujo y comparar calidad antes de enchufar un modelo de pago.
Routing y fallbacks: la parte que aporta de verdad
Si "una sola clave" es el gancho, el routing inteligente es lo que justifica tener una capa intermedia en producción. OpenRouter no solo reenvía tu petición: decide cómo y dónde ejecutarla.
Reparto entre proveedores. Un mismo modelo (pongamos un Llama grande) suele estar servido por varios proveedores de cómputo a la vez. OpenRouter equilibra la carga entre ellos y, si uno se cae o va lento, reintenta automáticamente en otro. Para tu app, el modelo "sigue vivo" aunque un proveedor concreto tenga un mal día.
Optimizar por velocidad o por precio. Puedes afinar ese reparto con sufijos en el slug del modelo:
:nitroprioriza el rendimiento (tokens por segundo más altos). Ideal para chat de cara al usuario, donde se nota cada milisegundo.:floorprioriza el precio (el proveedor más barato disponible). Ideal para trabajos en lote donde lo que importa es el coste, no la latencia.
Fallback entre modelos distintos. El reparto anterior mantiene vivo un modelo. Pero, ¿y si quieres que cuando falle un modelo entero (caída total, te pasas del límite de contexto, te capan por rate limit o moderación) salte a otro modelo diferente? Para eso pasas un array de modelos en orden de prioridad: OpenRouter prueba el primero y, si da error, baja al siguiente de la lista. Tu plan B (y C) automatizado.
Y si ni siquiera quieres decidir, existe el Auto Router (openrouter/auto): le pasas el prompt y OpenRouter elige el modelo por ti según lo que detecte. Útil cuando no sabes qué tipo de peticiones te van a llegar. Regla simple: usa el Auto Router cuando no controlas el input; usa el array de fallback cuando tú sabes qué modelo quieres y solo buscas resiliencia detrás.
Lo bueno y lo malo, sin maquillar
A favor
- Una sola clave y una sola integración para cientos de modelos de muchos proveedores.
- API compatible con OpenAI: cambiar de modelo es cambiar un string, no reescribir código.
- Routing con fallback automático entre proveedores: más resiliencia en producción.
- Pago por uso transparente, sin suscripción, y decenas de modelos gratis para probar.
- No te atas a nadie: comparas y migras de modelo en minutos, no en sprints.
En contra
- No abarata el token: el precio es el del proveedor más una comisión al recargar (~5,5%).
- Es una capa intermedia más: un punto extra de dependencia y posible latencia.
- Para un único proveedor a gran volumen, ir directo puede salir igual o mejor.
- Algunas funciones muy específicas de un proveedor pueden no estar expuestas igual.
- Gestionar saldo y vigilar el gasto por tokens requiere disciplina propia.
¿Para quién es OpenRouter?
OpenRouter no es "el sitio más barato para llamar a la IA"; es la forma de no casarte con ninguno. Y eso encaja de maravilla para unos y sobra para otros.
Te interesa si: desarrollas y quieres probar y comparar modelos sin montar tres integraciones; necesitas resiliencia en producción y te viene de lujo el fallback automático; construyes una app donde el modelo es una preferencia configurable; o simplemente no quieres apostar todo a un proveedor cuyo mejor modelo de hoy puede no ser el de dentro de tres meses. También si eres creador o curioso y quieres un único playground para catar GPT, Claude y Gemini lado a lado.
No te interesa si: ya tienes claro que vas a usar un solo modelo de un solo proveedor de forma estable y a gran volumen —ahí la integración directa te ahorra una capa y una comisión—, o si necesitas funciones muy específicas que solo expone la API nativa de ese proveedor.
El caso real más honesto: un dev que monta un asistente para un cliente arranca con un modelo open source gratis para prototipar, lo sube a un Claude potente para la versión seria, deja un GPT como fallback por si el primero se cae, y todo eso lo hace tocando un puñado de strings, con una clave y una factura. Esa agilidad —no el precio— es lo que vende OpenRouter. La pregunta no es "¿es lo más barato?", sino "¿cuánto vale para mí poder cambiar de modelo sin reescribir nada?". Si te dedicas a esto, suele valer bastante.
