API ReferenceText APIs

OpenAI レスポンス API

このプラットフォームは、OpenAI Responses API と互換性のある統合エンドポイントを提供します。

このドキュメントはクライアント側のインテグレータを対象としており、パブリック リクエスト パス、認証方法、リクエスト パラメータ、サンプル ペイロードに焦点を当てています。チャット コンプリーションと比較した要求および応答プロトコルの違いを除けば、サポートされているモデル範囲は /docs/api-reference/text/openai-chat-api と同じです。

Overview:

  • エンドポイント: POST /v1/responses
  • 機能タイプ: 統合テキスト生成 / マルチターン入力オーケストレーション
  • 応答モード:
    • stream = falseまたは省略時:標準JSONレスポンス
    • stream = trueの場合:text/event-stream SSEレスポンス
  • プロトコル スタイル: リクエスト本文は、チャット完了 messages 最上位構造の代わりに、プライマリ フィールドとして input を使用します。

現在の範囲:

  • POST /v1/responsesのみをカバー
  • /docs/api-reference/text/openai-chat-api と比較した場合、主な違いはモデルの可用性ではなくプロトコル構造です。
  • 埋め込み、画像、オーディオなどの他の OpenAI エンドポイントはカバーされません

1. APIの概要

  • HTTPメソッド: POST
  • リクエストパス: /v1/responses
  • コンテンツタイプ: application/json
  • 応答タイプ:
    • 非ストリーミング: application/json
    • ストリーミング: text/event-stream

2. 認証とヘッダー

ヘッダーの例:

Authorization: Bearer YOUR_REACH_API_KEY
Content-Type: application/json

Authorization または x-api-key の少なくとも 1 つを指定する必要があります。

ヘッダーの詳細:

HeaderRequiredDescription
AuthorizationNoBearer sk-xxxxxx 形式のプラットフォーム API キー
x-api-keyNoこのヘッダーでプラットフォーム API キーを直接渡すこともできます。
Content-TypeYesapplication/json である必要があります

3. リクエストボディ

リクエスト本文は、一般的な OpenAI Responses API オブジェクト構造に従います。

{
  "model": "YOUR_MODEL_ID",
  "input": "Please introduce yourself in one sentence.",
  "instructions": "You are a professional technical assistant.",
  "temperature": 0.2,
  "stream": false
}

3.1 最上位パラメータ

FieldTypeRequiredDescription
modelstringYesモデルID
inputstring または array<object>Yes内容を入力します。プレーンテキストまたは構造化コンテンツブロックの配列を使用できます
instructionsstringNoシステム説明書
temperaturenumberNoサンプリング温度
top_pnumberNo核サンプリングパラメータ
max_output_tokensintegerNo出力トークンの最大数
streambooleanNoSSEストリーミング出力を返すかどうか
toolsarray<object>Noツールの定義
tool_choice文字列またはオブジェクトNoツール呼び出し戦略
parallel_tool_callsbooleanNo並列ツール呼び出しが許可されるかどうか
response_formatobjectNo構造化された出力構成
userstringNoエンドユーザー識別子

3.2 input パラメータ

input は、プレーン文字列または構造化配列として渡すことができます。一般的な形式は次のとおりです。

テキストの例:

"Please summarize the main idea of this document in one sentence."

構造化された入力例:

[
  {
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "Please describe the image."
      },
      {
        "type": "input_image",
        "image_url": "https://cdn.example.com/demo.png"
      }
    ]
  }
]

4. リクエスト例

4.1 標準の非ストリーミングリクエスト

curl -X POST "https://direct.reachapi.ai/v1/responses" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "input": "Introduce ReachAPI in one sentence.",
    "temperature": 0.2
  }'

4.2 ストリーミングリクエスト

curl -X POST "https://direct.reachapi.ai/v1/responses" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "input": "Summarize today'\''s priorities in three lines.",
    "stream": true
  }'

4.3 ツール定義を含むリクエスト

curl -X POST "https://direct.reachapi.ai/v1/responses" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "input": "Help me check the weather in Shanghai.",
    "tools": [
      {
        "type": "function",
        "name": "get_weather",
        "description": "Get weather information for a city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            }
          },
          "required": ["city"]
        }
      }
    ],
    "tool_choice": "auto"
  }'

5. 成功した応答

非ストリーミング応答の例:

{
  "id": "resp_123",
  "object": "response",
  "created_at": 1710000000,
  "model": "YOUR_MODEL_ID",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "ReachAPI is a unified AI API platform for enterprise use."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 25,
    "output_tokens": 20,
    "total_tokens": 45
  }
}

ストリーミング応答 (SSE) の例:

event: response.created
data: {"id":"resp_123","object":"response","status":"in_progress"}

event: response.output_text.delta
data: {"delta":"ReachAPI is a unified"}

event: response.output_text.delta
data: {"delta":" AI API platform for enterprise use."}

event: response.completed
data: {"id":"resp_123","status":"completed"}

6. エラー応答

OpenAI スタイルのエラーの例:

{
  "error": {
    "message": "Field `input` is required",
    "type": "invalid_request_error",
    "param": null,
    "code": "MISSING_REQUIRED_FIELD"
  }
}

一般的なシナリオ:

  • リクエスト本文に model がありません
  • リクエスト本文に input がありません
  • 無効な JSON ペイロード
  • 認証失敗

7. 互換性に関する注意事項

  • このドキュメントには、一般的に使用されるフィールドとペイロードの例がリストされています。実際のフィールド名と構造は OpenAI Responses API に従います。
  • チャット コンプリーションと比較した場合、応答 API の主な違いは入力プロトコル (input / instructions) と応答構造です。
  • 新しいまたは実験的な公式フィールドを使用する場合は、ゲートウェイで利用可能な実際の機能と照らし合わせて検証してください。

8. チャットコンプリートとの主な違い

Categoryチャットの完了Responses
Path/v1/chat/completions/v1/responses
主な入力フィールドmessagesinput + instructions
主な出力構造choices[].messageoutput[]
ストリーミングイベントchat.completion.chunkresponse.* イベント ストリーム

9. サポート対象モデルと参考価格

以下の価格は、統一価格文書から要約されたものです。プロトコルの違いを除けば、このエンドポイントは /docs/api-reference/text/openai-chat-api と同じモデル範囲をサポートします。価格は2026-04-17で確認されました。詳細な価格ルールについては、gpt.md を参照してください。

ModelInputキャッシュされた入力Output
gpt-5.4$2.50 / 1M tokens$0.25 / 1M tokens$15.00 / 1M tokens
gpt-5.3-codex$1.75 / 1M tokens$0.175 / 1M tokens$14.00 / 1M tokens
gpt-5.2$1.75 / 1M tokens$0.175 / 1M tokens$14.00 / 1M tokens
gpt-5.1-codex$1.25 / 1M tokens$0.125 / 1M tokens$10.00 / 1M tokens
gpt-5.1$1.25 / 1M tokens$0.125 / 1M tokens$10.00 / 1M tokens
gpt-5$1.25 / 1M tokens$0.125 / 1M tokens$10.00 / 1M tokens
gpt-5.4-mini$0.75 / 1M tokens$0.075 / 1M tokens$4.50 / 1M tokens
gpt-5-mini$0.25 / 1M tokens$0.025 / 1M tokens$2.00 / 1M tokens

Notes:

  • Cached input は、キャッシュ ヒット入力トークンの単価を指します。
  • モデルのリストが時間の経過とともに変更される場合は、現在有効なモデルの信頼できる情報源としてダッシュボードまたは製品構成を使用します。

10. 参考文献

On this page