Claude Platform Docs
APIリファレンスAPIの使用

Claude APIのエラー

Claude APIが返すHTTPステータスコード、エラーレスポンスの形式、リクエストIDを理解し、SDKの型付き例外でエラーを処理します。

HTTPエラー

APIは予測可能なHTTPエラーコード形式に従います。

  • 400 - invalid_request_error:リクエストの形式または内容に問題がありました。このエラータイプは、このセクションに記載されていない他の4XXステータスコードにも使用される場合があります。また、使用量が組織またはワークスペースに設定した支出制限に達した場合にも、APIは400を返します。ただし、Claude Codeワークスペースの制限は例外で、代わりに429を返すことがあります。

  • 401 - authentication_error:APIキーに問題があります(たとえば、形式が不正である、取り消されている、または有効期限が切れているなど。キーの有効期限を参照してください)。Claude Platform on AWSでは、AWS認証情報またはSigV4署名の問題を示している場合もあります。

    メッセージがCORS requests are not allowed for this Organizationで始まる401は、APIキーの問題ではありません。リクエストにブラウザが付加するOriginヘッダーが含まれており、お使いの組織はブラウザから直接Claude APIを呼び出すことができません。メッセージはbecause of custom retention settingsまたはbecause of its settingsと続きます。前者は「zero data retention」(ゼロデータ保持)、すなわちZDRなどのデータ保持に関する取り決めがある場合にのみ表示されます。後者は一般的なケースで、Compliance APIが含まれます。ブラウザのリクエストをどのように変更してもこの問題は解決しないため、リクエストはご自身のバックエンドから送信してください。ブラウザベースのアプリケーションを参照してください。

  • 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:組織が「rate limit」(レート制限)に達したか、使用量ティアの月間支出上限に達したか、Claude Codeワークスペースの支出制限に達しました。ティアの支出上限による429にはretry-afterヘッダーがなく、アクセスが再開されるまで失敗し続けます。見分け方については使用量上限に達した場合を参照してください。

  • 500 - api_error:Anthropicのシステム内部で予期しないエラーが発生しました。「exponential backoff」(指数バックオフ)を使用してリクエストを再試行してください。エラーが解消しない場合は、リクエストIDを添えてサポートにお問い合わせください。エラータイプが代わりにtimeout_errorである場合は、504の項目を参照してください。

  • 504 - timeout_error:処理中にリクエストがタイムアウトしました。APIは他のステータスコードでもtimeout_errorを返します。たとえば、レスポンスの開始前にリクエストがサーバーの時間制限に達した場合は500を返します。長時間実行されるMessages APIリクエストには、ストリーミングMessages APIを使用してください。その他のオプションについては長時間のリクエストを参照してください。

  • 529 - overloaded_error:APIが一時的に過負荷状態です。

公式SDKは、一時的な障害(接続エラー、レート制限、5xxサーバーエラーなど)を指数バックオフで自動的に再試行します。デフォルトでは2回再試行し、retry-afterヘッダーが存在する場合はそれに従います。SDKクライアントはmax_retriesを受け付け、この動作を設定または無効化できます。

「server-sent events」(サーバー送信イベント)、すなわちSSEを介してストリーミングレスポンスを受信する場合、APIが200レスポンスを返した後にエラーが発生することがあります。その場合、エラー処理はこれらの標準的な仕組みに従いません。ストリーム途中のエラーの形式についてはエラーイベントを参照してください。

リクエストサイズ制限

ファーストパーティのClaude APIでは、以下のリクエストサイズ制限が適用されます。その他のプラットフォームについては、APIの概要を参照してください。

エンドポイントの種類最大リクエストサイズ
Messages API128 MB
Token Counting API128 MB
Batch API256 MB
Files API500 MB

これらの制限を超えると、413 request_too_largeエラーが返されます。ファーストパーティのClaude APIでは、リクエストがAPIサーバーに到達する前にCloudflareがこのエラーを返します。

エラーの形式

APIは常にエラーをJSONとして返します。トップレベルのerrorオブジェクトには常にtypeとmessageの値が含まれます。レスポンスには、追跡とデバッグを容易にするためのrequest_idフィールドも含まれます。例:

JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}

バージョニングポリシーに従い、これらのオブジェクト内の値は拡張される可能性があり、typeの値が時間とともに増える可能性があります。

SDKのエラータイプ

公式SDKは、生のJSONを返す代わりに、これらのエラーに対して型付き例外を発生させます。たとえば、404はanthropic.NotFoundErrorとして通知されます。Go SDKにはすべてのステータスに対して1つのエラータイプ*anthropic.Errorがあるため、StatusCodeで分岐してください。エラーメッセージを文字列照合するのではなく、SDKの型付きクラスをキャッチし、最も具体的なクラスから先に処理してください。例外階層の全体は、各SDKのページに記載されています。

リクエストID

すべての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では生レスポンスのアクセサーから、Ruby SDKではミドルウェアから取得できます。Ruby以外のすべてのSDKでは、with_raw_responseを使用すると、anthropic-organization-idやanthropic-workspace-idなど、その他のレスポンスヘッダーも読み取れます。Rubyでは、同じミドルウェアを使用してください。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を参照してください。

