Skip to main content
Anthropic Claude は非常に強力な AI 対話システムであり、プロンプトを入力するだけで、わずか数秒で流暢かつ自然な応答を生成できます。Claude Messages API は Anthropic 公式ネイティブ API 形式であり、OpenAI 互換形式(Chat Completion)とは異なり、Anthropic 独自のリクエストおよびレスポンス構造を採用しています。これにより、マルチモーダルコンテンツ入力、ツール呼び出し、深い思考(Extended Thinking)など、Claude 固有の高度な機能をより有効に活用できます。 本ドキュメントでは主に Claude Messages API 操作の使用フローを紹介します。これを利用することで、Anthropic 公式と一致するネイティブインターフェースを使用して Claude の対話機能を呼び出すことができます。

申請手順

Claude Messages API を使用するには、まず Ace Data Cloud コンソール にアクセスして API Token を取得し、控えておいてください。 まだログインまたは登録していない場合は、自動的にログインページへ移動し、登録とログインを促されます。完了後、自動的に現在のページへ戻ります。 1 つの API Token でプラットフォーム上のすべてのサービスを呼び出すことができ、サービスごとに個別で申請する必要はありません。 初回申請時には無料枠が付与され、無料で試用できます。残高が不足した場合は、コンソール で共通残高をチャージできます。
📘 完全なドキュメント:Claude Messages API →

基本的な使用方法

Claude Messages API のリクエストパスは /v1/messages であり、Anthropic 公式 API と一致しています。少なくとも以下の 3 つの必須パラメータを指定する必要があります。
  • model:使用する Claude モデルを選択します。claude-opus-5-5 は Messages API 経由でのみ提供され、100 万 Token のコンテキスト、最大 128K Token の出力をサポートし、常に適応的思考を有効にします。最新のフラッグシップは claude-fable-5-1(100 万 Token のコンテキスト、最大 128K Token の出力)です。旧 claude-fable-5 も引き続き互換性を維持しています。claude-sonnet-5-5 はネイティブ Messages シリーズインターフェースに追加されており、画像入力と適応的思考をサポートしています。その入力、出力、キャッシュ読み取りの公式参考価格は、それぞれ 100 万 Token あたり 2、10、0.20 米ドルです。
  • messages:入力メッセージの配列です。各メッセージには role(ロール)と content(内容)が含まれ、role は user と assistant をサポートしています。
  • max_tokens:最大出力 token 数であり、1 回の応答の長さを制限するために使用します。
よく使用されるオプションパラメータ:
  • system:システムプロンプトであり、モデルの動作とロールを設定するために使用します。
  • temperature:生成のランダム性です。0~1 の範囲で、値が大きいほど応答はより発散的になります。
  • stream:ストリーミング応答を使用するかどうかです。true に設定すると、逐次的に返す効果を実現できます。
  • stop_sequences:カスタム停止シーケンスです。モデルはこれらのテキストに遭遇すると生成を停止します。
  • top_p:核サンプリングパラメータであり、temperature と組み合わせて生成のランダム性を制御します。
  • top_k:確率が最も高い K 個の選択肢からのみサンプリングします。
  • tools:ツール定義であり、モデルが外部関数を呼び出せるようにします。
  • tool_choice:モデルが提供されたツールをどのように使用するかを制御します。
  • cache_control:リクエストの最後のキャッシュ可能なコンテンツブロックに自動的にキャッシュブレークポイントを作成します。具体的なコンテンツブロックに記述することもできます。

cURL の例

Python の例

呼び出し後、返される結果は以下のとおりです。
返却結果フィールドの説明:
  • id:今回のメッセージの一意な識別子です。
  • type:常に message です。
  • role:常に assistant です。
  • content:応答内容の配列です。各要素には type(例:text)および対応する内容が含まれます。
  • model:リクエストを処理するモデル名です。
  • stop_reason:停止理由です。安定した値には end_turn、max_tokens、stop_sequence、tool_use、pause_turn(現在の assistant 内容をそのまま返送して続行可能)、refusal、および model_context_window_exceeded が含まれます。
  • stop_sequence:カスタム停止シーケンスによって停止した場合、一致した停止シーケンステキストを表示します。
  • stop_details:stop_reason が refusal の場合、拒否カテゴリおよび説明が含まれる可能性があります。
  • usage:token 使用統計です。input_tokens はキャッシュされていない入力です。cache_creation_input_tokens および cache_read_input_tokens はそれぞれキャッシュ書き込みと読み取りです。output_tokens はすべての出力 token 数です。output_tokens_details.thinking_tokens が返される場合、この値は output_tokens のサブセットであるため、合計または料金を計算する際に再度加算しないでください。この明細は権威あるカウントがない場合、null となるか省略される可能性があります。
  • usage.cache_creation:オプションのキャッシュ書き込み TTL 明細です。ephemeral_5m_input_tokens と ephemeral_1h_input_tokens が含まれます。オブジェクトが存在する場合、両者の合計は cache_creation_input_tokens と等しくなります。フィールドが null または省略されている場合、現在のレスポンスには利用可能な TTL の内訳がなく、0 として解釈することはできません。
  • usage.cost:非ストリーミング応答には、Ace Data Cloud が記録したクレジット消費オブジェクトが含まれる可能性があります。amount は今回の実際の消費量、currency は計量単位、list_amount は割引前の金額(存在する場合)です。Fable 5.1 の公式キャッシュ読み取り基本価格は 100 万 Token あたり 0.25、5分および1時間のキャッシュ書き込み基本価格はそれぞれ0.25、5 分および 1 時間のキャッシュ書き込み基本価格はそれぞれ 12.50 および $20/100 万 Token です。プラットフォームの実際の価格はプラン割引に応じて換算されます。

