Aller au contenu

Guides de migrationDepuis OpenRouter

Depuis OpenRouter, avec OpenRouter toujours dans le circuit si vous le souhaitez

OpenRouter offre un compte et une clé pour des modèles de nombreux éditeurs, payés sur ses crédits, avec vos propres clés fournisseur en option. INFRO fait l'inverse : chaque requête s'exécute sur un compte fournisseur que vous détenez. Les deux ne s'excluent pas, car OpenRouter est l'un des fournisseurs auxquels INFRO se connecte. Cette page montre les deux migrations : OpenRouter comme un service amont parmi vos comptes directs, ou uniquement des comptes directs.

Stripe a accepté de l'acquérir (annoncé le 2026-08-19) ; aucun avis de finalisation au 2026-10-19

Les comptes INFRO sont en libre-service. Le catalogue, la documentation et le contrat d'API sont publics, la passerelle est déployée, et tout ce qui va au-delà de la v1 est marqué Plus tard. Offres et essai

Où en sont les choses

Propriété

Stripe a annoncé le 2026-08-19 avoir accepté d'acquérir OpenRouter. Le billet d'OpenRouter indique que le nom, le produit et la feuille de route restent et que les intégrations ne changent pas. Aucune des deux entreprises n'avait publié d'avis de finalisation lorsque nous avons lu leurs pages le 2026-10-19.

Le compte de qui sert la requête

Par défaut, les comptes fournisseurs d'OpenRouter, payés sur des crédits prépayés. En BYOK, votre clé fournisseur est essayée en premier ; la documentation d'OpenRouter indique qu'en cas d'échec il peut se replier sur sa capacité partagée, sauf si cette option est désactivée par clé.

Ce qui migre

URL de base et clé ; models vers fallbacks ; le routage provider vers des routes ou routing.providers ; user, session_id et trace vers metadata ou les en-têtes INFRO. HTTP-Referer et X-OpenRouter-Title disparaissent.

OpenRouter résout l'accès : un compte, de nombreux éditeurs. Si c'est votre problème, c'est le bon produit, et vous pouvez quand même placer INFRO devant.

  • Vous ne voulez pas de compte chez chaque éditeur. INFRO ne fonctionne que sur des comptes que vous détenez : chaque modèle que vous appelez nécessite un compte fournisseur derrière lui (celui d'OpenRouter peut en faire partie).
  • Vous choisissez parmi de nombreux hébergeurs de modèles à poids ouverts selon le prix, le débit ou la latence, par requête (provider.sort, max_price). INFRO n'a pas de tri par prix ou par latence par requête ; une route définit l'ordre.
  • Vous dépendez d'openrouter/auto ou de presets qui portent un prompt système et des paramètres. Ce qui s'en rapproche le plus chez INFRO est une route avec un classificateur de prompts, qui choisit des cibles, pas des prompts.
  • Vous avez besoin aujourd'hui d'un routage dans la région UE. La résidence des données d'INFRO est sur la feuille de route, pas disponible.

Les modifications, une ligne chacune. Tout ce qui n'est pas listé ici reste tel quel.

 OpenRouterINFRO
URL de basehttps://openrouter.ai/api/v1https://api.infro.io/v1
CléUne clé OpenRouter ; vos clés fournisseur ajoutées en option en BYOK.Une clé de passerelle INFRO. Vos comptes fournisseurs (et votre clé OpenRouter, si vous la gardez) sont des connexions dans la console.
ID du modèlevendor/model, ~vendor/...-latest, openrouter/auto, @preset/name.vendor/model issu du catalogue d'INFRO, ou un nom de route. GET /v1/models liste ce que servent vos connexions. Certains préfixes d'éditeur diffèrent de ceux d'OpenRouter (xai/ chez INFRO, x-ai/ chez OpenRouter).
Champs du corpsmodels, provider { order, only, ignore, sort, max_price }, user, session_id, trace.fallbacks (jusqu'à 5), routing.providers { allow, deny }, metadata { user_id, session_id, tags } ; X-INFRO-Trace-Id pour un identifiant de trace.

Avant · OpenRouter

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://openrouter.ai/api/v1",
  apiKey: process.env.OPENROUTER_API_KEY,
  defaultHeaders: { "X-OpenRouter-Title": "Example App" },
});

await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5.5",
  messages: [{ role: "user", content: "Hello" }],
  user: "user_123",
  // @ts-expect-error OpenRouter extensions
  models: ["anthropic/claude-sonnet-5.5", "openai/gpt-5.6-terra"],
  provider: { order: ["anthropic", "google-vertex"] },
});

Après · INFRO

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.infro.io/v1",
  apiKey: process.env.INFRO_API_KEY,
});

await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5.5",
  messages: [{ role: "user", content: "Hello" }],
  // @ts-expect-error INFRO extensions
  fallbacks: ["openai/gpt-5.6-terra"],
  routing: { providers: { allow: ["anthropic", "google-vertex"] } },
  metadata: { user_id: "user_123" },
});

L'ordre est défini dans une route

routing.providers restreint ceux de vos fournisseurs qui peuvent servir une requête ; il ne définit pas l'ordre. Pour un ordre fixe, créez une route (par exemple chat-default) avec vos cibles en séquence et envoyez-la comme model.

Garder OpenRouter derrière INFRO

Connectez votre clé OpenRouter comme fournisseur dans la console. Les requêtes peuvent alors basculer de vos comptes directs vers OpenRouter, et routing.providers avec openrouter dans allow ou deny l'inclut ou l'exclut par requête.

Déclencheurs de repli

Les fallbacks sont essayés après l'échec de toutes les connexions pour model. Une erreur fournisseur survenue après le début du streaming de la réponse est renvoyée, pas reroutée.