長時間のリクエスト

ストリーミングMessages API またはMessage Batches APIAPI リファレンスへのリンクを含むプレビューを表示できます — カードにフォーカスが移るまで Tab キーを押します。戻るには Escape キーを押します。を使用せずに、大きなmax_tokens値を設定することは避けてください。

  • 一部のネットワークでは、一定ではない時間が経過するとアイドル状態の接続が切断される場合があり、 Anthropicからレスポンスを受け取らないままリクエストが失敗またはタイムアウトする原因となります。
  • ネットワークの信頼性はさまざまです。Message Batches APIAPI リファレンスへのリンクを含むプレビューを表示できます — カードにフォーカスが移るまで Tab キーを押します。戻るには Escape キーを押します。を使用すると、 途切れないネットワーク接続を必要とせずに結果をポーリングできるため、ネットワーク問題のリスクを管理するのに役立ちます。

直接のAPI統合を構築している場合、TCPソケットのキープアライブを設定すると、一部のネットワークでアイドル接続のタイムアウトによる影響を軽減できます。

Claude SDKは、非ストリーミングのMessages APIリクエストが10分のタイムアウトを超えると予想されないことを検証します。また、TCPキープアライブのソケットオプションも設定します。

イベントを段階的に処理する必要がない場合は、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は、アシスタントメッセージの「prefill」(プリフィル)をサポートしていません。これらのモデルのいずれかに、最後のアシスタントメッセージをプリフィルしたリクエストを送信すると、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 4.7以降のモデルは「extended thinking」(拡張思考)をサポートしていません。これらのモデルのいずれかに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.2、Claude Mythos 5.2、Claude Fable 5.1、Claude Mythos 5.1、Claude Fable 5、Claude Mythos 5、Claude Opus 5.5、およびClaude Mythos Previewでは、思考は常にオンです。これらのモデルのいずれかにthinking: {"type": "disabled"}を送信すると、400 invalid_request_errorが返されます。Claude Mythos Preview以外のこれらすべてのモデルでは、メッセージは次のとおりです。

"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

これらのモデルの中で唯一拡張思考を受け付けるClaude Mythos Previewでは、メッセージは次のとおりです。

"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 Sonnet 5.5では、思考をdisabledに設定することはできません。最も低い思考設定にはthinking: {"type": "between_tools"}を使用してください。これにより事前の思考がオフになります。thinking: {"type": "disabled"}を送信すると、次のメッセージとともに400 invalid_request_errorが返されます。

To turn thinking off on this model, send "thinking": {"type": "between_tools"} instead of {"type": "disabled"}. The model does not think before responding. The short updates it writes between tool calls come back as thinking blocks.

xhighまたはmaxのエフォートでは、between_toolsを指定したリクエストも400 invalid_request_errorを返します。between_toolsには事前の思考がないため、メッセージでは思考が無効になっていると示されます。

output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.

between_toolsでは、会話の途中でeffortを変更できません。有効なレベルと異なるメッセージごとのoutput_config.effortを指定すると、400エラーが返されます。エラーには、新しいレベルを設定したメッセージの位置が示されます。

messages.N: output_config.effort 'low' differs from the 'high' in effect before it; effort cannot change when thinking is disabled on this model. Use effort 'high', or enable thinking.

Claude Haiku 5.5はthinking: {"type": "disabled"}を受け付け、between_toolsに適用されるのと同じ2つのeffort制限を適用します。xhighまたはmaxのeffortの場合、または有効なレベルと異なるメッセージごとのoutput_config.effortを指定した場合、リクエストは前述の対応するメッセージとともに400 invalid_request_errorを返します。

どちらのメッセージでも、「enable thinking」とは適応型思考を意味します。thinkingフィールドを省略するか、thinking: {"type": "adaptive"}を送信してください。Claude Sonnet 5.5とClaude Haiku 5.5も"enabled"を400エラーで拒否します。ターンごとにeffortを変えるには、適応型思考を使用してください。

Claude Sonnet 5.5以外のモデルにthinking: {"type": "between_tools"}を送信すると、400 invalid_request_errorが返されます。

"thinking.type.between_tools" is not supported for this model.

修正方法については、思考のトラブルシューティングのbetween_toolsとeffortのエラーを参照してください。

thinkingパラメータを省略すると、リクエストは適応型思考で実行されます。思考をオフにせずに思考内容をレスポンスから除外するには、思考設定でdisplay: "omitted"を設定してください。思考のトラブルシューティングの無効化された思考エラーの修正方法を参照してください。

強制的なツール使用はサポートされていません

Claude Fable 5.2、Claude Mythos 5.2、Claude Opus 5.5、Claude Sonnet 5.5、Claude Fable 5.1、およびClaude Mythos 5.1は、強制的なツール使用をサポートしていません。トークンカウントエンドポイントを含め、これらのモデルのいずれかにtool_choice: {"type": "any"}またはtool_choice: {"type": "tool", "name": "..."}を送信すると、400 invalid_request_errorが返されます。

