Responses API
POST /v1/responses
OpenAI Responses API 互換のエンドポイントです。ステートフルなマルチターン対話、推論モデル、ツール呼び出しに対応しています。リクエストとレスポンスはバイト単位でそのまま透過されるため、公式パラメータをそのまま利用でき、変換は不要です。
Codex CLI や OpenAI Agents SDK など、Responses API ベースのクライアントは base_url を本サービスに向けるだけで利用できます。
/v1/chat/completionsとの違い:Responses API はprevious_response_idによりサーバー側でコンテキストを連結するため、毎ターン履歴全体を再送する必要がありません。推論モデルでは思考過程のコンテキストも保持されます。単発の質問のみであれば 基础文本对话 の方がシンプルです。
エンドポイント
| メソッド | パス | 説明 |
|---|---|---|
POST |
/v1/responses |
レスポンスを作成 |
GET |
/v1/responses/{response_id} |
ID でレスポンスを取得 |
DELETE |
/v1/responses/{response_id} |
レスポンスを削除 |
POST |
/v1/responses/compact |
コンテキストを圧縮(Codex が使用) |
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model |
string | はい | モデル ID。例:gpt-5.5 / gpt-5.6-sol。 |
input |
string | array | はい | 入力内容。文字列は単発の質問、配列は複数メッセージやツール実行結果を指定します。 |
instructions |
string | いいえ | システム指示。chat インターフェースの system メッセージに相当します。 |
max_output_tokens |
integer | いいえ | 生成する最大トークン数。 |
previous_response_id |
string | いいえ | 前ターンの id。マルチターンのコンテキスト連結に使用します。詳細は後述。 |
stream |
boolean | いいえ | ストリーミング(SSE)で返すかどうか。既定値は false。 |
tools |
array | いいえ | 呼び出し可能なツール(function calling)。 |
tool_choice |
string | object | いいえ | ツール選択の方針:auto / none / 特定のツール。 |
reasoning |
object | いいえ | 推論設定。例:{"effort": "low"}。推論モデルのみ有効。 |
temperature |
number | いいえ | サンプリング温度。 |
store |
boolean | いいえ | レスポンスをサーバー側に保持するかどうか。既定値は true。 |
リクエスト例
cURL
curl https://api.aiin1.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.5",
"input": "こんにちは、自己紹介をお願いします"
}'Python
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.aiin1.ai/v1",
)
response = client.responses.create(
model="gpt-5.5",
input="こんにちは、自己紹介をお願いします",
)
print(response.output_text)Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.aiin1.ai/v1",
});
const response = await client.responses.create({
model: "gpt-5.5",
input: "こんにちは、自己紹介をお願いします",
});
console.log(response.output_text);マルチターン対話
前ターンで返された id を次のリクエストの previous_response_id に指定すると、サーバー側でコンテキストが自動的に連結されます。履歴メッセージを再送する必要はありません。
first = client.responses.create(
model="gpt-5.5",
input="私の名前は太郎です",
)
second = client.responses.create(
model="gpt-5.5",
input="私の名前は何ですか?",
previous_response_id=first.id, # 前ターンを連結
)
print(second.output_text) # あなたの名前は太郎ですレスポンス
| フィールド | 型 | 説明 |
|---|---|---|
id |
string | 本レスポンスの一意な ID。nxrsp_ で始まります。previous_response_id や ID による取得に使用します。 |
object |
string | 固定値 response。 |
created_at |
integer | Unix タイムスタンプ。 |
model |
string | 実際に使用されたモデル。 |
status |
string | completed / incomplete / failed。 |
output |
array | 出力項目のリスト。メッセージやツール呼び出しなどを含みます。 |
output_text |
string | 連結済みのプレーンテキスト出力(SDK が提供する簡易フィールド)。 |
usage |
object | トークン使用量:input_tokens / output_tokens / total_tokens。 |
{
"id": "nxrsp_...",
"object": "response",
"created_at": 1730000000,
"model": "gpt-5.5",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [{ "type": "output_text", "text": "こんにちは!私は..." }]
}
],
"usage": { "input_tokens": 12, "output_tokens": 28, "total_tokens": 40 }
}response_id について
本サービスが返す id は nxrsp_ で始まり、OpenAI 公式の resp_ 形式とは異なります。この ID は署名され、お客様の組織に紐づけられており、組織間でセッションデータを分離するために使用されます。
利用時の注意点:
- そのまま返送してください。 返された
idをprevious_response_id、GET、DELETEにそのまま指定すれば、サービス側でモデル提供元の元の ID に自動的に復元されます。 - ID を自分で組み立てたり書き換えたりしないでください。
400 invalid_request_errorが返ります。 - ID を組織をまたいで使用することはできません。 他組織の ID を使用すると
403 permission_errorが返ります。 - OpenAI 公式の ID と一致すると想定しないでください。公式 API と本サービスの両方に接続しているシステムでは、両者の ID に互換性はありません。
/compact について
POST /v1/responses/compact は長い対話履歴を圧縮するためのエンドポイントです。主に Codex CLI がセッションのターン間で自動的に呼び出すため、通常は手動でリクエストする必要はありません。
一部の回線ではこのエンドポイントが利用できません。その場合、本サービスは自動的にフォールバックし、通常の Responses 処理で履歴の要約を生成して返します。これにより Codex の長時間セッションが中断されません。フォールバックはクライアントから透過的で、レスポンス構造も同一です。
エラーコード
| ステータス | type |
説明 |
|---|---|---|
400 |
invalid_request_error |
response_id の形式が不正、またはリクエストボディが不正です。 |
402 |
billing_error |
残高不足、または未払いがあります。 |
403 |
permission_error |
response_id が現在の組織に属していない、または API キーが IP ホワイトリストを通過していません。 |
403 |
subscription_error |
サブスクリプションの状態が異常です。 |
503 |
overloaded_error |
利用可能な経路がありません。しばらくしてから再試行してください。 |
エラーコードの一覧はエラーコードを参照してください。