Login
Back to Blog
/v1/chat/completions・/v1/responses・/v1/messages の違い:AI API の正しいエンドポイント選び

/v1/chat/completions・/v1/responses・/v1/messages の違い:AI API の正しいエンドポイント選び

C
Crazyrouter Team
June 4, 2026
1 views日本語Tutorial
Share:

/v1/chat/completions vs /v1/responses vs /v1/messages: どのAI APIエンドポイントを使うべき?#

AI APIゲートウェイにおける一般的なサポート問題は、APIキーでもなく、モデルでもなく、SDKでもありません。エンドポイントです。

ユーザーが存在するモデルを選択しても、リクエストを間違ったエンドポイントに送信してしまいます。結果は次のようになります:

  • モデル利用不可;
  • サポートされていないエンドポイント;
  • 無効なリクエストボディ;
  • ツール呼び出しが機能しない;
  • ストリーミング形式の不一致;
  • Claudeモデルはあるツールでは動作するが別のツールでは失敗。

このガイドでは、3つのエンドポイントファミリーの違いを説明します:

text
/v1/chat/completions
/v1/responses
/v1/messages

簡易版:

エンドポイントネイティブエコシステム最適な用途リクエストスタイル
/v1/chat/completionsOpenAI互換のレガシー/現在のチャットほとんどのアプリ、SDK、LiteLLM、Cursorスタイルツール、シンプルなチャットmessages: [{role, content}]
/v1/responsesより新しいOpenAI Responses APIツール使用、マルチモーダル、推論アイテム、より新しいOpenAIスタイルのエージェントinputtools、構造化応答アイテム
/v1/messagesAnthropic Claude APIClaude ネイティブSDKとClaudeスタイルのアプリmessagesとトップレベルのsystem、Anthropicスキーマ

クライアントが「OpenAI互換」と言う場合は、以下から始めてください:

text
https://crazyrouter.com/v1/chat/completions

またはベースURLを次のように設定:

text
https://crazyrouter.com/v1

SDKが/chat/completionsを追加します。

ツールが特にOpenAI Responses APIを必要とする場合は、/v1/responsesを使用します。

ツールがAnthropicネイティブでClaudeのMessages APIを期待する場合は、/v1/messagesを使用します。

最も一般的な間違い#

最も一般的な間違いは、モデルファミリーとエンドポイントファミリーを混ぜることです。

例えば、ClaudeモデルはOpenAI互換ゲートウェイを通じて公開できますが、それはリクエストボディがAnthropicネイティブの/v1/messagesスキーマを使用すべきということを自動的に意味しません。

同様に、Anthropicネイティブのリクエストを/v1/messagesに送信するツールは、モデル名を変更するだけでは修正できません。エンドポイントとリクエストボディが一致する必要があります。

このように考えてください:

text
モデル名 + エンドポイント + リクエストスキーマが一致する必要があります

この3つのうち1つが間違っていると、モデル自体が正常に動作していてもモデルが利用不可に見える場合があります。

/v1/chat/completionsとは#

/v1/chat/completionsは古典的なOpenAI互換チャットエンドポイントです。

典型的なリクエストは次のようになります:

bash
curl https://crazyrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $CRAZYROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Explain API endpoints in one paragraph."}
    ]
  }'

以下の場合に/v1/chat/completionsを使用してください:

  • アプリがOpenAI互換APIをサポートしていると述べている;
  • 設定がOPENAI_BASE_URLまたはbase_urlを要求している;
  • リクエストボディがrolecontentを持つmessagesを使用している;
  • 一般的なOpenAI SDK互換モードを使用している;
  • Cursorスタイルクライアント、LiteLLMスタイルルーター、FastGPTスタイルアプリ、または多くのチャットUIなどのツールを設定している。

多くのユーザーにとって、これが最も安全なデフォルトエンドポイントです。

/v1/responsesとは#

/v1/responsesはより新しいOpenAI Responses APIエンドポイントです。

より一般的な応答オブジェクトの周りに設計されており、以下のようなものを表現できます:

  • テキスト出力;
  • ツール呼び出し;
  • マルチモーダル入力;
  • 推論アイテム;
  • 構造化出力;
  • エージェントのようなワークフロー。

簡略化されたリクエストは次のようになります:

bash
curl https://crazyrouter.com/v1/responses \
  -H "Authorization: Bearer $CRAZYROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "input": "Explain the difference between chat completions and responses."
  }'