システムプロンプト

Claude Messages API は、system フィールドを通じてシステムプロンプトを設定することをサポートしており、モデルの動作、ロール、およびコンテキストを定義するために使用します。

Python の例

system プロンプトを設定することで、Claude の役割と動作方式を正確に制御できます。

ストリーミングレスポンス

このインターフェースはストリーミングレスポンスにも対応しており、stream パラメータを true に設定すると段階的に返される効果を得られ、ウェブページでの一文字ずつの表示を実現するのに非常に適しています。

Python の例

ストリーミングレスポンスは Server-Sent Events (SSE) 形式で返され、各行は event: と data: で始まります。ストリーミングイベントの種類には以下があります:
  • message_start:メッセージの開始。メッセージの基本情報とモデル名を含みます。
  • content_block_start:コンテンツブロックの開始。
  • content_block_delta:コンテンツブロックの増分更新。新たに生成されたテキストフラグメントを含みます。
  • content_block_stop:コンテンツブロックの終了。
  • message_delta:メッセージレベルの増分更新。stop_reason と最終的な usage 情報を含みます。output_tokens_details.thinking_tokens の権威ある値は、最後の message_delta.usage からのみ読み取るべきであり、イベントをまたいで加算してはいけません。
  • message_stop:メッセージの終了。
出力結果は以下のとおりです:
ご覧のとおり、ストリーミングレスポンスの content_block_delta イベントには段階的に生成されるテキスト内容が含まれており、すべての text_delta を連結することで完全な返信を取得できます。

JavaScript の例

複数ターンの会話

複数ターンの会話機能に接続したい場合は、messages 配列内で user と assistant ロールのメッセージを交互に配置し、これまでの会話履歴をまとめて渡す必要があります。

Python の例

返却結果は以下のとおりです:
messages で完全な会話履歴を渡すことで、Claude はコンテキストに基づいて正確に回答できます。

深い思考モデル

Claude の thinking と thinking summary は異なる2つの概念です。モデルは内部推論を行えますが、API は生の思考連鎖を返しません。推論過程を表示する必要がある場合、API が返すのは処理された要約です。 現在のモデルでは adaptive thinking の使用が推奨されており、output_config.effort によって全体的な推論の投入量を制御します:
レスポンス内の thinking ブロックは次のようになります:
  • display: "summarized" は読みやすい思考要約を返します;これは生の思考連鎖ではありません。
  • display: "omitted" は thinking: "" を返しますが、後続の会話をサポートするため opaque な signature は保持されます。
  • Fable 5.1、Fable 5、Opus 5、Sonnet 5、Opus 4.8、および Opus 4.7 の display のデフォルト値は omitted です;Opus 4.6、Sonnet 4.6、およびそれ以前の thinking をサポートするモデルは、デフォルトで summarized を使用します。
  • Display は返却内容とストリーミング遅延にのみ影響し、推論を無効化せず、thinking token の課金も削減しません。
  • thinking がデフォルトで有効かどうかと display のデフォルト値は、2 つの独立した問題です。Opus 5、Sonnet 5 はデフォルトで adaptive thinking を有効にします;Opus 5 では、thinking の省略は adaptive と同等であり、output_config.effort の省略は high と同等です。Opus 4.8、4.7、および 4.6 では明示的な有効化が必要です。
  • Thinking と最終本文は max_tokens の出力予算を共有します。予算が小さすぎる場合、thinking が割り当ての大部分を占め、本文が空になるか切り詰められる可能性があります;max_tokens を増やすか、low / medium effort を使用して推論への投入量を制御してください。
  • thinking を無効化できるモデルでは、thinking: {"type":"disabled"} を渡すことができます;disabled は low、medium、または high としか組み合わせられず、xhigh / max は 400 を返します。
  • budget_tokens は、固定思考予算を依然としてサポートする旧モデルにのみ使用します。新モデルでは thinking.type=adaptive と output_config.effort を使用する必要があります;Fable 5.1 の thinking は常に有効であり、明示的に無効化することはできません。
  • マルチターン会話とツール呼び出しでは、assistant が返した完全な thinking ブロックおよび signature をそのまま返送する必要があります;signature を変更または自ら生成しないでください。
  • 一部の互換ルーティングでは redacted_thinking または thinking の明示的な無効化を損失なく処理できません。この場合、リクエストの意味を黙って破棄または変更するのではなく、パラメータエラーが返されます。
