LLM Gateway リファレンス
LLM Gateway は OpenAI / Anthropic 互換の LLM 呼び出しエンドポイントを提供します(SaaS版のみ)。リクエスト / レスポンスは各社のネイティブ形式に準拠するため、既存の OpenAI SDK / Anthropic SDK をそのまま利用できます。
ベース URL
| 互換 | ベース URL |
|---|---|
| OpenAI 系 | https://api.fd.agenticstar.tm.softbank.jp/llm/v1 |
| Anthropic 系 | https://api.fd.agenticstar.tm.softbank.jp/llm |
認証
| 方式 | ヘッダー |
|---|---|
| API キー(OpenAI 系) | Authorization: Bearer agtstr_... |
| API キー(Anthropic 系) | x-api-key: agtstr_... |
| アクセストークン(CC フロー) | Authorization: Bearer <access_token> |
API キー・クライアントの作成方法は セットアップ を参照してください。
共通仕様
- リクエストボディに
modelは必須です。利用可能なモデルはGET /v1/modelsで取得します。 - リクエストボディの上限は 32MB です。
- IP 制限が設定されている場合、許可外のネットワークからのリクエストは
403になります。
CORS
LLM Gateway はサーバーサイドからの利用を前提としており、ブラウザからの直接呼び出し(クロスオリジン)は既定で許可されていません。Origin を伴うブラウザリクエストは、オプトインヘッダが無い場合ブロックされます(サーバー間通信では Origin が付かないため影響ありません)。
ブラウザから直接呼び出す場合は、次のいずれかのヘッダを付与するとクロスオリジンが許可されます(Access-Control-Allow-Origin: * が返ります)。
| ヘッダー | 説明 |
|---|---|
| anthropic-dangerous-direct-browser-access: true | Anthropic SDK のブラウザ直接呼び出しフラグ。 |
| x-agenticstar-allow-browser-access: true | 同等の独自ヘッダー。 |
ブラウザから直接呼び出すと API キーがクライアントに露出します。API キーはサーバーサイドで管理し、ブラウザからの直接呼び出しは信頼できる用途に限定してください。
エンドポイント一覧
| メソッド | パス | 互換 | 説明 |
|---|---|---|---|
| POST | /llm/v1/chat/completions | OpenAI | チャット補完 |
| POST | /llm/v1/responses | OpenAI | Responses API |
| POST | /llm/v1/embeddings | OpenAI | 埋め込みベクトル生成 |
| GET | /llm/v1/models | OpenAI | 利用可能なモデル一覧 |
| POST | /llm/v1/messages | Anthropic | メッセージ生成 |
| POST | /llm/v1/messages/count_tokens | Anthropic | トークン数の計算 |
各エンドポイントのリクエスト / レスポンスの詳細は、OpenAI / Anthropic の公式仕様に準拠します。
- OpenAI 互換: OpenAI API リファレンス
- Anthropic 互換: Anthropic API リファレンス
リクエスト例
各エンドポイントのリクエスト / レスポンス仕様は OpenAI / Anthropic 公式に準拠します。ここでは代表的な呼び出し例を示します。
OpenAI 系
POST/llm/v1/chat/completions
1curl https://api.fd.agenticstar.tm.softbank.jp/llm/v1/chat/completions \2-H "Authorization: Bearer agtstr_..." \3-H "Content-Type: application/json" \4-d '{5 "model": "<モデル ID>",6 "messages": [{"role": "user", "content": "こんにちは"}]7}'Anthropic 系
POST/llm/v1/messages
1curl https://api.fd.agenticstar.tm.softbank.jp/llm/v1/messages \2-H "x-api-key: agtstr_..." \3-H "anthropic-version: 2023-06-01" \4-H "Content-Type: application/json" \5-d '{6 "model": "<モデル ID>",7 "max_tokens": 1024,8 "messages": [{"role": "user", "content": "こんにちは"}]9}'ストリーミング
リクエストボディで "stream": true を指定すると、レスポンスを SSE(Server-Sent Events)で逐次受信できます。フォーマットは各系統のネイティブなストリーミング形式に準拠します。
OpenAI 系 — data: {チャンク} 行が送られ、data: [DONE] で終了します。
data: {"choices":[{"delta":{"content":"こん"}}]}
data: {"choices":[{"delta":{"content":"にちは"}}]}
data: [DONE]
Anthropic 系 — event: と data: の組で配信されます(message_start → content_block_delta … → message_stop)。
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"こん"}}
event: message_stop
data: {"type":"message_stop"}
エラーレスポンス
エラー時に返される可能性のある主な HTTP ステータスコードです。
| ステータス | 説明 |
|---|---|
400 Bad Request | リクエストが不正(model 欠落・JSON 不正・指定モデルが利用不可・コンテンツフィルタによるブロック等) |
401 Unauthorized | API キー / アクセストークンが無効または未指定 |
403 Forbidden | IP 制限により許可されていないネットワークからのアクセス |
404 Not Found | 指定されたモデルが存在しない |
413 Payload Too Large | リクエストボディが 32MB を超過 |
429 Too Many Requests | レート制限または上限超過。一時的なレート制限では Retry-After、ハード上限(日次予算等)では x-should-retry: false が付与される |
501 Not Implemented | 該当エンドポイントが対象プロバイダで未対応(例: Responses API) |
502 Bad Gateway | 上流プロバイダとの通信エラー等 |
エラーレスポンス形式
エラーボディは、呼び出したエンドポイントの系統のネイティブなエラー形式で返されます。
OpenAI 系
{
"error": {
"type": "invalid_request_error",
"message": "Missing required parameter: model.",
"code": "missing_model"
}
}
Anthropic 系
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Missing required parameter: model."
}
}
利用ログ
利用状況(モデル・トークン数・コスト・レイテンシ等)は 管理 API リファレンス の llm-gateway-logs エンドポイント、または管理画面(Admin)で確認できます。