Les objets de OpenRouter face à ceux de INFRO, d'après la documentation publique de OpenRouter lue le 19 octobre 2026 et vérifiés par rapport à ce que la passerelle implémente. Deux lignes indiquent que INFRO n'a rien.

OpenRouterCe que cela y faitDans INFRO
Clé et crédits OpenRouterdifférentUne clé pour tous les modèles, payée sur des crédits prépayés.Une clé de passerelle sur les comptes fournisseurs que vous connectez ; chaque fournisseur vous facture directement. INFRO facture un abonnement et ajoute 0 % aux dépenses de modèles.
BYOKdifférentVos clés fournisseur, essayées en premier ; repli sur la capacité partagée sauf désactivation par clé.Le seul mode. Pas de capacité partagée derrière la passerelle : si toutes les connexions échouent, la requête échoue.
Replis `models`même formeUne liste de modèles par priorité, essayés en cas d'erreur.fallbacks, jusqu'à 5 identifiants de modèle essayés après l'échec de toutes les connexions pour model.
`provider` order, only, ignoredifférentChoisir, ordonner et exclure les fournisseurs amont par requête.allow ou deny de routing.providers par requête ; l'ordre est défini sur une route, avec des règles d'échec par type (429, 5xx, timeout).
`provider.sort`, `max_price`, préférences de débit et de latencerienChoisir un hébergeur par requête selon le prix, le débit ou la latence.Rien. INFRO ne choisit pas entre hébergeurs selon le prix ou la latence ; l'ordre ou les poids d'une route décident.
Routeur automatiquedifférentopenrouter/auto choisit un modèle par prompt.Une route peut classer chaque prompt avec un modèle de décision sur votre propre connexion et envoyer chaque classe vers ses propres cibles.
PresetsdifférentConfiguration nommée côté serveur : modèle, routage, prompt système, paramètres.Les routes portent le modèle et les cibles. Les prompts système et les paramètres restent dans votre code.
Cache de réponsesmême formeCache à correspondance exacte par clé via les en-têtes X-OpenRouter-Cache.Un cache facultatif à correspondance exacte pour chat completions, avec un espace de noms et une TTL.
Garde-fous (budgets, listes d'autorisation)même formePlafonds de dépenses et listes d'autorisation de modèles ou de fournisseurs par workspace, membre ou clé.Des budgets par organisation, projet, membre, clé et client final qui refusent avec 402 avant l'appel ; listes d'autorisation et de blocage par organisation, projet et clé.
BroadcastdifférentTraces exportées vers Langfuse, Datadog, un collecteur OTel, S3 ou un webhook.Des spans vers votre collecteur OpenTelemetry, les exports de requêtes et le journal des requêtes. Pas de destinations intégrées pour des éditeurs spécifiques.
Coût par requêtedifférentCoût par génération au prix affiché par OpenRouter.Une estimation de la facture de votre fournisseur sur chaque réponse (usage.cost, usage.price_source) : votre tarif négocié si vous en avez saisi un, sinon le tarif public de l'éditeur, et unpriced plutôt que zéro quand aucun n'est connu.
Routage dans la région UE, endpoints ZDRrienUne URL de base UE et un filtre pour les endpoints sans conservation des données.Non disponible. L'épinglage à une région est sur la feuille de route ; la conservation chez le fournisseur relève de votre propre contrat avec lui.

Notre lecture de la documentation publiée par OpenRouter, pas un essai ni un benchmark. Si nous avons mal lu quelque chose, dites-le-nous et nous corrigerons la ligne.

Ce que INFRO ne fait pas

  • Vous donner accès à un éditeur chez qui vous n'avez pas de compte, sauf via une connexion à un compte d'agrégateur que vous détenez (OpenRouter compris).
  • Choisir un hébergeur par requête selon le prix, le débit ou la latence.
  • Stocker les prompts système et les paramètres côté serveur (presets).
  • Épingler le trafic à l'UE ; la résidence des données est sur la feuille de route.
  • Servir les embeddings chez d'autres fournisseurs qu'OpenAI, Azure OpenAI, Mistral ou un endpoint compatible OpenAI.

Ce qui n'est pas repris

  • Votre historique d'activité et vos journaux de génération OpenRouter. Il n'y a pas d'outil d'import.
  • Les crédits. Ils restent sur votre compte OpenRouter et ne sont dépensés que si vous gardez OpenRouter comme connexion.
  • Presets, workspaces et garde-fous. Recréez-les sous forme de routes, projets, budgets et listes d'autorisation.

Questions

Puis-je garder OpenRouter et ajouter INFRO ?
Oui. OpenRouter est un type de fournisseur dans INFRO : connectez votre clé OpenRouter et il sert les requêtes à côté de vos comptes directs, avec basculement entre eux.
INFRO vend-il des crédits ou revend-il l'accès aux modèles ?
Non. INFRO exécute chaque requête sur un compte fournisseur que vous détenez, vos fournisseurs vous facturent directement, et INFRO facture un abonnement avec 0 % de majoration sur les dépenses de modèles.
Qu'est-ce qui remplace les champs `models` et `provider` ?
fallbacks remplace models ; allow et deny de routing.providers remplacent provider.only et provider.ignore ; une route nommée définit l'ordre. Le tri par prix et par latence n'a pas d'équivalent.

Migrez avec nous, ou seul

Le programme de migration transpose votre configuration OpenRouter en connexions, routes et budgets INFRO lors d'un appel, et migre le premier service avec vous. Vos fournisseurs continuent de vous facturer directement ; INFRO est un abonnement et ajoute 0 % aux dépenses de modèles.

Sources

Chaque affirmation de cette page sur OpenRouter provient de l'une de ces sources, lues le 19 octobre 2026. Rien n'est déduit d'un essai, d'un benchmark ou d'une conversation.