ストリーミングリクエストでは、summarized は thinking_delta を生成します;omitted は thinking_delta を生成せず、thinking ブロックのライフサイクルと signature_delta のみを保持します。

ビジョンモデル

Claude はマルチモーダル入力をサポートしており、テキストと画像を同時に処理できます。Messages API では、content を配列形式に設定し、画像コンテンツブロックを渡すことでビジョン機能を使用できます。

Base64 エンコード画像の使用

URL 画像の使用

cURL の例

サポートされる画像形式には、image/jpeg、image/png、image/gif、image/webp が含まれます。

ドキュメントと PDF

PDF は document コンテンツブロックを使用し、Base64 と URL の 2 種類の安定したソースをサポートします。Base64 ソースは必ず application/pdf を使用する必要があります:
URL ソースは {"type":"url","url":"https://example.com/report.pdf"} と記述します。document は text/plain と text/image ブロックから構成される content ソースもサポートします;オプションフィールドには title、context、および citations が含まれます。Files API の file_id ソースは独立した beta 機能に属し、本インターフェースの安定した契約には含まれません。

プロンプトキャッシュ

トップレベルの cache_control は、最後のキャッシュ可能なブロックにキャッシュブレークポイントを自動的に配置します:
位置を正確に制御する必要がある場合は、同じ cache_control を text、image、document、tool_use、tool_result コンテンツブロック、またはツール定義にも記述できます。ttl は 5m(デフォルト)と 1h をサポートします;usage.cache_creation_input_tokens と usage.cache_read_input_tokens を通じて、キャッシュの書き込みとヒットを判断してください。 レスポンスが usage.cache_creation を提供する場合、ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens です。cache_creation が null または省略されている場合、キャッシュ書き込みの合計量のみがあり、権威ある TTL 内訳がないことを示します;この場合、いずれかの bucket を既知の 0 と見なさず、課金と合計量は引き続き aggregate フィールドを基準とします。 返却結果の例:

ツール呼び出し(Tool Use)

Claude Messages API はネイティブでツール呼び出し機能をサポートしており、必要に応じてモデルが事前定義したツール/関数を呼び出すことを可能にします。

Python の例

モデルがツールを呼び出すと判断した場合、返却結果の content には tool_use タイプのコンテンツブロックが含まれます。
stop_reason が tool_use であることに注意してください。これは、モデルがツールを呼び出す必要があることを示します。この結果を受け取った後、ツール関数を実行し、その結果を tool_result の形式でモデルに返す必要があります。
モデルはツールから返された結果に基づいて、最終的な自然言語の応答を生成します。

Chat Completion API との違い

Ace Data Cloud は2種類の Claude API 形式を提供しており、両者の主な違いは以下のとおりです。 Messages API の usage.input_tokens はキャッシュされていない入力のみを表し、cache_read_input_tokens と cache_creation_input_tokens は独立した課金バケットです。3つはそれぞれ対応する料金に基づいて計算されます。 システムがすでに OpenAI 形式の API に接続されている場合は、Chat Completion API を使用してシームレスに切り替えることができます。Claude のすべてのネイティブ機能を使用する必要がある場合は、Messages API の使用を推奨します。

エラー処理

公開インターフェースのエラー応答には Ace Data Cloud プラットフォームの envelope が使用されます。error.code は安定したエラーコード、error.message は説明、trace_id はリクエストの調査に使用されます。一般的な HTTP ステータスには以下が含まれます。
  • 400:リクエストパラメータまたはプロトコルの内容が無効です。
  • 401:認証トークンが無効、欠落、または期限切れです。
  • 403:アクセス禁止、残高不足、またはクォータ制限です。
  • 404:API またはモデルが存在しません。
  • 413:リクエストボディが大きすぎます。
  • 429:リクエストが多すぎます。
  • 500 / 503 / 504:サービスエラー、一時的に利用不可、または処理タイムアウトです。

エラー応答の例

このエラー構造は Ace Data Cloud のランタイム契約であり、Anthropic 公式のエラー envelope と同一ではありません。HTTP ステータスと error.code に従って処理してください。

結論

本ドキュメントを通じて、Anthropic ネイティブ形式で Claude Messages API を使用して Claude の対話機能を呼び出す方法を理解しました。Messages API は、基本的な対話、システムプロンプト、ストリーミング応答、複数ターンの対話、深い思考、視覚理解、PDF、プロンプトキャッシュ、ツール呼び出しなどの豊富な機能をサポートしています。ご不明な点がございましたら、いつでも当社の技術サポートチームまでお問い合わせください。