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エンドポイントの最大リクエストサイズは32MBです。

  • 429 - rate_limit_error: アカウントがレート制限に達しました。

  • 500 - api_error: Anthropicのシステム内部で予期しないエラーが発生しました。

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

    529エラーは、Anthropic APIがすべてのユーザーにわたって高いトラフィックを経験している場合に発生する可能性があります。

    まれに、組織の使用量が急激に増加した場合、429エラーが表示される場合があります。これらの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キープアライブのソケットオプションも設定します。