OpenRouterユーザー向けクイックスタート
ベースURLとAPIキーを変更するだけで、数分でOpenRouter API呼び出しを当社の無検閲エンドポイントに移行できます。本ガイドでは、テキスト生成、ストリーミング、構造化出力の必須統合について解説します。
インストールとセットアップ
当APIは標準的なOpenAI SDKと完全に互換性があります。OpenRouterから移行するには、base_urlとapi_keyの2つの設定値を更新するだけです。クライアントをhttps://api.openrouterapi.cc/v1に向け、ダッシュボードで生成されたキーを使用してください。カスタムヘッダーや複雑なルーティングロジックは必要ありません。リクエストするモデルIDはuncensoredです。
SDKのバージョンがbase_urlパラメータをサポートしていることを確認してください。生のHTTPクライアントを使用している場合は、ターゲットURLを更新するだけです。この設定により、テキスト完了リクエストのみを送信している限り、既存のクライアントコードを変更せずに動作します。
認証
認証は標準のAuthorizationヘッダーによって処理されます。APIキーをBearerトークンとして渡してください。キーが無効または期限切れの場合、APIは401エラーを返します。一部のプロバイダーとは異なり、失敗したリクエストに対しては課金しません。エラーと拒否は無料なので、クレジットを消費せずに認証をテストできます。
各アカウントでは同時に1つのアクティブなキーのみがサポートされます。新しいキーを生成すると、以前のキーは直ちに無効になります。キーを安全に保管し、漏洩の疑いがある場合はローテーションしてください。キーは登録直後に表示されるため、ページを離れる前にコピーしてください。
基本的なチャット完了
中核機能はPOST /v1/chat/completionsエンドポイントです。メッセージのリストとしてプロンプトを送信し、テキスト応答を受け取ります。このモデルは、法的な成人向け利用に対してコンテンツ拒否なしで応答するようにチューニングされており、クリエイティブ、論争的、またはセキュリティ研究のトピックに適しています。
modelフィールドをuncensoredに設定します。temperature、top_p、stopなどのパラメータを使用して動作を制御できます。APIはresponse_formatを介してJSONモードと、toolsを介して関数呼び出しをサポートします。すべてのリクエストは非同期で処理され、モデルが完了すると完全なレスポンスが返されます。
ストリーミングレスポンス
リクエストにstream: trueを設定してストリーミングを有効にします。APIはサーバー送信イベント(SSE)として部分的なレスポンスを返します。テキストは生成されるたびにチャンクとして返され、アプリケーションでのリアルタイム表示を可能にします。
トークン使用情報はストリームの最後のチャンクで提供されます。これにより、個々のトークンをすべて解析することなく、コストを正確に追跡できます。ストリーミングはレイテンシが重要なチャットインターフェースに最適です。クライアントがSSEを正しく処理し、ストリーム終了時に接続を閉じることを確認してください。
関数呼び出し
APIはtoolsパラメータを介して関数呼び出しをサポートします。関数をtools配列で定義し、tool_choiceをautoまたは特定の関数名に設定します。関数がトリガーされると、モデルは構造化JSON引数を返します。
この機能は、LLMを外部APIやデータベースと統合する場合に役立ちます。モデルは関数定義に基づいて有効な引数を生成するため、関数定義が正確であることを確認してください。APIは関数を実行しないため、実行ロジックはアプリケーションコードで処理する必要があります。
JSONモード
構造化出力にはresponse_format: {"type": "json_object"}を使用します。これはモデルが有効なJSONを返すことを強制し、ダウンストリームアプリケーションでのデータ解析に不可欠です。JSONモードは、単純なデータ抽出タスクにおいて関数呼び出しよりも信頼性が高い場合があります。
プロンプトでモデルにJSONを返すよう明確に指示してください。プロンプトが曖昧な場合、無効なJSONレスポンスが発生する可能性があります。JSONモードは標準モードとストリーミングモードの両方でサポートされています。予測可能で機械可読な出力が必要な場合に使用してください。
制限、エラー、コンテキスト
コンテキストウィンドウは、プロンプトと生成結果を合わせて100,000トークンです。1つのリクエストあたりの最大出力は32,000トークンです(max_tokens が設定されていない場合は2,048)。レート制限は1分あたり300リクエスト、キーあたり8つの同時リクエストです。リクエストボディは8 MBに制限されます。
エラーは標準的なHTTPコードを返します:無効なキーの場合は401、クレジット不足の場合は402、レート制限の場合は429です。クレジットは前払いクレジットのため、402エラーはチャージが必要であることを意味します。エラーと拒否は無料のため、コストなしで再試行できます。ハードコンテンツ制限は、未成年者を含む性的なコンテンツをブロックします。
cURL
curl https://api.openrouterapi.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterapi.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterapi.cc/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);ストリーミング
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 仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| モデル ID | uncensored |
| 認証 | Authorization: Bearer YOUR_KEY |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouterapi.cc/v1 |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| JSON モード | response_format: {"type": "json_object"} |
| レート制限 | キーごとに毎分 300 リクエスト |
| 同時実行 | キーごとに同時 8 リクエストまで |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| リクエストサイズ | 最大 8 MB |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| ボーナス | $50 以上で +5%、$100 以上で +10% |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| チャージ | USDT(TRC20)または USDC(Base)、$10〜$500 の任意の整数額 |
| 料金 | 入力 100 万トークン $0.25 · 出力 100 万トークン $1.00 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| ログイン | Google またはメール+パスワード |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |
質問と回答
これは公式のOpenRouter APIですか?
いいえ、これは独立したサービスです。OpenRouterのベースURL構造と互換性のある単一の無検閲モデルを提供しています。OpenRouterの集約モデルやルーティングロジックは提供していません。
APIの支払い方法
暗号通貨のみでの支払いを受け付けています:USDT (TRC20) または USDC (Base)。$10から$500までの任意の整数金額をチャージできます。クレジットカードやPayPalは受け付けていません。
プロンプトはトレーニングに使用されますか?
いいえ、プロンプトはトレーニングに使用されません。アカウントにはメールアドレスのみ必要とし、モデル改善のためにデータを保存または使用することはありません。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。これだけですべてのセットアップが完了します。