client.responses.create()メソッドで使用されるフォーマットです。 base URL を変更するだけで済みます。API キー、残高、Service Mode、レート制限、およびリクエストログは、/v1/chat/completions および /v1/messages と同じです。
x-request-id(リクエスト ID Hostlinku、フォーマット resp_…)が含まれており、非ストリーミングの成功応答には x-model が含まれます。
クイック設定
各ツールの詳細なガイドは、Codex CLI および OpenAI Agents SDK に掲載されています。 Codex CLI (~/.codex/config.toml)
bodyパラメータ
認識されないその他のフィールドはゲートウェイに転送されます(モデルでサポートされていないパラメータは無視されます)。無効なボディは
400 invalid_request_errorとして拒否され、フィールドごとの詳細はerror.details.issuesに記載されています。
非ストリーミングの応答
id および model は、常に Hostlinku のパブリック ID です。 ブロックhostlinkuは拡張情報(OpenAIのSDKはこれを無視する)であり、、Service Mode API keyの費用およびレイテンシが含まれている。 status: "incomplete" および incomplete_details.reason = "max_output_tokens" は、出力が max_output_tokens によって切り詰められていることを意味しますが、実際のトークンに基づいて課金されます。
ストリーミング (stream: true)
ゲートウェイは、Responses API(event: + data:)のフレーム形式でSSEイベントを転送します。これには、アップストリームからのsequence_numberも含まれます:
- 最終的な使用量は、
response.completed(またはresponse.incomplete)のオブジェクトresponseに記録されます。費用は、そのイベント後の実際の使用量に基づいて計算されます。 - ツールコールは、
response.output_item.added(type: "function_call")、response.function_call_arguments.delta、およびresponse.function_call_arguments.doneを経由して送信されます。 - ストリームが途中で失敗した場合、ゲートウェイは
event: errorと{"type":"error","code":…,"message":…}を送信し、偽のresponse.completedは送信しない。 - 最初のバイトが送信される前のエラー(残高不足、モデルが存在しない、レート制限)は、正しいHTTPステータスを伴う通常のJSONレスポンスとして返されます。SDK OpenAIでは、これらを例外(
AuthenticationError、NotFoundError、RateLimitError、…)。
ツールの呼び出し(関数の呼び出し)
フォーマットエラー
エラーメッセージには、アップストリームプロバイダーの識別子が含まれていません。Chat Completions 形式のエラーコードの完全な一覧は、エラー に記載されています。

