APIは予測可能なHTTPエラーコード形式に従います:
400 - invalid_request_error: リクエストの形式または内容に問題がありました。このエラータイプは、このセクションに記載されていない他の4XXステータスコードにも使用される場合があります。
401 - authentication_error: APIキーに問題があります(例えば、形式が不正、失効済み、または期限切れです。キーの有効期限を参照してください)。Claude Platform on AWSでは、AWS認証情報またはSigV4署名の問題を示す場合もあります。
402 - billing_error: 請求または支払い情報に問題があります。Claude Consoleで、またはClaude Platform on AWSを使用している場合はAWS Marketplaceで、支払いの詳細を確認してください。
403 - permission_error: APIキーに指定されたリソースを使用する権限がありません。Claude Consoleで組織のアクセスとワークスペースの設定を確認してください。
404 - not_found_error: リクエストされたリソースが見つかりませんでした。リクエストURLのエンドポイントパスとリソースIDを確認してください。
409 - conflict_error: リクエストがリソースの現在の状態と競合しています。例えば、リソースが同時に変更された、または一意である必要がある値がすでに使用されています。競合を解決してから、リクエストを再試行してください。
413 - request_too_large: リクエストが許可されている最大バイト数を超えています。エンドポイントごとの最大値については、リクエストサイズの制限を参照してください。
429 - rate_limit_error: アカウントがレート制限に達しました。
500 - api_error: Anthropicのシステム内部で予期しないエラーが発生しました。指数バックオフでリクエストを再試行してください。エラーが続く場合は、リクエストIDを添えてサポートにお問い合わせください。
504 - timeout_error: 処理中にリクエストがタイムアウトしました。長時間実行されるリクエストには、ストリーミングMessages APIの使用を検討してください。その他のオプションについては、長時間のリクエストを参照してください。
529 - overloaded_error: APIが一時的に過負荷状態です。
529エラーは、APIがすべてのユーザーにわたって高いトラフィックを経験しているときに発生する可能性があります。
まれなケースとして、組織の使用量が急激に増加した場合、APIのアクセラレーション制限により429エラーが表示されることがあります。アクセラレーション制限に達しないようにするには、トラフィックを徐々に増やし、一貫した使用パターンを維持してください。
公式SDKは、一時的な障害(接続エラー、レート制限、5xxサーバーエラーなど)を指数バックオフで自動的に再試行します。デフォルトでは2回再試行し、retry-afterヘッダーが存在する場合はそれに従います。各SDKクライアントは、この動作を設定または無効化するための最大再試行回数オプションを受け付けます。
server-sent events(SSE)経由でストリーミングレスポンスを受信する場合、APIが200レスポンスを返した後にエラーが発生する可能性があります。その場合、エラー処理はこれらの標準的なメカニズムに従いません。ストリーム途中のエラーの形式については、エラーイベントを参照してください。
APIはリクエストサイズの制限を適用します:
これらの制限を超えると、413 request_too_largeエラーを受け取ります。直接のClaude APIでは、リクエストがAPIサーバーに到達する前にCloudflareがこのエラーを返します。
APIは常にエラーをJSONとして返し、トップレベルのerrorオブジェクトには常にtypeとmessageの値が含まれます。レスポンスには、追跡とデバッグを容易にするためのrequest_idフィールドも含まれます。例えば:
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "The requested resource could not be found."
},
"request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}バージョニングポリシーに従い、これらのオブジェクト内の値は拡張される可能性があり、typeの値は時間とともに増える可能性があります。
公式SDKは、生のJSONを返す代わりに、これらのエラーに対して型付き例外を発生させます。クラス名と名前空間は言語によって異なります。例えば、404はPythonではanthropic.NotFoundError、RubyではAnthropic::Errors::NotFoundError、Javaではcom.anthropic.errors.NotFoundExceptionとして現れ、Goでは単一の*anthropic.Error値(StatusCodeで分岐)として現れます。エラーメッセージの文字列マッチングではなく、SDKの型付きクラスをキャッチし、最も具体的なクラスから順に処理してください。各SDKのページには、完全な例外階層が記載されています:
すべてのAPIレスポンスには、一意のrequest-idヘッダーが含まれます。このヘッダーにはreq_018EeWyXxfu5pfWkrYcMdjWGのような値が含まれます。同じ識別子は、エラーレスポンスボディのrequest_idフィールドとしても表示されます。特定のリクエストについてサポートに問い合わせる際は、問題を迅速に解決できるよう、このIDを含めてください。
Claude Platform on AWSでは、レスポンスに2つのリクエストIDが含まれます:AWSリクエストID(x-amzn-requestid、プライマリ、CloudTrailでインデックス化)とAnthropicリクエストID(request-id、セカンダリ)です。CloudTrailでの検索にはAWSリクエストIDを、Anthropicのサポートチケットには AnthropicリクエストIDを使用してください。
PythonおよびTypeScript SDKは、トップレベルのレスポンスオブジェクトの_request_idプロパティとしてリクエストIDを公開します。C#、Go、Java、PHPのSDKは、生のレスポンスアクセサを通じてこれを公開しており、他のレスポンスヘッダーも読み取ることができます。Claude Platform on AWSでは、生のレスポンスアクセサを使用してAWSリクエストID(x-amzn-requestid)も読み取ってください:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(f"Request ID: {message._request_id}")他の言語でのClaude Platform on AWSのリクエストIDの例については、リクエストIDを参照してください。
長時間実行されるリクエスト、特に10分を超えるリクエストには、ストリーミングMessages APIまたはMessage Batches APIの使用を検討してください。
ストリーミングMessages APIまたはMessage Batches APIを使用せずに、大きなmax_tokens値を設定することは避けてください:
直接API統合を構築している場合、TCPソケットのkeep-aliveを設定することで、一部のネットワークにおけるアイドル接続タイムアウトの影響を軽減できます。
SDKは、非ストリーミングのMessages APIリクエストが10分のタイムアウトを超えないことを検証します。また、TCP keep-aliveのソケットオプションも設定します。
イベントを段階的に処理する必要がない場合、SDKがストリームを消費し、非ストリーミング呼び出しが返すものと同一の完全なMessageオブジェクトを返すことができます:
client = anthropic.Anthropic()
with client.messages.stream(
max_tokens=128000,
messages=[{"role": "user", "content": "Write a detailed analysis..."}],
model="claude-sonnet-5",
) as stream:
message = stream.get_final_message()
print(next(block.text for block in message.content if block.type == "text"))詳細については、メッセージのストリーミングを参照してください。
Claude 4.6以降のモデルおよびClaude Mythos Previewは、アシスタントメッセージのプレフィルをサポートしていません。これらのモデルのいずれかに、プレフィルされた最後のアシスタントメッセージを含むリクエストを送信すると、400 invalid_request_errorが返されます:
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "This model does not support assistant message prefill. The conversation must end with a user message."
}
}代わりに、サポートされているモデルでは構造化出力、システムプロンプトの指示、またはoutput_config.formatを使用してください。
最新のアシスタントメッセージに、APIに送り返される前に編集、並べ替え、フィルタリング、または再構築されたthinkingまたはredacted_thinkingブロックが含まれている場合、リクエストは400 invalid_request_errorを返します。エラーメッセージは、問題のあるブロックの位置(例えば、messages.1.content.0)で始まり、以下を含みます:
`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified. These blocks must remain as they were in the original response.ツール使用では、アシスタントターンのすべてのthinkingおよびredacted_thinkingブロックを、thinkingフィールドが空のブロックも含めて、受け取ったとおりに正確に返す必要があります。思考ブロックは変更せずに返し、アプリケーションが再送信前にコンテンツブロックをタイプでフィルタリングする場合は、thinkingとredacted_thinkingの両方を含めてください。思考のトラブルシューティング、思考ブロックの保持、およびClaude Fable 5とClaude Mythos 5での思考出力を参照してください。
Claude 4.7以降のモデルでは拡張思考が削除されました。これらのモデルのいずれかにthinking: {"type": "enabled"}を送信すると、400 invalid_request_errorが返されます:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.代わりに適応思考を使用してください。適応思考への移行にはパラメータのマッピングが示されており、思考のトラブルシューティングには症状から始める修正方法が記載されています。
拡張思考のみをサポートするモデル(Claude 4.5以前のモデル)は、thinking: {"type": "adaptive"}を400 invalid_request_errorで拒否します:
adaptive thinking is not supported on this modelこれらのモデルではthinking: {"type": "enabled", "budget_tokens": N}を使用してください。設定については拡張思考を、症状から始める修正方法については思考のトラブルシューティングを参照してください。
Claude Fable 5、Claude Mythos 5、およびClaude Mythos Previewでは、思考は常にオンです。これらのモデルのいずれかにthinking: {"type": "disabled"}を送信すると、400 invalid_request_errorが返されます:
"thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking.Claude Fable 5とClaude Mythos 5では、エラーメッセージ自体が提案する"thinking.type.enabled"も拒否されます。thinkingパラメータを省略すると、リクエストは適応思考で実行されます。思考をオフにせずに思考コンテンツをレスポンスから除外するには、思考設定でdisplay: "omitted"を設定してください。思考のトラブルシューティングを参照してください。
Claude Platform on AWSへのすべてのリクエストが"Outbound web identity federation is disabled for your account"を返す場合、AWSアカウントごとに1回aws iam enable-outbound-web-identity-federationを実行してください。詳細については、アウトバウンドWebアイデンティティフェデレーションの有効化を参照してください。
認証済みのPOSTリクエストを送信して、Claude Codeのルーチンセッションをオンデマンドで開始します。
APIの不正使用を軽減し、容量を管理するために、組織がClaude APIを使用できる量に制限が設けられています。
テキスト、ツール使用、拡張思考のデルタを含むMessages APIのレスポンスを、server-sent eventsで段階的にストリーミングします。
Was this page helpful?