メインコンテンツまでスキップ

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: trueAnthropic SDK のブラウザ直接呼び出しフラグ。
x-agenticstar-allow-browser-access: true同等の独自ヘッダー。
警告

ブラウザから直接呼び出すと API キーがクライアントに露出します。API キーはサーバーサイドで管理し、ブラウザからの直接呼び出しは信頼できる用途に限定してください。

エンドポイント一覧

メソッドパス互換説明
POST/llm/v1/chat/completionsOpenAIチャット補完
POST/llm/v1/responsesOpenAIResponses API
POST/llm/v1/embeddingsOpenAI埋め込みベクトル生成
GET/llm/v1/modelsOpenAI利用可能なモデル一覧
POST/llm/v1/messagesAnthropicメッセージ生成
POST/llm/v1/messages/count_tokensAnthropicトークン数の計算

各エンドポイントのリクエスト / レスポンスの詳細は、OpenAI / Anthropic の公式仕様に準拠します。

リクエスト例

各エンドポイントのリクエスト / レスポンス仕様は OpenAI / Anthropic 公式に準拠します。ここでは代表的な呼び出し例を示します。

OpenAI 系

POST/llm/v1/chat/completions

Chat completion
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

Create a message
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_startcontent_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 UnauthorizedAPI キー / アクセストークンが無効または未指定
403 ForbiddenIP 制限により許可されていないネットワークからのアクセス
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 系

JSON
{
"error": {
"type": "invalid_request_error",
"message": "Missing required parameter: model.",
"code": "missing_model"
}
}

Anthropic 系

JSON
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Missing required parameter: model."
}
}

利用ログ

利用状況(モデル・トークン数・コスト・レイテンシ等)は 管理 API リファレンスllm-gateway-logs エンドポイント、または管理画面(Admin)で確認できます。