以下の場合に/v1/responsesを使用してください:

  • ツールがOpenAI Responses APIを使用していると明示的に述べている;
  • 設定がchat.completionsではなくresponsesを言及している;
  • リクエストボディがmessagesではなくinputを使用している;
  • モデル/プロバイダールートがResponses APIの動作をサポートしている;
  • より新しいOpenAIスタイルのツールまたは推論出力形式が必要です。

ゲートウェイがその変換を明示的に文書化している場合を除き、Chat Completionsボディを/v1/responsesに送信しないでください。

/v1/messagesとは#

/v1/messagesはAnthropicのMessages APIスタイルのエンドポイントです。

典型的なClaudeネイティブリクエストは次のようになります:

bash
curl https://crazyrouter.com/v1/messages \
  -H "Authorization: Bearer $CRAZYROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Explain Claude Messages API."}
    ]
  }'

以下の場合に/v1/messagesを使用してください:

  • クライアントはAnthropicネイティブ;
  • SDKはClaude Messages API形式を期待;
  • リクエストが配列内のシステムメッセージではなくトップレベルのsystemを持つ;
  • リクエストがAnthropic固有のコンテンツブロックまたはツールスキーマを必要とする;
  • ドキュメントが明示的に/v1/messagesを呼び出すように述べている。

すべてのClaudeモデルが/v1/messagesで呼び出されるべきだと仮定しないでください。OpenAI互換ゲートウェイまたはSDKを使用している場合、Claudeモデルは代わりに/v1/chat/completionsを通じて呼び出される場合があります。

エンドポイント間違いがモデルを利用不可に見させる理由#

モデルが失敗すると、ユーザーはモデルがダウンしていると仮定することがよくあります。しかし多くの場合、モデルは問題なく、リクエスト形式が間違っています。

一般的な不一致の例:

間違い発生すること修正方法
messagesチャットボディを/v1/responsesに送信無効なリクエストボディまたは無視されたフィールド/v1/chat/completionsを使用するか、ボディをinputに変更
Anthropicのsystem + messagesボディを/v1/chat/completionsに送信スキーマの不一致/v1/messagesを使用するか、OpenAIメッセージ形式に変換
OpenAI SDKで/v1/messagesを使用SDKが間違ったパスを追加するか、間違った応答を解析する場合があるOpenAI互換ベースURLをチャットコンプリーションで使用
ベースURLで/v1を欠落404またはルート不明ベースURLをhttps://crazyrouter.com/v1に設定
/chat/completionsをベースURLに追加してSDKが再び追加/chat/completions/chat/completionsのような二重パスベースURLは通常/v1で終わるべき
APIエンドポイントにUTMパラメータを追加認証/ルーティングエラーUTMはWebサイトリンクにのみ属する

ベースURLとフルエンドポイント#

多くのツールはフルエンドポイントではなくベースURLを要求します。

正しいベースURL:

text
https://crazyrouter.com/v1

次にSDKが呼び出す:

text
https://crazyrouter.com/v1/chat/completions

ほとんどのSDKにとって間違ったベースURL:

text
https://crazyrouter.com/v1/chat/completions

なぜですか? SDKが再度/chat/completionsを追加する場合があるからです。

ルール:

  • フィールドがbase_urlと呼ばれている場合は、/v1を使用します。
  • フィールドがendpointと呼ばれ、フルURLを要求する場合は、ツールが必要とするフルパスを使用します。

どのエンドポイントを選ぶべき?#

この決定木を使用してください:

  1. ツールが「OpenAI互換API」と述べていますか?
    /v1/chat/completionsまたはベースURLhttps://crazyrouter.com/v1を使用します。

  2. ツールが特に「Responses API」と述べていますか?
    /v1/responsesを使用します。

  3. ツールはAnthropic SDKまたはClaudeのMessages APIを使用しますか?
    /v1/messagesを使用します。

  4. 確実でありませんか?
    ほとんどのサードパーティクライアントがそれをサポートしているので、/v1/chat/completionsから始めてください。

推奨されるCrazyrouterの設定#

ほとんどのOpenAI互換ツール向け:

text
API Key: あなたのCrazyrouter APIキー
Base URL: https://crazyrouter.com/v1
Model: Cazyrouterモデルリストからモデルを選択