tool_choice: type "tool" and "any" are not supported for this model.

tool_choice: {"type": "auto"}(デフォルト)と{"type": "none"}は受け付けられます。ツールの入力をスキーマに準拠させるにはautoを厳密なツール使用と組み合わせて使用し、レスポンス自体を固定のJSON形式にする必要がある場合は構造化出力を使用してください。ツール使用の強制を参照してください。

コンピューター使用ツールのバージョンはサポートされていません

Claude Fable 5.2、Claude Mythos 5.2、Claude Opus 5.5、Claude Sonnet 5.5、およびClaude Haiku 5.5は、受け付けないコンピュータ使用ツールのバージョンに対して400エラーを返します。Claude APIでは、これにはベータヘッダー付きのcomputer_20251124が含まれます。computer_20250124はどのプラットフォームでも受け付けません。Claude APIのinvalid_request_errorメッセージは拒否されたタイプを示し、Did you mean one ofの後にモデルが受け付けるツールタイプを列挙します。Claude Opus 5.5の場合、メッセージは次のように始まります。

'claude-opus-5-5' does not support tool types: computer_20251124.

Claude APIは、リクエストされたモデルがサポートしないAnthropic定義のツールタイプに対して同じメッセージを返します。Claude Fable 5.2、Claude Mythos 5.2、Claude Opus 5.5、Claude Sonnet 5.5、およびClaude Haiku 5.5は、computer_toolset_20260801ツールセットを通じてコンピュータ使用をサポートします。ベータヘッダーなしで{"type": "computer_toolset_20260801"}を宣言し、computer_20251124からの移行の説明に従ってエージェントループを更新してください。computer_20250124から移行するには、Claude Haiku 5.5移行ガイドのコンピュータ使用をツールセットに移行するを参照してください。

Amazon Bedrockでは、Claude Fable 5.2、Claude Mythos 5.2、Claude Opus 5.5、Claude Sonnet 5.5、およびClaude Haiku 5.5は、computer-use-2025-11-24ベータヘッダー付きのcomputer_20251124ツールも受け付けます。以前のツールバージョンには、以前の各バージョンで使用するモデルが記載されています。

別の会話に紐付けられた思考ブロック

この400 invalid_request_error は通常、送り返した思考ブロックがプレフィックスチェックに失敗したことを意味します。つまり、ブロックが生成された後に、system プロンプト、tools、または以前のメッセージなど、ブロックより前の何かが変更されたということです。Claude 5.1以降のモデルがこのチェックを実行します。prefix_mismatch_behavior を設定していないリクエストについては、prefix_mismatch_behavior が未設定の場合で、どのリクエストがこのエラーを受け取るかを示しています。メッセージは、最初に失敗したブロックの位置から始まります:

messages.{i}.content.{j}: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block".

thinking-binding-controls-2026-08-01ベータヘッダーがない場合、メッセージにはそのヘッダーも示されます。同じ履歴を再送信すると、編集を行ったコードを修正した後でも同じように失敗します。会話を続けるには、再試行時およびそれ以降のすべてのリクエストで、ベータヘッダーをprefix_mismatch_behavior: "drop_block"とともに送信してください。あるいは、エラーで示されたブロックと、それ以降のすべてのthinkingブロックおよびredacted_thinkingブロックを削除してから、一度だけ再試行してください。Claude Sonnet 5.5およびClaude Haiku 5.5では、block_bindingはthinking: {"type": "adaptive"}の場合にのみ機能するため、それ以外の思考設定ではブロックを削除してください。新しい会話が失敗しないようにするには、履歴を追記のみ(append-only)に保ってください。対象モデルが読み取れないモデルからのブロックは、拒否されるのではなく破棄されます。プレフィックスを変更せずに保つ、および思考のトラブルシューティングにある無効な思考ブロック署名の修正方法を参照してください。

thinking-binding-controls-2026-08-01ベータヘッダーなしでthinking.block_bindingを送信すると、次の文で終わるメッセージとともに400 invalid_request_errorが返されます。

block_binding: Extra inputs are not permitted

ヘッダーを追加するか、フィールドを削除してください。

アウトバウンドWeb IDフェデレーションが無効(Claude Platform on AWS)

Claude Platform on AWSへのすべてのリクエストが"Outbound web identity federation is disabled for your account"を返す場合は、AWSアカウントごとに一度aws iam enable-outbound-web-identity-federationを実行してください。詳細については、アウトバウンドWeb IDフェデレーションを有効にするを参照してください。

次のステップ

思考設定の400エラー、空の思考ブロック、max_tokensによる停止に対する、症状から始める修正方法。

APIの悪用を軽減し容量を管理するため、組織がClaude APIを使用できる量には制限が設けられています。

テキスト、ツール使用、拡張思考のデルタを含むMessages APIレスポンスを、サーバー送信イベントで段階的にストリーミングします。

このページは役に立ちましたか?