Vous voulez appeler GPT-4o, Claude 3.5 Sonnet, Gemini 2.5 Pro et 400+ modèles avec une seule clé API — OpenRouter est la passerelle LLM unifiée. Ce guide s'adresse aux développeurs francophones et éditeurs de blogs bilingues : routage à deux niveaux, avantages, intégration en 6 étapes, code complet, Fallback/BYOK, diagnostic trafic EN, checklist SEO FR/EN.Mise à jour : 2026-07-24
OpenRouter agrège 70+ fournisseurs et 400+ modèles via une clé + endpoint compatible OpenAI.
https://openrouter.ai/api/v1/chat/completionsAuthorization: Bearer $OPENROUTER_API_KEYopenai/gpt-4o, anthropic/claude-3.5-sonnet, etc.Deux décisions indépendantes structurent la valeur technique d'OpenRouter.
| Couche | Décide | Contrôle |
|---|---|---|
| Model Routing | Quel modèle répond | model / openrouter/auto |
| Provider Routing | Quel hébergeur traite | provider ; pondération prix |
Fallback automatique via models en cas de limite ou erreur fournisseur.
Comptes fournisseurs fragmentés
Pannes / rate limits
Facturation dispersée
Markup token des agrégateurs
Latence +10–80 ms
Couche intermédiaire US (conformité)
| Critère | OpenRouter | API directe |
|---|---|---|
| Clés | Une clé, 400+ modèles | Comptes séparés |
| Migration | base_url + api_key | SDK différents |
| Failover | Intégré | À coder |
| Facturation | Dashboard unique | Multiple |
| Prix token | Sans markup | Tarif officiel |
| Latence | +10–80 ms | Minimale |
| Fonctions exclusives | Pas de Prompt Caching | Batch, Assistants… |
Une clé, tous les modèles
Failover cross-fournisseur
Dashboard unifié
Pas de markup (5,5 % recharge)
25+ modèles gratuits
À éviter si : volume énorme sur un modèle, Prompt Caching requis, latence critique, exigences strictes de résidence des données.
「OpenRouter n'est pas un remplacement des SDK officiels — c'est le compromis multi-modèles.」
Inscription openrouter.ai
Créer une clé API
Crédits (optionnel)
Première requête
SDK OpenAI : base_url + api_key
Production : Fallback + GET /api/v1/models
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-3.5-sonnet",
"messages": [
{ "role": "user", "content": "Explain quantum computing in one sentence" }
]
}'
import requests, os
response = requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "google/gemini-2.5-pro",
"messages": [{"role": "user", "content": "Write a quicksort in Python"}],
},
)
print(response.json()["choices"][0]["message"]["content"])
from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
completion = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
extra_headers={
"HTTP-Referer": "https://your-blog-domain.com",
"X-Title": "My Blog Demo",
},
)
print(completion.choices[0].message.content)
import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
});
const completion = await openai.chat.completions.create({
model: "deepseek/deepseek-chat",
messages: [{ role: "user", content: "Explain OpenRouter in one sentence" }],
});
console.log(completion.choices[0].message.content);
const stream = await openai.chat.completions.create({
model: "anthropic/claude-3.5-sonnet",
messages: [{ role: "user", content: "Write a short poem about autumn" }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
{
"model": "anthropic/claude-3.5-sonnet",
"models": [
"anthropic/claude-3.5-sonnet",
"openai/gpt-4o",
"google/gemini-2.5-pro"
],
"route": "fallback",
"messages": [{ "role": "user", "content": "Hello" }]
}
Idéal pour prototypes, A/B, budgets modestes, haute disponibilité multi-modèles.
| Item | Details |
|---|---|
| Token unit price | Pass-through; no token markup |
| Top-up fee | 5.5% (min $0.80); +5% crypto |
| Free models | 25+; ~50 req/day un funded; ≥$10 → 1000/day, 20/min |
| BYOK | Bring your vendor keys; first 1M req/month free, then 5% on equivalent spend |
BYOK pour éviter les 5,5 % ; dev sur modèles gratuits ; modèles économiques en fin de chaîne Fallback.
Si vous maintenez un blog FR/EN en parallèle d'agents OpenRouter, voici le diagnostic priorisé :
Pas de traduction mot à mot. Ciblez OpenRouter vs OpenAI API, is OpenRouter worth it.
| Français | Anglais natif |
|---|---|
| tutoriel OpenRouter | OpenRouter tutorial |
| différence OpenAI | OpenRouter vs OpenAI API |
| tarifs | is OpenRouter free |
| Python | OpenRouter Python example |
BlogPosting + FAQPage JSON-LD.
| Communautés FR | Français | Tutoriels |
|---|---|---|
| dev.to | Anglais | Canonical |
| HN/Reddit | Anglais | Communautés |
| GSC | FR/EN | Sitemap |
Pour des agents 24/7, SSH stable, builds iOS/macOS, NodeMini Mac Mini cloud offre du Apple Silicon dédié. Tarifs location.
Pas de markup token. 5,5 % à la recharge. 25+ modèles gratuits.
Oui via API ; évaluez latence et conformité RGPD.
70+/400+. openrouter.ai. Location Mac Mini.
PME/multi-modèle → OpenRouter. Volume/cache → direct.
SDK OpenAI, base_url + api_key.
Passerelle tierce. Centre d'aide.
Non — 5,5 % recharge uniquement.
Selon modèles ; typiquement dizaines à milliers USD.