グローバルルートが不安定な地域のユーザー向け:

text
Base URL: https://cn.crazyrouter.com/v1

ユーザー向けリンクはUTMトラッキングを使用できます:

text
https://crazyrouter.com/models?utm_source=blog&utm_medium=article&utm_campaign=api_endpoints

APIエンドポイントはそうあるべきではありません:

text
https://api-endpoint.example.invalid/v1?utm_source=blog

クイックデバッグチェックリスト#

「モデル利用不可」と報告する前に、これら5つのことを確認してください:

  1. モデル名はモデルリストに表示される通りに正確に綴られていますか?
  2. エンドポイントファミリーは正しいですか:チャットコンプリーション、レスポンス、またはメッセージ?
  3. リクエストボディはそのエンドポイントのスキーマと一致していますか?
  4. ベースURLはちょうど/v1ですか、それを欠落していたり、エンドポイントパスを複製していたりしていませんか?
  5. 正しいSDKモードを使用していますか:OpenAI互換またはAnthropicネイティブ?

最終的な推奨#

一般的なアプリ統合を構築している場合は、/v1/chat/completionsから始めてください。これは最も広い互換性パスです。

クライアントまたはワークフローがResponses APIを明示的に必要とする場合は、/v1/responsesを使用します。

Anthropicネイティブツールを使用している場合は、/v1/messagesを使用します。

ほとんどのエンドポイント問題は、このルールを思い出すと消えます:

text
OpenAI互換クライアント → /v1/chat/completions
OpenAI Responsesクライアント → /v1/responses
Anthropicネイティブクライアント → /v1/messages

モデルが存在するが利用不可に見える場合は、モデル名だけを変更しないでください。最初にエンドポイントとリクエストスキーマを確認してください。

Implementation Guides

Topics

Tutorial

Related Posts

Gemini CLI ユーザーガイド - ターミナルで使う Google AITutorial

Gemini CLI ユーザーガイド - ターミナルで使う Google AI

Google のオープンソース コマンドライン AI ツール「Gemini CLI」のインストールと設定に関する完全ガイド。プロキシの設定方法、組み込みツールの使い方、Gemini 2.5 Pro を使ったワークフロー自動化について解説します。

Jan 24
Claude Code インストールおよび使用ガイド - AI プログラミングアシスタントのセットアップTutorial

Claude Code インストールおよび使用ガイド - AI プログラミングアシスタントのセットアップ

Claude Code(AI プログラミングアシスタント)のインストールと設定を行うための完全ガイド。Node.js のセットアップ方法、API トークンの設定方法、ターミナルで AI と一緒にコーディングを始める手順を解説します。

Jan 24
GPT-5 と GPT-5.2 に API 経由でアクセスする方法 - 完全開発者ガイドTutorial

GPT-5 と GPT-5.2 に API 経由でアクセスする方法 - 完全開発者ガイド

Crazyrouter の統合 API を通じて、OpenAI の最新モデルである GPT-5、GPT-5.2、そして o3-pro にアクセスする方法を解説します。Python、Node.js、curl のステップバイステップ例付き。

Jan 23
Doubao Seed Code:ByteDance の AI コード生成モデル - 完全 API ガイドTutorial

Doubao Seed Code:ByteDance の AI コード生成モデル - 完全 API ガイド

ByteDance の強力な AI コード生成モデル「Doubao Seed Code」の使い方を解説。Python・Node.js のサンプル付き、API 完全チュートリアルと料金比較。

Jan 26
Text-Embedding-3-Small API チュートリアル - OpenAI 埋め込みモデルガイドTutorial

Text-Embedding-3-Small API チュートリアル - OpenAI 埋め込みモデルガイド

OpenAI の text-embedding-3-small API を用いたセマンティック検索、RAG システム、類似度マッチングの完全ガイド。Python・Node.js のサンプルコードや料金比較を含む。

Jan 26
GPT-image-2 で AI ミーム生成 & ぬりえブック制作 — 楽しくて本当に稼げるプロジェクトTutorial

GPT-image-2 で AI ミーム生成 & ぬりえブック制作 — 楽しくて本当に稼げるプロジェクト

Crazyrouter API 経由の GPT-image-2 で AI ミームジェネレーターとぬりえページ制作ツールを構築。楽しく収益化しやすい2つのプロジェクトを完全コード付きで解説。

May 2