Une clé · 400+ modèles · couches de routage · setup en six étapes · curl/Python/Node · streaming et fallback · tarifs BYOK
Si vous gérez des clés API séparées pour OpenAI, Anthropic et Google, chacune avec des SDK, rate limits et tableaux de facturation différents, OpenRouter réduit cette complexité à un seul point de terminaison compatible OpenAI. Ce guide 2026 explique le fonctionnement interne d'OpenRouter, décrit une configuration de clé API en six étapes, fournit des exemples copier-coller en curl, Python, Node.js et le SDK OpenAI (streaming et fallback inclus), compare OpenRouter vs APIs directes, couvre tarifs, BYOK et modèles gratuits, et conclut par une checklist SEO pour le marché francophone plus pourquoi les Agents longue durée appartiennent toujours à une location Mac Mini M4 24/7.
OpenRouter est une passerelle LLM unifiée : une clé API, une base URL et accès à 400+ modèles d'OpenAI, Anthropic, Google, Meta, DeepSeek, Mistral, xAI et des dizaines de fournisseurs open-weight. Il parle le format OpenAI Chat Completions API — la plupart du code existant fonctionne en changeant deux lignes : base_url et model.
OpenRouter est un proxy intelligent entre votre application et les fournisseurs d'inférence upstream. À chaque requête, trois couches de routage décident où elle aboutit et que faire en cas d'échec.
Vous spécifiez un ID modèle dans le corps de requête — par ex. anthropic/claude-sonnet-4, openai/gpt-5 ou google/gemini-2.5-pro-preview. OpenRouter maintient un catalogue live sur openrouter.ai/models avec tarifs, limites de contexte et modalités (texte, vision, tools).
De nombreux modèles ont plusieurs providers upstream — le même meta-llama/llama-3.3-70b-instruct peut être servi par Together, Fireworks ou DeepInfra. OpenRouter choisit le meilleur provider selon latence, tier de prix et capacité. Vous pouvez surcharger via le champ provider ou BYOK (Bring Your Own Key) pour facturer directement via votre compte vendor.
Si un provider renvoie 429, 502 ou timeout, OpenRouter peut réessayer sur un provider alternatif ou basculer vers un modèle secondaire défini. Cela transforme une intégration mono-vendor fragile en infrastructure production — surtout pour les Agents qui ne peuvent pas s'arrêter net en pleine tâche.
OpenRouter n'entraîne pas sur votre trafic API par défaut. Pour les charges réglementées, combinez routage BYOK, plafonds de dépenses et rotation de clés — la même hygiène qu'avec toute clé vendor directe.
OpenRouter publie des classements d'usage live sur openrouter.ai/rankings, montrant quels modèles les développeurs utilisent en production. Complément à ce guide API — voir notre article rankings juin 2026 pour analyse volume vs qualité.
base_url sur https://openrouter.ai/api/v1 et changer le modèle. Beaucoup de configs LangChain, Cursor et OpenClaw ne nécessitent aucun refactor.| Dimension | OpenRouter | API vendor directe |
|---|---|---|
| Clés API requises | Une clé OpenRouter (ou BYOK par vendor) | Une clé par vendor (OpenAI, Anthropic, Google, etc.) |
| Compatibilité SDK | Format OpenAI Chat Completions (universel) | SDKs et formes d'endpoint spécifiques au vendor |
| Changement de modèle | Changer le champ model dans une requête | Nouveau SDK init, nouveau compte billing, nouveaux rate limits |
| Fallback sur 429/502 | Retry provider intégré et chaînes de fallback modèle | Logique de retry custom par vendor |
| Tarifs | Tarifs listés par modèle ; BYOK évite la marge | Prix catalogue vendor ; remises enterprise via sales |
| Modèles gratuits | Owl Alpha, Nemotron 3 Super et autres à 0 $ | Free tiers limités par vendor (Gemini free, Claude trial) |
| Overhead latence | ~20–80 ms saut proxy (selon région) | Direct vers edge vendor ; minimum possible |
| Observabilité | Tableau de bord unifié : dépenses, tokens, mix modèles | Tableaux de bord séparés par vendor |
| Idéal pour | Agents multi-modèles, startups, optimisation coûts | Enterprise mono-vendor, besoins de features natives |
Ce runbook vous mène de la création de compte à un appel production vérifié en moins de quinze minutes. Suivez chaque étape avant d'intégrer OpenRouter dans un daemon Agent ou pipeline CI.
Créer un compte : allez sur openrouter.ai et inscrivez-vous par e-mail ou GitHub. Les nouveaux comptes reçoivent un crédit de test — suffisant pour des dizaines d'appels Sonnet ou des milliers de tokens flash-tier.
Générer une clé API : dans Keys du dashboard, créez une clé avec un nom descriptif (ex. prod-agent-v1). Copiez immédiatement — OpenRouter n'affiche la clé complète qu'une fois.
Définir une limite de dépenses : sous Settings, configurez un plafond mensuel et alertes e-mail à 50 %, 80 % et 100 %. Pour les Agents, commencez à 50 $/mois et scalez après mesure de consommation tokens.
Stocker la clé en sécurité : ne jamais committer les clés dans git. Variables d'environnement (OPENROUTER_API_KEY), Keychain macOS ou secret store CI. Rotation mensuelle en production.
Vérifier avec curl : exécutez l'exemple curl de la section 04. Une réponse 200 avec choices[0].message.content confirme clé, routage et ID modèle.
Intégrer à votre stack : pointez OpenAI SDK, LangChain ou framework Agent vers https://openrouter.ai/api/v1. Ajoutez en-têtes HTTP-Referer et X-Title pour analytics OpenRouter. Déployez le daemon sur un hôte toujours actif — voir section 06 pour Mac Mini.
Note de sécurité : traitez les clés OpenRouter comme des credentials de base de données production. En cas de fuite, révoquez immédiatement dans le dashboard et auditez les dépenses. OpenRouter supporte des rate limits par clé — utilisez-les pour endpoints publics.
Tous les exemples utilisent le même endpoint : https://openrouter.ai/api/v1/chat/completions. Remplacez YOUR_KEY par votre clé API et choisissez un modèle du catalogue.
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-H "HTTP-Referer: https://your-app.com" \
-H "X-Title: Your App Name" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [{"role": "user", "content": "Explain OpenRouter in one sentence."}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="YOUR_KEY",
)
response = client.chat.completions.create(
model="deepseek/deepseek-chat-v3-0324",
messages=[{"role": "user", "content": "Write a Python hello world."}],
extra_headers={
"HTTP-Referer": "https://your-app.com",
"X-Title": "Your App Name",
},
)
print(response.choices[0].message.content)
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
"HTTP-Referer": "https://your-app.com",
"X-Title": "Your App Name",
},
body: JSON.stringify({
model: "google/gemini-2.5-pro-preview",
messages: [{ role: "user", content: "Summarize REST vs GraphQL." }],
}),
});
const data = await res.json();
console.log(data.choices[0].message.content);
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="YOUR_KEY",
)
response = client.chat.completions.create(
model="openai/gpt-5",
messages=[{"role": "user", "content": "Compare GPT-5 and Claude Sonnet 4."}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}],
)
print(response.choices[0].message)
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="YOUR_KEY",
)
stream = client.chat.completions.create(
model="anthropic/claude-sonnet-4",
messages=[{"role": "user", "content": "Stream this response token by token."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
{
"model": "anthropic/claude-sonnet-4",
"models": [
"anthropic/claude-sonnet-4",
"deepseek/deepseek-chat-v3-0324",
"google/gemini-2.5-flash-preview"
],
"messages": [{"role": "user", "content": "Handle this with automatic fallback."}],
"route": "fallback"
}
Avec un tableau models et "route": "fallback", OpenRouter essaie chaque modèle jusqu'à succès. Pattern production le plus simple pour pipelines Agent sans single point of failure. Pour routage gateway avec plafonds budget, voir notre guide routage multi-modèles OpenClaw.
curl https://openrouter.ai/api/v1/models \
-H "Authorization: Bearer $OPENROUTER_API_KEY" | jq '.data[] | {id, pricing}'
L'endpoint models retourne chaque modèle disponible avec tarifs, longueur de contexte et modalités. Mettez en cache dans l'app et rafraîchissez quotidiennement — mi-2026 de nouveaux modèles apparaissent chaque semaine.
OpenRouter facture par token au tarif listé pour chaque modèle. Pas de frais de plateforme mensuels. Les routes standard transmettent les prix catalogue upstream — OpenRouter n'ajoute pas de marge cachée. Vous payez uniquement les tokens consommés.
| Modèle (juillet 2026) | Input $/M | Output $/M | Contexte | Notes |
|---|---|---|---|---|
| DeepSeek V4 Flash | ~0.10 | ~0.40 | 1M | Meilleur rapport prix-performance pour coding haute fréquence |
| Claude Sonnet 4 | 3.00 | 15.00 | 200K | Default production équilibré |
| Claude Opus 4 | 15.00 | 75.00 | 200K | Agents long horizon, raisonnement le plus difficile |
| GPT-5 | 5.00 | 15.00 | 128K | Tool calling et écosystème solides |
| Gemini 2.5 Pro | 1.25 | 10.00 | 1M+ | Multimodal, long contexte |
| Owl Alpha | 0.00 | 0.00 | 1.05M | Tier gratuit ; n'envoyez pas de secrets |
BYOK connecte vos clés API OpenAI, Anthropic ou Google existantes à OpenRouter. Les requêtes passent par l'infrastructure OpenRouter mais facturent directement votre compte vendor. OpenRouter facture une petite redevance (typiquement 5 % du coût upstream) pour routage, observabilité et fallback. Idéal si vous avez déjà un pricing enterprise chez un vendor mais voulez un routage unifié multi-providers.
OpenRouter héberge plusieurs modèles au prix catalogue 0 $ — dont Owl Alpha et Nemotron 3 Super. Les nouveaux comptes reçoivent des crédits de démarrage. Les modèles gratuits conviennent au prototypage et tâches Agent draft, mais peuvent journaliser les prompts. Ne routez jamais données réglementées, PII clients ou secrets production via modèles gratuits.
VpsMesh publie en huit langues. Les pages françaises performent souvent moins que leurs équivalents chinois en trafic brut — mais restent essentielles pour découvrabilité locale, équité de liens et confiance développeurs. Si vos articles FR affichent peu d'impressions dans Google Search Console, parcourez cette checklist avant de remettre en cause la qualité du contenu.
Google Search Console : vérifiez la propriété /fr/ séparément. Coverage pour erreurs crawl, inspection URL pour canonical mismatch, Performance filtrée sur /fr/blog/. Peu d'impressions sans clics signifient souvent lag d'indexation, pas mauvais contenu.
Tags hreflang : chaque article français a besoin de liens hreflang réciproques vers zh, ja, ko, en, de, ru et zh-Hant. hreflang manquant ou unidirectionnel est la cause la plus fréquente pour laquelle Google sert l'URL chinoise aux requêtes françaises.
Réglage CDN et WAF : assurez-vous que Cloudflare ou votre CDN ne geo-bloque pas les crawlers EU/FR ni ne challenge-captcha. Bot Fight Mode agressif peut silencieusement dropper Googlebot sur nouveaux chemins /fr/.
Localisation, pas traduction : les pages françaises doivent être des réécritures natives avec intent de recherche FR — « tutoriel API OpenRouter » plutôt qu'une traduction littérale de clusters de mots-clés chinois. Title tags, H2 et questions FAQ doivent correspondre à la recherche réelle des développeurs francophones.
Liens internes depuis le hub FR : liez les nouveaux posts FR depuis /fr/blog/index.html et au moins deux articles FR connexes. Les pages orphelines dans une locale de niche rankent rarement.
Données structurées : BlogPosting et FAQPage JSON-LD sur chaque article. Le schema FAQ alimente les rich results pour long-tail comme « OpenRouter est-il gratuit » et « OpenRouter vs API directe ».
Conseil pratique : après publication, soumettez l'URL française via Inspection d'URL GSC et demandez l'indexation. Associez-la à un backlink contextuel depuis un autre article FR — l'équité de liens internes compte plus que la densité de mots-clés pour les nouveaux chemins /fr/.
OpenRouter résout le problème vendor d'inférence — une clé, chaînes fallback, facturation unifiée. Il ne résout pas le problème d'uptime hôte. Les daemons Agent appelant OpenRouter toutes les minutes ont besoin d'une machine qui ne dort jamais, stocke les secrets dans Keychain et exécute des outils natifs macOS comme Claude Code, Xcode et OpenClaw sans hacks de compatibilité Linux.
Pattern production : les développeurs branchent OpenRouter en un après-midi, puis perdent les runs Agent nocturnes quand le laptop se ferme ou qu'une VM cloud free-tier est preempted. Linux VPS fonctionne pour scripts API purs sans dépendance macOS. Les stacks Claude Code + OpenClaw + iOS CI paient une double taxe d'intégration sur Linux — lacunes Metal, contournements Keychain et absence de Xcode ajoutent des semaines de glue code.
Location cloud Mac Mini M4 VpsMesh regroupe uptime 24/7, KVM distant, supervision daemon launchd et chemins macOS natifs en OpEx mensuel prévisible. Pointez votre config OpenRouter vers la location, stockez les clés dans Keychain, laissez les Agents tourner pendant que vous reviewez les diffs localement. Un mois suffit pour valider le routage, mesurer la consommation tokens et confirmer la stabilité du daemon.
Voir les tarifs de location Mac Mini M4 pour comparer les plans et le centre d'aide pour déploiement, SSH et durcissement daemon. Pour patterns gateway multi-modèles sur le même hôte : notre guide routage OpenClaw et setup Agent persistant.
OpenRouter n'a pas de frais de plateforme mensuels. Vous payez par token aux tarifs listés, ou 0 $ sur modèles gratuits comme Owl Alpha. Les nouveaux comptes reçoivent un crédit de test. Les charges Agent production doivent utiliser routes payantes avec plafonds budgétaires dans le dashboard.
Sur routes standard, OpenRouter transmet les tarifs catalogue upstream sans marge cachée. Routes BYOK facturent directement le vendor ; OpenRouter facture une petite redevance (typiquement ~5 %) pour routage et observabilité. Comparez sur openrouter.ai/models.
Oui quand vous avez besoin d'accès multi-vendors, fallback automatique, facturation unifiée ou drop-in SDK OpenAI. Passez votre chemin avec contrat enterprise mono-vendor, features natives (Assistants, prompt caching) ou inférence dans une région cloud précise sans sauts proxy.
400+ modèles d'OpenAI, Anthropic, Google, Meta, DeepSeek, Mistral, xAI et autres. Utilisez GET /api/v1/models ou le catalogue openrouter.ai/models. IDs suivent vendor/model-name — ex. anthropic/claude-sonnet-4, openai/gpt-5, google/gemini-2.5-pro-preview.
OpenRouter est certifié SOC 2 Type II et n'entraîne pas sur trafic API par défaut. Routez données réglementées via BYOK ou modèles auto-hébergés. Rotation mensuelle des clés, rate limits par clé, jamais de secrets dans git. Modèles gratuits peuvent journaliser prompts — secrets production uniquement sur routes payantes.
Installez le package openai, définissez base_url="https://openrouter.ai/api/v1" et api_key sur votre clé OpenRouter. Passez un ID modèle supporté dans le champ model. Ajoutez HTTP-Referer et X-Title via extra_headers. Exemple complet section 04 ci-dessus.