移行ガイドOpenRouterから
OpenRouterから。必要ならOpenRouterも残したまま
OpenRouterは、多くのベンダーのモデルに1つのアカウントと1つのキーを提供し、そのクレジットから支払い、自社のプロバイダーキーも選択肢として使えます。INFROは逆で、すべてのリクエストがお客様の持つプロバイダーアカウントで実行されます。両者は排他的ではありません。OpenRouterはINFROが接続するプロバイダーの1つだからです。このページでは両方の移行を示します。直接のアカウントと並ぶ1つの上流としてOpenRouterを残す方法と、直接のアカウントだけにする方法です。
Stripeが買収に合意(2026-08-19発表)。2026-10-19時点で完了の通知なし
INFROのアカウントはセルフサービスで作成できます。 カタログ、ドキュメント、API仕様は公開済みで、ゲートウェイもデプロイ済みです。v1以降の機能には「今後提供」と表示しています。 プランとトライアル
現状
所有
Stripeは2026-08-19に、OpenRouterの買収に合意したと発表しました。OpenRouter自身の投稿によれば、名称、プロダクト、ロードマップは維持され、統合は変わりません。2026-10-19に両社のページを確認した時点では、どちらも完了の通知を公開していませんでした。
リクエストを処理するアカウントの所有者
既定ではOpenRouter自身のプロバイダーアカウントを使い、プリペイドクレジットから支払います。BYOKでは、お客様のプロバイダーキーが最初に試されます。OpenRouterのドキュメントによれば、キーごとにオフにしない限り、失敗時には共有の処理能力にフォールバックすることがあります。
移行するもの
ベースURLとキー。modelsはfallbacksへ、providerのルーティングはルートまたはrouting.providersへ、user、session_id、traceはmetadataまたはINFROのヘッダーへ。HTTP-RefererとX-OpenRouter-Titleは削除します。
OpenRouterが解決するのはアクセスの問題です。1つのアカウントで多くのベンダー。それが抱えている問題なら正しいプロダクトであり、その前段にINFROを置くこともできます。
- ベンダーごとにアカウントを持ちたくない。INFROはお客様が持つアカウントでのみ動くため、呼び出すすべてのモデルの背後にプロバイダーアカウントが必要です(OpenRouterのアカウントもその1つにできます)。
- リクエストごとに、価格、スループット、レイテンシーで、open-weightモデルの多くのホストから選んでいる(
provider.sort、max_price)。INFROにはリクエストごとの価格やレイテンシーによる並べ替えはなく、ルートが順序を決めます。 openrouter/autoや、システムプロンプトとパラメーターを持つプリセットに依存している。INFROで最も近いのはプロンプト分類器付きのルートで、選ぶのはプロンプトではなくターゲットです。- EUリージョン内のルーティングが今すぐ必要。INFROのデータの所在の指定はロードマップにあり、現在は利用できません。
変更点を1行ずつ。ここにないものはそのままです。
| OpenRouter | INFRO | |
|---|---|---|
| ベースURL | https://openrouter.ai/api/v1 | https://api.infro.io/v1 |
| キー | OpenRouterのキー。任意でプロバイダーキーをBYOKとして追加。 | INFROのゲートウェイキー。お客様のプロバイダーアカウント(残す場合はOpenRouterのキーも)は、コンソールで接続になります。 |
| モデルID | vendor/model, ~vendor/...-latest, openrouter/auto, @preset/name. | INFROのカタログのvendor/model、またはルート名。接続で提供されているものはGET /v1/modelsで一覧できます。ベンダーのプレフィックスにはOpenRouterと異なるものがあります(INFROはxai/、OpenRouterはx-ai/)。 |
| ボディのフィールド | models, provider { order, only, ignore, sort, max_price }, user, session_id, trace. | fallbacks(最大5つ)、routing.providers { allow, deny }、metadata { user_id, session_id, tags }。トレースIDにはX-INFRO-Trace-Id。 |
変更前 · 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"] },
});変更後 · 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" },
});順序はルートに置く
routing.providersは、どのプロバイダーがリクエストを処理できるかを絞り込むもので、順序は設定しません。順序を固定するには、ターゲットを順番に並べたルート(例:chat-default)を作成し、それをmodelとして送ってください。
OpenRouterをINFROの後ろに残す
コンソールで、OpenRouterのキーをプロバイダーとして接続します。そうすると、リクエストは直接のアカウントからOpenRouterへフェイルオーバーでき、routing.providersのallowまたはdenyにopenrouterを指定すれば、リクエストごとに含めたり除外したりできます。
フォールバックのトリガー
fallbacksは、modelのすべての接続が失敗した後に試されます。レスポンスのストリーミング開始後のプロバイダーエラーは、再ルーティングせずに返されます。
OpenRouterのオブジェクトとINFROのオブジェクトの対応。2026年10月19日に読んだOpenRouterの公開ドキュメントに基づき、ゲートウェイの実装と照合しています。 INFROにないものは2行あります。
| OpenRouter | そこでの役割 | INFROでは |
|---|---|---|
| OpenRouterのキーとクレジット異なる | すべてのモデルに1つのキー。プリペイドクレジットから支払い。 | 接続したプロバイダーアカウントに対するゲートウェイキー。各プロバイダーがお客様に直接請求します。INFROはサブスクリプション料金を請求し、モデル支出への上乗せは0%です。 |
| BYOK異なる | お客様のプロバイダーキーを最初に試します。キーごとにオフにしない限り、共有の処理能力へのフォールバックあり。 | 唯一のモードです。ゲートウェイの背後に共有の処理能力はありません。すべての接続が失敗すれば、リクエストは失敗します。 |
| `models`のフォールバック同じ形式 | エラー時に試すモデルの優先順位リスト。 | fallbacks。modelのすべての接続が失敗した後に試される最大5つのモデルID。 |
| `provider`のorder、only、ignore異なる | リクエストごとに上流のプロバイダーを選択、並べ替え、除外すること。 | リクエストごとのrouting.providersのallowまたはdeny。順序はルートに設定し、種類ごとの障害ルール(429、5xx、タイムアウト)を伴います。 |
| `provider.sort`、`max_price`、スループットとレイテンシーの優先設定なし | リクエストごとに、価格、スループット、レイテンシーでホストを選ぶこと。 | なし。INFROは価格やレイテンシーでホストを選びません。ルートの順序または重みで決まります。 |
| 自動ルーター異なる | openrouter/autoがプロンプトごとにモデルを選びます。 | ルートで、お客様自身の接続上の意思決定モデルにより各プロンプトを分類し、分類ごとに専用のターゲットへ送れます。 |
| プリセット異なる | 名前付きのサーバー側設定:モデル、ルーティング、システムプロンプト、パラメーター。 | ルートがモデルとターゲットを持ちます。システムプロンプトとパラメーターはお客様のコードに残ります。 |
| レスポンスキャッシュ同じ形式 | X-OpenRouter-Cacheヘッダーによる、キーごとの完全一致キャッシュ。 | チャット補完向けの、オプトインの完全一致キャッシュ。名前空間とTTLを指定できます。 |
| ガードレール(予算、許可リスト)同じ形式 | ワークスペース、メンバー、キーごとの支出上限と、モデルまたはプロバイダーの許可リスト。 | 組織、プロジェクト、メンバー、キー、エンドカスタマーの予算。呼び出し前に402で拒否します。組織、プロジェクト、キーごとの許可リストとブロックリスト。 |
| Broadcast異なる | Langfuse、Datadog、OTelコレクター、S3、Webhookへのトレースのエクスポート。 | OpenTelemetryコレクターへのスパン、リクエストのエクスポート、リクエストログ。特定のベンダー向けの組み込みの送信先はありません。 |
| リクエストごとの費用異なる | OpenRouterが掲載する価格での生成ごとの費用。 | すべてのレスポンスにプロバイダーの請求額の見積もり(usage.cost、usage.price_source)。入力した場合は交渉済みの料金、それ以外はベンダーの定価、どちらも不明な場合はゼロではなくunpriced。 |
| EUリージョン内のルーティング、ZDRエンドポイントなし | EUのベースURLと、データ保持ゼロのエンドポイント用フィルター。 | 利用できません。リージョンの固定はロードマップにあります。プロバイダー側でのデータ保持は、お客様とプロバイダーとの契約に従います。 |
OpenRouterの公開ドキュメントに対する当社の読み取りであり、トライアルやベンチマークではありません。誤りがあればお知らせください。該当する行を修正します。
INFROが行わないこと
- アカウントを持っていないベンダーへのアクセスを提供すること。ただし、お客様が持つアグリゲーターのアカウント(OpenRouterを含む)への接続経由は除きます。
- リクエストごとに、価格、スループット、レイテンシーでホストを選ぶこと。
- システムプロンプトとパラメーターをサーバー側に保存すること(プリセット)。
- トラフィックをEUに固定すること。データの所在の指定はロードマップにあります。
- OpenAI、Azure OpenAI、Mistral、OpenAI互換エンドポイント以外のプロバイダーで埋め込みを提供すること。
引き継がれないもの
- OpenRouterのアクティビティ履歴と生成ログ。インポーターはありません。
- クレジット。お客様のOpenRouterアカウントに残り、OpenRouterを接続として残す場合にのみ使われます。
- プリセット、ワークスペース、ガードレール。ルート、プロジェクト、予算、許可リストとして再作成してください。
質問
- OpenRouterを残したままINFROを追加できますか?
- はい。OpenRouterはINFROのプロバイダーの種類の1つです。OpenRouterのキーを接続すると、直接のアカウントと並んでリクエストを処理し、それらの間でフェイルオーバーします。
- INFROはクレジットを販売したり、モデルへのアクセスを再販したりしていますか?
- いいえ。INFROはすべてのリクエストをお客様が持つプロバイダーアカウントで実行し、プロバイダーがお客様に直接請求します。INFROはサブスクリプション料金を請求し、モデル支出への上乗せは0%です。
- `models`と`provider`のフィールドは何に置き換わりますか?
fallbacksがmodelsに、routing.providersのallowとdenyがprovider.onlyとprovider.ignoreに置き換わり、名前付きのルートで順序を設定します。価格とレイテンシーによる並べ替えに相当するものはありません。
当社と一緒に、またはご自身で移行
移行プログラムでは、通話でOpenRouterの設定をINFROの接続、ルート、予算に対応付け、最初のサービスを一緒に移行します。プロバイダーは引き続きお客様に直接請求し、INFROはサブスクリプションで、モデル利用料への上乗せは0%です。
出典
このページにあるOpenRouterについての記述は、すべて2026年10月19日に読んだこれらの資料に基づいています。トライアル、ベンチマーク、会話から推測したものはありません。
- Stripe newsroom — Stripe agrees to acquire OpenRouter2026年10月19日に確認
- OpenRouter — OpenRouter is joining Stripe2026年10月19日に確認
- OpenRouter — announcements2026年10月19日に確認
- OpenRouter docs — Quickstart2026年10月19日に確認
- OpenRouter docs — BYOK2026年10月19日に確認
- OpenRouter docs — Provider routing2026年10月19日に確認
- OpenRouter docs — Model fallbacks2026年10月19日に確認
- OpenRouter docs — Auto router2026年10月19日に確認
- OpenRouter docs — Presets2026年10月19日に確認
- OpenRouter docs — Response caching2026年10月19日に確認
- OpenRouter docs — Guardrails2026年10月19日に確認
- OpenRouter docs — Broadcast2026年10月19日に確認
- OpenRouter docs — Zero data retention2026年10月19日に確認