APIは予測可能なHTTPエラーコード形式に従います。
400 - invalid_request_error:リクエストの形式または内容に問題がありました。このエラータイプは、このセクションに記載されていない他の4XXステータスコードにも使用される場合があります。
401 - authentication_error:APIキーに問題があります。AWS上のClaude Platformでは、AWS認証情報またはSigV4署名に問題があることを示す場合もあります。
402 - billing_error:請求または支払い情報に問題があります。Claude Consoleで支払い情報を確認してください。AWS上のClaude Platformを使用している場合は、AWS Marketplaceで確認してください。
403 - permission_error:APIキーに指定されたリソースを使用する権限がありません。
404 - not_found_error:リクエストされたリソースが見つかりませんでした。
413 - request_too_large:リクエストが許可される最大バイト数を超えています。エンドポイントごとの上限については、リクエストサイズの制限を参照してください。
429 - rate_limit_error:アカウントがレート制限に達しました。
500 - api_error:Anthropicのシステム内部で予期しないエラーが発生しました。
504 - timeout_error:処理中にリクエストがタイムアウトしました。長時間実行されるリクエストにはストリーミングの使用を検討してください。
529 - overloaded_error:APIが一時的に過負荷状態です。
529エラーは、すべてのユーザーにわたってAPIのトラフィックが高い場合に発生する可能性があります。
まれに、組織の使用量が急激に増加した場合、APIのアクセラレーション制限により429エラーが表示されることがあります。アクセラレーション制限に達しないようにするには、トラフィックを徐々に増やし、一貫した使用パターンを維持してください。
SSE経由でストリーミングレスポンスを受信する場合、200レスポンスを返した後にエラーが発生する可能性があり、その場合のエラー処理はこれらの標準的なメカニズムに従いません。
APIは最適なパフォーマンスを確保するためにリクエストサイズの制限を適用します。
これらの制限を超えると、413 request_too_largeエラーが返されます。直接のClaude APIでは、このエラーはリクエストがAPIサーバーに到達する前にCloudflareから返されます。
エラーは常に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のような値が含まれます。特定のリクエストについてサポートに問い合わせる際は、問題を迅速に解決するためにこのIDを含めてください。
AWS上のClaude Platformでは、レスポンスに2つのリクエストIDが含まれます。AWSリクエストID(x-amzn-requestid、プライマリ、CloudTrailでインデックス化)とAnthropicリクエストID(request-id、セカンダリ)です。CloudTrailでの検索にはAWSリクエストIDを使用し、AnthropicサポートチケットにはAnthropicリクエストIDを使用してください。
公式SDKは、トップレベルのレスポンスオブジェクトのプロパティとしてAnthropicリクエストIDを提供し、request-idヘッダーの値を含みます。AWS上のClaude Platformでは、生レスポンスアクセサーを使用してHTTPヘッダーからAWSリクエストIDも読み取ることができます。
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(f"Request ID: {message._request_id}")他の言語でのAWS上のClaude PlatformのリクエストIDの例については、リクエストIDを参照してください。
長時間実行されるリクエスト、特に10分を超えるリクエストには、ストリーミングMessages APIまたはMessage Batches APIの使用を検討してください。
ストリーミングMessages APIまたはMessage Batches APIを使用せずに大きなmax_tokens値を設定することは避けてください。
直接API統合を構築している場合は、TCPソケットキープアライブを設定することで、一部のネットワークにおけるアイドル接続タイムアウトの影響を軽減できることに注意してください。
SDKは、非ストリーミングMessages APIリクエストが10分のタイムアウトを超えないと予想されることを検証し、TCPキープアライブのソケットオプションも設定します。
イベントを段階的に処理する必要がない場合は、.stream()と.get_final_message()(Python)または.finalMessage()(TypeScript)を使用して、イベント処理コードを記述せずに完全なMessageオブジェクトを取得できます。
with client.messages.stream(
max_tokens=128000,
messages=[{"role": "user", "content": "Write a detailed analysis..."}],
model="claude-opus-4-8",
) as stream:
message = stream.get_final_message()
print(message.content)詳細については、ストリーミングメッセージを参照してください。
Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、およびClaude Sonnet 4.6は、アシスタントメッセージのプリフィルをサポートしていません。これらのモデルのいずれかに、プリフィルされた最後のアシスタントメッセージを含むリクエストを送信すると、400 invalid_request_errorが返されます。
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Prefilling assistant messages is not supported for this model."
}
}代わりに、サポートしているモデルでの構造化出力、システムプロンプトの指示、または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での思考出力を参照してください。
AWS上のClaude Platformへのすべてのリクエストが"Outbound web identity federation is disabled for your account"を返す場合は、AWSアカウントごとに一度aws iam enable-outbound-web-identity-federationを実行してください。詳細については、アウトバウンドWeb IDフェデレーションの有効化を参照してください。
Was this page helpful?