HTTPエラー

私たちのAPIは予測可能なHTTPエラーコード形式に従います:
  • 400 - invalid_request_error: リクエストの形式または内容に問題がありました。以下にリストされていない他の4XXステータスコードについても、このエラータイプを使用する場合があります。
  • 401 - authentication_error: APIキーに問題があります。
  • 403 - permission_error: APIキーに指定されたリソースを使用する権限がありません。
  • 404 - not_found_error: 要求されたリソースが見つかりませんでした。
  • 413 - request_too_large: リクエストが許可される最大バイト数を超えています。標準APIエンドポイントの最大リクエストサイズは32 MBです。
  • 429 - rate_limit_error: アカウントがレート制限に達しました。
  • 500 - api_error: Anthropicのシステム内部で予期しないエラーが発生しました。
  • 529 - overloaded_error: AnthropicのAPIが一時的に過負荷状態です。
    529エラーは、Anthropic APIがすべてのユーザーにわたって高いトラフィックを経験している場合に発生する可能性があります。まれに、組織の使用量が急激に増加した場合、API上の加速制限により429エラーが表示される可能性があります。加速制限に達することを避けるため、トラフィックを徐々に増加させ、一貫した使用パターンを維持してください。
SSE経由でストリーミングレスポンスを受信する場合、200レスポンスを返した後にエラーが発生する可能性があり、その場合エラーハンドリングはこれらの標準メカニズムに従いません。

リクエストサイズ制限

APIは最適なパフォーマンスを確保するためにリクエストサイズ制限を実施します:
エンドポイントタイプ最大リクエストサイズ
Messages API32 MB
Token Counting API32 MB
Batch API256 MB
Files API500 MB
これらの制限を超えると、413 request_too_largeエラーが発生します。エラーは、リクエストがAnthropicのAPIサーバーに到達する前にCloudflareから返されます。

エラーの形状

エラーは常にJSONとして返され、常にtypemessageの値を含むトップレベルのerrorオブジェクトがあります。レスポンスには、より簡単な追跡とデバッグのためのrequest_idフィールドも含まれます。例:
JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}
私たちのバージョニングポリシーに従い、これらのオブジェクト内の値を拡張する場合があり、typeの値が時間とともに増加する可能性があります。

リクエストID

すべてのAPIレスポンスには一意のrequest-idヘッダーが含まれます。このヘッダーにはreq_018EeWyXxfu5pfWkrYcMdjWGなどの値が含まれます。特定のリクエストについてサポートに連絡する際は、問題を迅速に解決するためにこのIDを含めてください。 私たちの公式SDKは、request-idヘッダーの値を含むトップレベルレスポンスオブジェクトのプロパティとしてこの値を提供します:
import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-4-1-20250805",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude"}
    ]
)
print(f"Request ID: {message._request_id}")

長時間のリクエスト

特に10分を超える長時間実行されるリクエストについては、ストリーミングMessages APIまたはMessage Batches APIの使用を強く推奨します。
私たちのストリーミングMessages APIまたはMessage Batches APIを使用せずに大きなmax_tokens値を設定することは推奨しません:
  • 一部のネットワークは可変期間後にアイドル接続をドロップする場合があり、これによりAnthropicからのレスポンスを受信せずにリクエストが失敗またはタイムアウトする可能性があります。
  • ネットワークの信頼性は異なります。私たちのMessage Batches APIは、中断されないネットワーク接続を必要とするのではなく、結果をポーリングできるようにすることで、ネットワーク問題のリスクを管理するのに役立ちます。
直接API統合を構築している場合、TCPソケットキープアライブを設定することで、一部のネットワークでのアイドル接続タイムアウトの影響を軽減できることを認識しておく必要があります。 私たちのSDKは、非ストリーミングMessages APIリクエストが10分のタイムアウトを超えることが予想されないことを検証し、TCPキープアライブのソケットオプションも設定します。