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 について

本サービスが返す idnxrsp_ で始まり、OpenAI 公式の resp_ 形式とは異なります。この ID は署名され、お客様の組織に紐づけられており、組織間でセッションデータを分離するために使用されます。

利用時の注意点:

  • そのまま返送してください。 返された idprevious_response_idGETDELETE にそのまま指定すれば、サービス側でモデル提供元の元の 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 利用可能な経路がありません。しばらくしてから再試行してください。

エラーコードの一覧はエラーコードを参照してください。