このガイドでは、アプリを YouRouter に接続し、テストリクエストを送ってレスポンス形式を確認するまでの流れを説明します。YouRouter は https://api.yourouter.ai/v1 に OpenAI 互換エンドポイントを提供するため、多くの既存 OpenAI SDK 連携では Base URL と API キー を差し替えるだけで移行できます。
連携の前提
項目 値 Base URL https://api.yourouter.ai/v1認証ヘッダー Authorization: Bearer <YOUR_YOUROUTER_API_KEY>Content-Type Content-Type: application/jsonモデル指定 リクエストボディの model にモデル ID を指定 マルチモーダル messages[].content にテキストと画像ブロックを並べるデフォルトルーティング vendor を省略するか vendor: autoプロバイダー固定 vendor: openai / anthropic / google など
1. API キーを設定する
以下の例を実行する前に、API キーを環境変数へ保存してください。
export YOUROUTER_API_KEY = "your-api-key-here"
set YOUROUTER_API_KEY = your - api - key - here
YOUROUTER_API_KEY = your-api-key-here
API キーをブラウザ拡張、モバイルアプリ、公開リポジトリ、クライアントログに埋め込まないでください。
2. 最初のテストリクエスト
最も早い疎通確認は、Chat Completions への直接 HTTP リクエストです。成功すると choices[0].message.content に生成テキストが入ります。
cURL
Python requests
Node.js fetch
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY " \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "Reply with exactly: connected"
}
]
}'
import os
import requests
response = requests.post(
"https://api.yourouter.ai/v1/chat/completions" ,
headers = {
"Authorization" : f "Bearer { os.environ[ 'YOUROUTER_API_KEY' ] } " ,
"Content-Type" : "application/json" ,
},
json = {
"model" : "gpt-4o" ,
"messages" : [
{
"role" : "user" ,
"content" : "Reply with exactly: connected" ,
}
],
},
)
print (response.json()[ "choices" ][ 0 ][ "message" ][ "content" ])
const response = await fetch ( 'https://api.yourouter.ai/v1/chat/completions' , {
method: 'POST' ,
headers: {
Authorization: `Bearer ${ process . env . YOUROUTER_API_KEY } ` ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
model: 'gpt-4o' ,
messages: [
{
role: 'user' ,
content: 'Reply with exactly: connected' ,
},
],
}),
});
const data = await response . json ();
console . log ( data . choices [ 0 ]. message . content );
3. 既存の OpenAI SDK から移行する
アプリがすでに OpenAI SDK を使っている場合、リクエストボディはそのままにして api_key と base_url だけ を差し替えます。
import os
from openai import OpenAI
client = OpenAI(
api_key = os.environ[ "YOUROUTER_API_KEY" ],
base_url = "https://api.yourouter.ai/v1" ,
)
completion = client.chat.completions.create(
model = "gpt-4o" ,
messages = [
{
"role" : "user" ,
"content" : "Reply with exactly: connected" ,
}
],
)
print (completion.choices[ 0 ].message.content)
import OpenAI from 'openai' ;
const openai = new OpenAI ({
apiKey: process . env . YOUROUTER_API_KEY ,
baseURL: 'https://api.yourouter.ai/v1' ,
});
const completion = await openai . chat . completions . create ({
model: 'gpt-4o' ,
messages: [
{
role: 'user' ,
content: 'Reply with exactly: connected' ,
},
],
});
console . log ( completion . choices [ 0 ]. message . content );
4. モデルとルーティングを選ぶ
model で呼び出すモデルを指定します。OpenAI GPT、Claude、Gemini、DeepSeek、Grok、Doubao、Kimi など、多くのモデル群を同じ API 形で呼び出せます。画像などマルチモーダル入力は マルチモーダル を参照してください。
デフォルトでは YouRouter が自動ルーティングします。vendor を省略するか vendor: auto にすると、モデルに対して最も適切な上流へ振り分けます。
特定の上流の挙動、モデル亜種、アカウント分離、コンプライアンス要件などが明確な場合のみ、vendor で固定してください。
cURL
Python SDK
Node.js SDK
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY " \
-H "Content-Type: application/json" \
-H "vendor: openai" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello from a pinned provider."}]
}'
completion = client.chat.completions.create(
model = "gpt-4o" ,
messages = [{ "role" : "user" , "content" : "Hello from a pinned provider." }],
extra_headers = { "vendor" : "openai" },
)
const completion = await openai . chat . completions . create ({
model: 'gpt-4o' ,
messages: [{ role: 'user' , content: 'Hello from a pinned provider.' }],
}, {
headers: { vendor: 'openai' },
});
詳細は モデル と ルーティング を参照してください。
5. レスポンスとエラー処理
OpenAI 互換エンドポイントでは、成功レスポンスは OpenAI 形式に従います。生成テキストは通常 choices[0].message.content です。
{
"choices" : [
{
"message" : {
"role" : "assistant" ,
"content" : "connected"
}
}
]
}
よくある HTTP ステータス:
ステータス 意味 対応 200成功 ボディをパースする 401API キー不正/未設定 Authorization を確認429レート制限 バックオフして再試行、ルーティング見直し 500ゲートウェイ/上流エラー 安全に再試行し、リクエスト ID を残す
6. ストリーミング
チャット UI やエージェント用途では stream: true で逐次チャンクを受け取れます。
stream = client.chat.completions.create(
model = "gpt-4o" ,
messages = [{ "role" : "user" , "content" : "Explain automatic routing in two sentences." }],
stream = True ,
)
for chunk in stream:
delta = chunk.choices[ 0 ].delta.content
if delta:
print (delta, end = "" )
詳細なリクエスト形は Create Chat Completion を参照してください。
次のステップ
モデル モデル ID と vendor の使い方を確認します。
API リファレンス エンドポイントとパラメータを確認します。
マルチモーダル 画像入力とプロバイダー固有フォーマットを確認します。
ルーティング 自動ルーティングと固定の使い分けを確認します。