OpenAI の次世代「単一ターン入力 + ストリーミング出力」API で、Codex CLI と新しい OpenAI SDK が使用します。
/v1/chat/completions または /v1/messages のみ使う場合は、この API を知る必要はありません。
エンドポイント
POST https://relay.4aicode.com/v1/responses
chat/completions との違い
| 観点 | /v1/chat/completions | /v1/responses |
|---|---|---|
| 入力 | messages 配列 | input 配列(イベントストリームに近い) |
| ツール呼び出し | tool_calls / tool_messages | 組み込み function_call / function_call_output イベント |
| ストリーミングイベント | data: {...} チャンク | response.output_text.delta など名前付きイベント |
| 用途 | チャットアプリ | Codex CLI とエージェントフレームワーク |
リクエスト
POST /v1/responses HTTP/1.1
Host: relay.4aicode.com
Authorization: Bearer sk-4ai-xxxxxxxxxxxxxxxx
content-type: application/json
{
"model": "gpt-5.6-terra",
"input": [
{ "role": "user", "content": "Refactor main.go" }
],
"stream": true
}
サポートモデル
/v1/chat/completions と同じ:gpt-6-astra、gpt-6-sol、gpt-6.1-sol、gpt-6.1-terra、gpt-6-luna、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini、gpt-5.3-codex。上流でサポートされていないモデルは、中継が明示的な 400 応答を返します。
ストリーミング応答
event: response.created
data: {"response": {"id": "resp_...", ...}}
event: response.output_text.delta
data: {"delta": "package main\n"}
event: response.output_text.done
data: {}
event: response.completed
data: {"response": {...}, "usage": {...}}
非ストリーミングリクエストは単一の { response, usage } オブジェクトを返します。
関数呼び出し / ツール
tools フィールドは透過され、公式 API と同様の動作です。
event: response.output_item.added
data: {"item": {"type": "function_call", "name": "...", "arguments": "..."}}
公式プロトコルに従い、ツール結果を function_call_output として送信してください。
エラー
| HTTP | 意味 |
|---|---|
| 400 | 無効な input 形式 / model が許可リストにない |
| 401 | 無効なトークン |
| 403 | チーム停止 |
| 429 | レート制限またはクォータ超過 |
| 502 | 上流 OpenAI の不安定 |
| 503 | 上流サービスが一時的に利用不可;サービスのクールダウンとリトライ を参照 |
いつ使うか
- ✅ Codex CLI を使用(公式にこの API を使用)
- ✅ 最新 OpenAI Agents SDK を使用
- ❌ チャットボット構築 →
/v1/chat/completionsを使用