OpenAPI 仕様
完全な ARouter API は OpenAPI 仕様を使用してドキュメント化されています: ARouter は現在 YAML 仕様を公開しています。Swagger UI や Postman などのツールを使用して API を探索したり、クライアントライブラリを生成したりできます。Base URL
認証
すべてのエンドポイント(/healthz を除く)は、以下のいずれかの方法で認証が必要です:
| 方法 | Header / パラメータ | 使用場面 |
|---|---|---|
| Bearer Token | Authorization: Bearer <key> | OpenAI SDK、ほとんどのクライアント |
| API Key Header | X-Api-Key: <key> | Anthropic SDK |
| クエリパラメータ | ?key=<key> | Gemini SDK |
リクエスト
リクエスト形式
以下は TypeScript 型で表現したリクエストスキーマです。これは/v1/chat/completions エンドポイントへの POST リクエストのボディになります。
完全なパラメータリストはパラメータリファレンスを参照してください。
messages を標準としています。プロバイダーのネイティブリクエストボディを送信したい場合は、そのプロバイダーのネイティブエンドポイントまたはプロバイダープロキシを使用してください。
メッセージタイプ
ツールタイプ
構造化出力
response_format パラメータはモデルに構造化された JSON レスポンスを強制します。ARouter は2つのモードをサポートしています:
{ type: 'json_object' }:基本 JSON モード — モデルが有効な JSON を返します{ type: 'json_schema', json_schema: { ... } }:厳格スキーマモード — モデルが指定したスキーマに一致する JSON を返します
オプションのリクエスト Header
ARouter はアプリケーションを識別するための以下のオプション header をサポートしています:HTTP-Referer:アプリの URL、ダッシュボードでのソーストラッキングに使用X-Title:ARouter アナリティクスで使用されるアプリの表示名
モデルルーティング
provider/model 形式でモデルを指定します。ARouter はプロバイダープレフィックスを解析して正しいアップストリームにルーティングします。
model パラメータが省略された場合、テナントに設定されたデフォルトが使用されます。models[] と route を使用した順序付き候補モデルリストを含む完全なルーティングロジックはモデルルーティングガイドを参照してください。
ストリーミング
stream: true を設定すると、Server-Sent Events を通じてトークンごとにレスポンスを受信できます。SSE ストリームには data: ペイロードに加えてコメント行が含まれる場合があり、クライアントはそれらのコメントを無視する必要があります。SSE 形式、使用量チャンク、キャンセル、エラー処理についてはストリーミングガイドを参照してください。
非標準パラメータ
選択したモデルがリクエストパラメータをサポートしていない場合(非 OpenAI モデルのlogit_bias や OpenAI の top_k など)、そのパラメータは静かに無視されます。残りはアップストリームモデル API に転送されます。
アシスタントプリフィル
ARouter はモデルに部分的なレスポンスを補完させることをサポートしています。messages 配列の末尾に role: "assistant" のメッセージを含めてください:
レスポンス
レスポンス形式
ARouter はすべてのモデルおよびプロバイダーにわたってスキーマを統一し、OpenAI Chat API に準拠しています。choices は常に配列です。ストリーミングがリクエストされた場合、各 choice には delta プロパティが含まれ、それ以外の場合は message プロパティが含まれます。
Choice タイプ
使用量
レスポンス例
終了理由
ARouter は各モデルのfinish_reason を以下のいずれかの値に統一します:
| 値 | 説明 |
|---|---|
stop | モデルが自然に完了 |
length | max_tokens の制限に達した |
tool_calls | モデルがツールを呼び出したい |
content_filter | コンテンツモデレーションが発動 |
error | 生成中にエラーが発生 |
native_finish_reason で確認できます。
エンドポイントグループ
OpenAI 互換
/v1/chat/completions, /v1/embeddings, /v1/modelsOpenAI 互換 SDK と組み合わせて使用できます。provider/model ルーティングをサポート。Anthropic ネイティブ
/v1/messages, /v1/messages/batches, /v1/messages/count_tokensAnthropic SDK とのドロップイン互換。Gemini ネイティブ
/v1beta/models/{model}:generateContentGoogle Gemini SDK とのドロップイン互換。API Key 管理
/api/v1/keysAPI key の作成、一覧表示、更新、削除。課金
/api/v1/balance, /api/v1/transactionsアカウント残高と取引履歴を照会。プロバイダープロキシ
/{provider}/{path}サポートされているプロバイダーにリクエストを直接プロキシ。レート制限
レート制限は API key ごとに適用されます。デフォルト制限はダッシュボードまたは管理 API を使用して key ごとにカスタマイズできます。| Header | 説明 |
|---|---|
X-RateLimit-Limit | ウィンドウあたりの最大リクエスト数 |
X-RateLimit-Remaining | 残りリクエスト数 |
X-RateLimit-Reset | ウィンドウリセット時刻(Unix タイムスタンプ) |