BasicRouterドキュメント
クイックスタート
BasicRouterは、本番チームにモデルアクセス、ルーティング、フォールバック、使用量トラッキング、クレジットベースの課金のための安定したAPIを1つ提供します。LLMトークンの供給は信頼できるエンタープライズクラウドのオリジナルプロバイダーアカウントから調達され、ゲートウェイにプライバシー保護、高い安定性、リクエスト追跡性が組み込まれています。
https://api.basicrouter.ai/apihttps://api.basicrouter.ai/api/v1https://api.basicrouter.ai/api/v1Authorization: Bearer <key>APIキーを作成する
コンソールでBasicRouter APIキーを作成します。キーはサーバーに保管し、ブラウザやモバイルクライアントのコードには絶対に公開しないでください。
推奨されるキー戦略:
| キーの種類 | 推奨される用途 |
|---|---|
| 開発キー | ローカル開発、ステージング、テスト、プロトタイプ。 |
| 本番キー | バックエンドの本番ワークロード専用。 |
| 統合キー | Cursor、Claude Code、Codex、Hermes、OpenClawなどのツール専用キー。 |
| 顧客/テナントキー | エンタープライズ顧客、テナントトラフィック、事業部門向けのオプションのキー分離。 |
チームのアクセス権限が変更された際はキーをローテーションしてください。使用されなくなったキーは無効化してください。
SDKをBasicRouterに向ける
ほとんどのOpenAI互換クライアントは、新しいベースURLとAPIキーのみが必要です。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.BASICROUTER_API_KEY,
baseURL: "https://api.basicrouter.ai/api/v1"
});チャット補完を送信する
curl --request POST \
--url https://api.basicrouter.ai/api/v1/chat/completions \
--header "Authorization: Bearer $BASICROUTER_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "claude-sonnet-5",
"messages": [
{ "role": "user", "content": "Explain BasicRouter in one sentence." }
]
}'使用量と残高を確認する
curl --request GET \
--url https://api.basicrouter.ai/api/v1/billing/balance \
--header "Authorization: Bearer $BASICROUTER_API_KEY"モデルの検索
モデルページまたはモデルAPIを使用して、利用可能なテキストモデルを確認します。モデルのメタデータには、ベンダー、サービスプロバイダー、モダリティ、コンテキスト長、対応するAPIファミリー、対応する機能、可用性、アカウントレベルの制限、クレジット価格が含まれます。
エンドポイント: GET /v1/models 目的: 現在のアカウントで利用可能なモデルを一覧表示します。
curl --request GET \
--url https://api.basicrouter.ai/api/v1/models \
--header "Authorization: Bearer $BASICROUTER_API_KEY"機能マトリックス
| 機能 | 説明 | 一般的な用途 |
|---|---|---|
streaming | サーバー送信イベントのストリーミングに対応。 | チャットアプリ、コーディングエージェント、リアルタイムUX。 |
tool_calling | ツール呼び出しまたは関数呼び出しに対応。 | エージェント、ワークフロー自動化、コーディングアシスタント。 |
structured_outputs | スキーマ制約またはJSON出力に対応。 | データ抽出、ワークフロー自動化、エンタープライズアプリ。 |
json_mode | JSON形式の出力を返すことができます。 | 軽量な構造化レスポンス。 |
vision | 画像入力を受け付けます。 | マルチモーダルチャット、UI分析、ドキュメントのスクリーンショット。 |
prompt_caching | キャッシュされた入力またはコンテキストの再利用に対応。 | 長文コンテキストエージェント、繰り返し使用されるシステムプロンプト。 |
reasoning | 利用可能な場合は明示的な推論制御に対応。 | 複雑な計画、コーディング、分析ワークフロー。 |
logprobs | トークン確率出力に対応。 | 評価、ランキング、高度なNLPワークフロー。 |
APIファミリー互換性マトリックス
| APIファミリー | テキスト | 画像入力 | ツール呼び出し | 構造化出力 | ストリーミング | 備考 |
|---|---|---|---|---|---|---|
| OpenAI Chat Completions | はい | モデル依存 | モデル依存 | モデル依存 | はい | OpenAI互換エージェントやSDKに最適なデフォルト。 |
| OpenAI Responses | はい | モデル依存 | モデル依存 | モデル依存 | はい | 新しいOpenAIスタイルのエージェントワークフローに推奨。 |
| Anthropic Messages | はい | モデル依存 | モデル依存 | モデル依存 | はい | Claude互換クライアントとClaude Codeに最適。 |
| BasicRouter画像生成 | いいえ | モデル依存 | いいえ | いいえ | いいえ | 非同期タスクポーリングまたはWebhookを使用。 |
| BasicRouter動画生成 | いいえ | モデル依存 | いいえ | いいえ | いいえ | 非同期タスクポーリングまたはWebhookを使用。 |
認証
すべてのAPIリクエストはベアラートークンを使用します。キーはサーバー側の環境変数に保管し、 チームのアクセス権限に変更があった際はローテーションを行い、デバッグ用にリクエストIDを記録してください。
| ヘッダー | 値 | 備考 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | すべてのリクエストで必須です。 |
Content-Type | application/json | JSONリクエストボディの場合に必須です。 |
キーセキュリティの推奨事項
- APIキーはサーバーに保管してください。ブラウザやモバイルのクライアントコードにキーを公開しないでください。
- 開発、ステージング、本番、サードパーティ連携それぞれで別々のキーを 使用してください。
- 利用可能な場合は、環境、サービス、顧客、またはテナントごとにキーのスコープを設定してください。
- 従業員の退職、ベンダーアクセスの変更、または漏洩が疑われる場合は、 キーをローテーションしてください。
- キーはソースコードではなく、シークレットマネージャーまたは環境変数に保管してください。
コンソールの使用
BasicRouterコンソールは、APIアクセス、モデル可用性、 ルーティングポリシー、使用量の可視化、請求管理のための運用管理平面です。 アカウント管理者に、キー、モデル、リクエスト、クレジット、 本番のモデルトラフィックに関するアカウントレベルのコントロールの 一元化されたビューを提供します。
APIキーの管理
コンソールからAPIキーの作成、ローテーション、失効、ラベル付けを行います。開発、ステージング、本番、 個別サービスそれぞれで別々のキーを使用し、使用量を環境やアプリケーションごとに 監査・分離できるようにしてください。
| プラクティス | 説明 |
|---|---|
| 環境の分離 | 開発、ステージング、本番のトラフィックに異なるAPIキーを使用します。 |
| 説明的なラベルの使用 | アプリケーション、サービス、環境、統合ごとにキーにラベルを付けます。 |
| 定期的なローテーション | アクセス権限の変更時や認証情報が漏洩した可能性がある場合にキーをローテーションします。 |
| クライアント側での露出を回避 | APIキーはサーバー側のシステムのみに保持してください。ブラウザや モバイルのクライアントコードにキーを公開しないでください。 |
| キー使用量の監視 | キーごとにリクエスト量、クレジット消費量、エラーパターンを確認します。 |
モデル一覧
モデル一覧ページを使用して、アカウントで利用可能なモデルを確認します。各モデルエントリには、 ベンダー、サービングプロバイダー、モダリティ、サポートされるAPIファミリー、コンテキスト長、 機能フラグ、可用性状態、価格情報が含まれる場合があります。
| フィルター | 目的 |
|---|---|
| ベンダー | OpenAI、Anthropic、Google、Qwen、DeepSeek、その他の プロバイダーなどのモデルベンダーでフィルターします。 |
| プロバイダー | サービングプロバイダーまたはクラウドプロバイダーでフィルターします。 |
| モダリティ | テキスト、画像、動画、エンベディング、オーディオ、マルチモーダルのサポートでフィルターします。 |
| 機能 | ストリーミング、ツール呼び出し、構造化出力、ビジョン、プロンプトキャッシュ、 推論のサポートでフィルターします。 |
| 可用性 | 現在アカウントで利用可能なモデルを識別します。 |
本番アプリケーションでは、トラフィックを有効化する前にモデルの機能を確認してください。 一部のパラメータや機能はモデルに依存し、すべてのAPIファミリーで サポートされるとは限りません。
使用量とログ
使用量とログビューは、APIトラフィックの運用可視性を提供します。チームは リクエスト量、選択されたモデル、解決されたルーティングターゲット、クレジット消費量、 レイテンシ、エラーコード、リクエストIDを調査できます。
- 失敗したリクエストのトラブルシューティング。
- 高コストのワークロードの特定。
- アプリケーションや環境間でのモデル使用量の比較。
- ルーティングとフォールバック動作の検証。
- レイテンシやプロバイダー可用性の問題の調査。
- サポートに連絡する際のリクエストIDの提供。
各APIレスポンスにはBasicRouterリクエストIDが含まれるか、公開されています。このIDを アプリケーションログに保存して、本番デバッグとサポートエスカレーションをより効率的にしてください。
フォールバック
フォールバックはBasicRouterのレジリエンスメカニズムです。プライマリモデルまたはルーティングポリシーが 失敗した場合、システムは自動的にバックアップモデルに切り替えてリクエストの処理を継続します。 これによりアプリケーションの応答性を維持し、サービス停止のリスクを最小限に抑えます。
フォールバックはセーフティネットとして機能し、 モデルの障害、クォータ制限、ネットワークの変動が発生した場合でも アプリケーションをスムーズに稼働させ続けます。
フォールバックが重要な理由
本番環境では、モデルサービスは多くの予測不能な問題に遭遇する可能性があります:
- モデルサービスの障害:上流APIが一時的に 利用できなくなったりタイムアウトしたりします。
- パフォーマンスの変動:高いモデル負荷により、レスポンスが 遅くなったり失敗したりします。
- ルーティングの失敗:スマートルーティングで選択された すべての候補モデルが利用不可になります。
フォールバックは信頼性の高いバックアップパスを提供することで、アプリケーションの可用性を維持します。
主な利点
| 利点 | 説明 |
|---|---|
| 高可用性 | 自動フェイルオーバーによりサービスの稼働を維持し、 障害の影響を軽減します。 |
| 透過的な切り替え | システムが自動的にモデルを切り替えます — アプリケーションコードの変更は 不要です。 |
| 柔軟な設定 | ユースケースに応じて、リクエストごとおよびアカウントレベルの 設定の両方をサポートします。 |
| コスト最適化 | より費用対効果の高いモデルをフォールバックとして選択し、緊急時の コストを管理します。 |
| 一元管理 | アカウントレベルで一度設定すれば、すべての リクエストに自動的に適用されます。 |
グローバルフォールバックモデル設定
BasicRouterはコンソールのバックエンドからグローバルフォールバックモデルの設定をサポートしています。 すべてのリクエストは失敗時にこのモデルをバックアップとして自動的に使用します。
設定方法:
- BasicRouter戦略設定ページに 移動します。
- デフォルトフォールバックモデル設定を見つけます。
- ドロップダウンリストからグローバルフォールバックモデルを選択します。
- 設定を保存して即座に適用します。
グローバル設定の利点:
- コード変更不要:一度設定すればグローバルに適用され、 すべてのリクエストで設定を繰り返す必要はありません。
- 一元管理:フォールバックポリシーを一箇所で管理し、 調整や監視を容易にします。
- メンテナンスの簡素化:コードの複雑さと設定エラーの 可能性を低減します。
- 柔軟な上書き:リクエストレベルのフォールバック設定が優先され、 特定のシナリオでグローバル設定を上書きできます。
リクエストレベルのフォールバック設定
特定のビジネスシナリオでは、個々のリクエストでフォールバックモデルを指定して、 グローバル設定を上書きできます。
router.fallBackModels パラメータでフォールバックモデルを指定します:
{
"model": "claude-sonnet-4",
"messages": [
{
"role": "user",
"content": "Explain what quantum computing is"
}
],
"router": {
"fallBackModels": ["glm-5.2"]
}
}優先順位ルール
複数のフォールバック設定が存在する場合、優先順位は高から低へ 以下の順になります:
- リクエストレベルの
router.fallBackModels:個々のリクエストで指定されたフォールバックモデル。 - グローバルデフォルトフォールバックモデル:コンソールで設定された グローバルフォールバックモデル。
- フォールバックなし:いずれも設定されていない場合、リクエストは 失敗時にエラーを返します。
- すべてのフォールバックモデルが失敗した場合、システムは最後に試行された モデルの失敗理由を返します。
- フォールバックが発生した場合、レスポンスは実際に使用されたモデルを示し、 監視と分析を容易にします。
アカウント管理
アカウントの種類に応じて、コンソールにはアカウントレベルのモデル有効化、 リセラーまたはディストリビューターのコントロール、請求設定、アクセス設定が含まれる場合があります。 管理者はこれらのコントロールを使用して、モデルアクセス、使用量の可視性、 請求責任をアプリケーション、顧客アカウント、または事業単位に合わせることができます。
本番運用チェックリスト
| 項目 | 推奨事項 |
|---|---|
| APIキー | 明確なラベル付きの専用本番キーを使用します。 |
| モデル | モデルの可用性、価格、コンテキスト長、必要な機能を確認します。 |
| ルーティング | 重要なワークロードにルーティングエイリアスまたはフォールバックポリシーを設定します。 |
| ログ | リクエストIDがアプリケーションログに記録されていることを確認します。 |
| 請求 | ウォレット残高、プランステータス、クレジット控除ルールを確認します。 |
| レート制限 | アカウントレベルのRPM、TPM、同時実行数、メディアタスク制限を確認します。 |
| アラート | 使用量の増加、クレジット残高、エラー、プロバイダー可用性を監視します。 |
請求とクレジット
BasicRouterは、テキスト、画像、動画、その他のサポートされるモデルワークロードにわたり クレジットベースの課金モデルを使用します。クレジットはマルチモデルおよびマルチプロバイダーの 使用量のための統一された単位を提供し、チームがモダリティやAPIファミリー全体で 消費量を一貫して管理できるようにします。
詳細なモデル価格は、モデル一覧ページまたはモデルメタデータAPIで確認できます。 価格は、モデル、プロバイダー、モダリティ、解像度、トークンタイプ、出力長、 タスク時間、アカウントタイプ、商取引契約によって異なる場合があります。
チャージとウォレット
アカウントは柔軟な使用のために従量課金ウォレットクレジットを追加できます。ウォレットクレジットは、 アカウントにカスタム請求ルールが適用されていない限り、月額プランのクレジットと リソースパックが消費された後に使用されます。
ウォレットクレジットは、適用される商取引条件で別途定められていない限り期限切れになりません。 従量課金ウォレットのチャージ時にサービス手数料が発生します。
月額プランとリソースパック
各ユーザーまたはアカウントは1つの有効な月額プランを選択できます。月額プランは、 請求期間中の定義された使用量、商取引条件、アカウントレベルのアクセス設定を提供します。
ユーザーは追加の使用量のために複数のリソースパックを購入することもできます。リソースパックは コミットされた使用量を従量課金ウォレット残高から分離でき、大容量のテキスト、画像、動画、 または専用ワークロードの使用に役立ちます。
課金順序
カスタム請求ルールが設定されていない限り、クレジットは以下の順序で 控除されます:
| 優先順位 | クレジット元 | 説明 |
|---|---|---|
| 1 | 月額プラン | 含まれる月間使用量が最初に消費されます。 |
| 2 | リソースパック | 追加購入されたパックは月額プランクレジットの後に消費されます。 |
| 3 | 従量課金ウォレット | ウォレット残高はプランおよびリソースパッククレジットの後に消費されます。 |
カスタム商取引条件を持つアカウントでは、控除順序、期限ルール、含まれる使用量、価格が 異なる場合があります。アカウント固有のルールはコンソールに表示されるか、 商取引契約を通じて提供されます。
カスタム価格
価格はユーザーまたはアカウントごとにカスタマイズできます。エンタープライズ顧客、リセラーアカウント、 ディストリビューターアカウント、大規模顧客はカスタム価格の対象となる場合があります。 見積もりについては営業にお問い合わせください。
カスタム価格は、アカウント、モデル、プロバイダー、モダリティ、リージョン、使用量、 または商取引契約ごとに設定できます。カスタム価格が有効な場合、コンソールと請求APIは 利用可能な範囲でアカウント固有の価格と控除ルールを反映します。
価格単位
異なるモデルモダリティは異なる測定単位を使用します。BasicRouterはモデルの価格ルールに 従ってこれらの単位をクレジットに変換します。
| モダリティ | 一般的な価格基準 |
|---|---|
| テキスト | 入力トークン、出力トークン、キャッシュ読み取りトークン、キャッシュ書き込みトークン、推論 トークン、モデル固有のトークンカテゴリ。 |
| 画像 | モデル、解像度、生成画像数、入力画像使用量、編集モード、 または品質設定。 |
| 動画 | モデル、出力解像度、生成秒数、アスペクト比、入力画像または動画の 使用量、タスクタイプ。 |
| エンベディング | 入力トークンまたはエンベディングレコード数。 |
| オーディオ | 入力時間、出力時間、文字起こしの長さ、またはモデル固有のオーディオ 単位。 |
価格単位はモデルによって異なる場合があります。本番でモデルを有効にする前に、 必ずモデル詳細ページまたは価格メタデータを参照してください。
使用量の帰属
BasicRouterの使用量は、アカウント、APIキー、モデル、モダリティ、または時間範囲ごとに 確認できます。これによりチームはコストをアプリケーション、環境、顧客、 内部の事業単位に帰属させることができます。
| ディメンション | 説明 |
|---|---|
| APIキー | アプリケーション、サービス、または環境ごとに使用量をグループ化。 |
| モデル | 選択されたモデルごとにコストと量を比較。 |
| 解決済みモデル | ルーティングまたはフォールバック後に実際に使用されたモデルを確認。 |
| モダリティ | テキスト、画像、動画、エンベディング、オーディオの使用量を分離。 |
| 時間範囲 | 日次、月次、またはカスタムのレポート期間を確認。 |
| メタデータ | 顧客ID、テナントID、ユーザーID、環境などのカスタムリクエストメタデータで 使用量をグループ化。 |
クレジット残高
アカウント全体で利用可能なクレジット数を確認します。残高は順番に控除される3つの ウォレットに分割されます:月額プラン枠、購入済みリソースパック、従量課金ウォレット。 また、チャージ支出とは別に含まれる使用量を追跡するための、統合リソース合計 (月額プラン+リソースパック、従量課金を除く)も利用可能です。
プログラムでこれを取得するには、APIリファレンスの GET /v1/billing/balanceを参照してください。
使用量の詳細
レポート、監視、内部コスト配分のための、個々の使用量レコードのページ分割された時系列リストを 確認します。各レコードはモデル、モデルタイプ(テキスト、画像、動画)、控除されたクレジット、 各控除がどのウォレットから引き出されたかの内訳を表示します。結果は特定の時間範囲で フィルターできます。
プログラムでこれを取得するには、APIリファレンスの GET /v1/usageを参照してください。
取引履歴
取引履歴を使用して、チャージ、プラン割り当て、リソースパック付与、使用量控除、調整、 管理上の修正を含むクレジットの動きを確認します。
プログラムでこれを取得するには、APIリファレンスの GET /v1/billing/transactionsを参照してください。
失敗したリクエストと返金
検証エラー、認証エラー、権限エラーは、モデルの実行が発生しないため通常は 課金されません。上流モデルに到達したリクエストや部分的な出力を生成したリクエストは、 モデル、プロバイダー、レスポンス状態に応じてクレジットを消費する場合があります。
非同期の画像および動画タスクの場合、課金動作はタスクが承認、開始、完了、失敗、 キャンセルされたかどうかに依存します。タスク詳細レスポンスには、クレジットが消費された 場合に使用量情報が含まれます。
チャージ、月額プラン、リソースパック、消費済みクレジットは、適用される商取引契約で 別途定められているか法律で要求されていない限り返金不可です。
運用
エラー
BasicRouterは安定したエラーコードを返すため、アプリケーションはリトライ、フォールバック、課金の問題、デバッグを一貫して処理できます。
プロバイダ互換エンドポイントは、可能な限り元のAPIファミリーのエラー構造を維持しようとします。BasicRouterネイティブエンドポイントはBasicRouterエラーオブジェクトを使用します。
HTTPステータスとエラーコードのマッピング
| HTTPステータス | エラータイプ | コード例 | リトライ |
|---|---|---|---|
| 400 | invalid_request_error | invalid_request, unsupported_parameter, invalid_messages, invalid_image_url | いいえ |
| 401 | authentication_error | missing_api_key, invalid_api_key | いいえ |
| 402 | billing_error | insufficient_credits, payment_required, quota_exceeded | いいえ |
| 403 | permission_error | model_access_denied, endpoint_access_denied, key_scope_denied | いいえ |
| 404 | not_found_error | model_not_found, response_not_found, task_not_found | いいえ |
| 408 | timeout_error | gateway_timeout, provider_timeout | はい |
| 409 | conflict_error | idempotency_conflict, task_already_cancelled | 条件次第 |
| 422 | validation_error | schema_validation_failed, unsupported_modality | いいえ |
| 429 | rate_limit_error | account_rpm_exceeded, account_tpm_exceeded, provider_rate_limited | はい |
| 500 | internal_error | internal_error | はい |
| 502 | provider_error | provider_bad_gateway, provider_invalid_response | はい |
| 503 | service_unavailable | model_unavailable, provider_unavailable, insufficient_capacity | はい |
| 504 | timeout_error | provider_timeout, gateway_timeout | はい |
一般的なエラーコード
| コード | 意味 | 推奨される対処 |
|---|---|---|
missing_api_key | APIキーが提供されていません。 | Authorization ヘッダーを追加してください。 |
invalid_api_key | APIキーが無効または失効しています。 | APIキーを作成またはローテーションしてください。 |
model_not_found | モデルIDが存在しないか、アカウントで有効化されていません。 | モデルページを確認するか、GET /v1/models を呼び出してください。 |
model_access_denied | APIキーまたはアカウントがモデルにアクセスできません。 | モデルを有効化するか、管理者に連絡してください。 |
unsupported_parameter | リクエストに選択したエンドポイントまたはモデルでサポートされていないパラメータが含まれています。 | パラメータを削除するか、互換性のあるモデルを選択してください。 |
unsupported_modality | 選択したモデルは入力または出力のモダリティをサポートしていません。 | モダリティをサポートするモデルを選択してください。 |
account_rpm_exceeded | アカウントの1分あたりのリクエスト制限を超過しました。 | バックオフでリトライするか、制限の引き上げをリクエストしてください。 |
account_tpm_exceeded | アカウントの1分あたりのトークン制限を超過しました。 | バックオフでリトライし、トークンを削減するか、制限の引き上げをリクエストしてください。 |
provider_rate_limited | アップストリームプロバイダがリクエストをレート制限しました。 | リトライするか、フォールバックを有効化してください。 |
insufficient_credits | アカウントのクレジットが不足しています。 | ウォレットにチャージし、パックを購入するか、プランをアップグレードしてください。 |
provider_timeout | アップストリームプロバイダが時間内に応答しませんでした。 | リトライするか、フォールバックを有効化してください。 |
model_unavailable | モデルが一時的に利用できません。 | リトライするか、ルーティングエイリアスを使用してください。 |
content_policy_error | リクエストまたは出力が安全ポリシーによってブロックされました。 | 入力を変更するか、適切なワークフローを選択してください。 |
