最初のリクエストの解説
Messages呼び出しを行ごとに解説します。各フィールドの役割と返される内容を説明します。
クイックスタートではレスポンスを取得できます。このページでは各部分の意味を説明し、次のリクエストを自分で書けるようにします。
リクエスト
curl https://aiprimetech.io/v1/messages \
-H "x-api-key: $CLAUDEAPIKEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
| 項目 | 必須 | 役割 |
|---|---|---|
model | はい | 実行するモデル。次の一覧にあるIDと /v1/models 完全に一致する必要があります。 |
max_tokens | はい | 厳格な上限を設定する対象は 出力です。モデルは文の途中でも、この上限に達すると停止します。これはコストを制御するための値であり、目標値ではありません。 |
messages | はい | これまでの会話を古い順に並べたものです。各項目には role (user または assistant)と content. |
system | いいえ | 会話全体に適用する指示です。最上位のフィールドであり、次の値を持つメッセージではありません: role: system. |
temperature | いいえ | 0〜1。値が低いほど出力が一定になります。理由がなければ未設定のままにしてください。 |
stream | いいえ | true は、単一のJSON本文ではなく、サーバー送信イベントを返します。参照先: ストリーミング. |
レスポンス
{
"id": "msg_01ABC...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [{"type": "text", "text": "Hello! How can I help?"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 9, "output_tokens": 12}
}
contentは配列です。文字列ではありません。テキストの格納先はcontent[0].textです。これを文字列として扱うことが、最もよくあるクライアント側のバグです。stop_reasonは、生成が終了した理由を示します:end_turn(完了)、max_tokens(設定した上限に到達し、応答が途中で切れた)、stop_sequence、またはtool_use.usageが課金の基準です。ログに記録してください。コストの帰属を判断するための唯一の信頼できる根拠です。
もし
stop_reason は max_tokensの場合、回答は途中で切れています。引き上げる設定は max_tokens です。または、より短い回答を求めてください。むやみに再試行しないでください。途中で切れた出力にも料金がかかります。複数ターンの会話
APIは状態を保持しません。会話を続けるには、モデルの過去の応答も含めて履歴全体を再送します。
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "And its population?"}
]
}
毎ターン履歴を再送するため、会話が長くなるほど入力トークン数が増え、料金も増加します。長いエージェントセッションが高額になるのは、このためです。 プロンプトキャッシュ と コンテキスト管理 はいずれも、この問題に直接対処します。