ベース URL と認証
当APIはOpenAIと完全に互換性があり、最小限の変更で標準SDKを使用できます。すべてのリクエストのベースURLはhttps://api.openrouterapi.top/v1です。認証は、Authorizationヘッダーに渡すBearerトークンによって処理されます。ダッシュボードでGoogleまたはメールアドレスでサインアップすることで、このキーを瞬時に生成できます。キーは安全に保管してください。このキーはあなたの前払いクレジットへの直接アクセスを提供します。
初回リクエスト
シンプルな curl コマンドでエンドポイントをテストします。YOUR_API_KEY を実際のキーに置き換えてください。モデル ID は uncensored に設定されており、標準的なコンテンツ拒否を回避します。このリクエストはプロンプトを送信し、完全な応答を待ちます。
curl https://api.openrouterapi.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
キーが無効な場合は 401 エラーが発生します。前払い残高が枯渇した場合は 402 エラーが発生します。これらのエラーはトークン残高を消費しませんが、レート制限クォータにはカウントされます。
Python SDK 統合
公式の openai Python パッケージの使用は簡単です。ベース URL とキーを使用してクライアントを初期化します。SDK は JSON シリアライゼーションを自動的に処理します。この例は基本的なチャット完了リクエストを示しています。
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterapi.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
SDK の最新バージョンがインストールされていることを確認してください。クライアントオブジェクトは接続プールを管理するため、再初期化せずに複数のリクエストに再利用できます。
Node SDK 統合
JavaScript 環境では、Node SDK も同様に機能します。カスタムベース URL を初期化時に渡します。このアプローチにより、既存の Web アプリやバックエンドサービスに無検閲生成をシームレスに統合できます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterapi.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Node SDK は promise ベースと async/await パターンの両方をサポートしています。エラー処理は他の OpenAI 互換サービスと一貫しています。
ストリーミング応答
リクエストに stream: true を設定してストリーミングを有効にします。API は Server-Sent Events (SSE) を返します。各チャンクには部分的なテキストが含まれます。最終チャンクには、請求のためのトークン使用統計が含まれます。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
前払いクレジットは、最終的な出力で実際に生成されたトークンに基づいて課金されます。ストリーミングは価格モデルを変更せず、正常に配信されたトークンに対して課金されます。
レート制限とコンテキストウィンドウ
各APIキーは1分あたり300リクエスト、8つの同時リクエストに制限されます。最大リクエストボディサイズは8 MBです。コンテキストウィンドウは合計で最大100,000トークン(入力と出力の合計)をサポートします。リクエストごとの最大出力は32,000トークン、またはmax_tokensが未設定の場合は2,048トークンです。401や402などのエラーはクレジットを消費しませんが、あなたのレート制限にはカウントされます。特定の内容タイプに対する拒否も無料です。