Claude API の 413 request_too_large はどうする?上限は 128 MB に、Bedrock・サードパーティ経由の上限と大きな PDF・スクリーンショットの送り方

Claude API の Messages リクエスト上限が 32 MB から 128 MB に引き上げられましたが、Bedrock は 20 MB、Google 管理の Vertex は 30 MB のままで、サードパーティのゲートウェイにもそれぞれ上限があります。413 request_too_large の見分け方、プラットフォーム別の上限表、画像の圧縮と縮小、Files API の file_id で大きな PDF を送る方法、長い computer use / Claude Code セッションで古いスクリーンショットを減らす方法、そして 10 MB から 130 MB までの実測結果をまとめます。

7 分钟阅读
Claude API の 413 request_too_large はどうする?上限は 128 MB に、Bedrock・サードパーティ経由の上限と大きな PDF・スクリーンショットの送り方

結論から:Claude 公式ドキュメントによると、ファーストパーティの Claude API では Messages と Token Counting のリクエスト上限が 32 MB から 128 MB に引き上げられました。Batch は 256 MB、Files API は 500 MB です。ただしこれは Anthropic 自身の API の話で、Amazon Bedrock は 20 MB、Google 管理の Claude(Vertex)は 30 MB、Claude Platform on AWS・Anthropic 管理の Google Cloud・Microsoft Foundry は 32 MB のままです。サードパーティのゲートウェイにも独自の上限があります。

私たちは自分たちの Key で 10 MB から 130 MB までの Messages リクエストを試しました:

  • 約 50 MB まではすべて 200、所要時間は 5〜9 秒;
  • 約 54 MB からは 413 が返り、大きなリクエストは 1 秒ほどで拒否されました。

413 が出たらモデルを変える前に、まずリクエストのサイズを測り、画像を縮小し、PDF を分割し、古いスクリーンショットを削ってください。コンテキストウィンドウは大きくなっていません。128 MB に収まっても token に収まるとは限りません。

API Key を作成して Claude Code で Claude を使う →

413 request_too_large の見分け方

公式 API は上限を超えると HTTP 413、エラータイプ request_too_large を返します:

json
{
  "type": "error",
  "error": {
    "type": "request_too_large",
    "message": "Request exceeds the maximum allowed number of bytes."
  }
}

公式エラードキュメントによると、ファーストパーティの Claude API では、このエラーはリクエストが API サーバーに届く前に Cloudflare が返します。つまり:

  • リクエストはモデルに届いておらず、出力も token の消費もありません;
  • 同じリクエストを再送しても通りません。本文を小さくする必要があります;
  • 400 invalid_request_error(形式エラー)、429(レート制限)、529(過負荷)とは別の問題です。

サードパーティ経由では 413 の本文が変わります。今回のテストでは 2 種類ありました。ゲートウェイ自身の中国語メッセージ(「リクエストが大きすぎます。内容を減らして再試行してください」)と、上流が 413 を返したことを示す bad response status code 413 です。どちらも「リクエストが大きすぎる」と考えてください。ほかのエラーはClaude Haiku 5.5 API エラーの対処を参照。

まず自分のリクエストを測ります:

python
import json
body = json.dumps(payload).encode()
print(f"{len(body) / 1024 / 1024:.1f} MB")

プラットフォーム別の上限

接続先1 リクエストの上限
Claude API:Messages、Token Counting128 MB
Claude API:Message Batches256 MB
Claude API:Files API アップロード500 MB
Claude API:Sessions、Agents、Environments32 MB
Claude Platform on AWS32 MB
Claude on Google Cloud(Anthropic 管理)32 MB
Microsoft Foundry32 MB
Claude on Google Cloud(Google 管理、Vertex)30 MB
Amazon Bedrock20 MB
当サイトのゲートウェイ(今回の実測)約 50 MB まで通過、約 54 MB から 413

数値は公式 API 概要によるもので、各クラウドの値はそれぞれのドキュメントが正としています。AlphaSignal によると、今回の引き上げは画像の多いリクエスト向けです。

サイズと同時に効く制限もあります(Vision ドキュメントとPDF ドキュメントより):

  • 画像 1 枚は最大 8000×8000 px。1 リクエストに 20 枚を超える画像があると、各画像の長辺は 3000 px 以下(AlphaSignal によると以前は 2000 px)。超えると many-image requests に触れた invalid_request_error になります;
  • 画像は 1 リクエスト最大 600 枚、200K コンテキストのモデルは 100 枚;
  • PDF は 1 リクエスト最大 600 ページ、コンテキストウィンドウが 1M token 未満なら 100 ページ;
  • base64 にするとサイズは約 3 分の 1 増えます。3 MB の PNG は約 4 MB になります。

対策 1:画像を圧縮・縮小する

モデルは画像をそのままの解像度では見ません。ドキュメントによると、Claude 4.7 以降のモデルは長辺 2576 px に、それ以外は 1568 px に縮小します。4K のスクリーンショットを送ってもバイト数が増えるだけです。送信前に縮小しましょう:

python
from PIL import Image
import base64, io

def shrink(path, max_side=1568, quality=80):
    im = Image.open(path).convert("RGB")
    im.thumbnail((max_side, max_side))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=quality, optimize=True)
    return base64.b64encode(buf.getvalue()).decode()

目安:

  • スクリーンショットは JPEG(品質 75〜85)に。PNG よりずっと小さくなります;
  • 長辺は 1568 px、細かい文字を読ませたいときだけ 2576 px;
  • 20 枚を超えるときは必ず 3000 px 未満;
  • 同じ画像は会話で 1 回だけ送り、以降はテキストで参照します。

対策 2:大きな PDF は Files API の file_id で

公式 API では、大きなファイルを Files API(1 ファイル 500 MB)にアップロードし、Messages では file_id を参照します。本文には ID しか入りません:

bash
curl https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -F "file=@report.pdf"
# -> {"id": "file_011C...", ...}
json
{"type": "document", "source": {"type": "file", "file_id": "file_011C..."}}

ドキュメントによると、マルチターンやエージェントでは毎ターン履歴全体を送り直すため、base64 画像も毎回送られます。file_id にすれば画像が増えても本文は小さいままです。

使っているゲートウェイが Files API に対応していない場合(今回当サイトのゲートウェイでアップロードを呼ぶと 400 でした)は、PDF を 100 ページ以内・上限以内に分割して送ります:

bash
qpdf report.pdf --pages . 1-100 -- part1.pdf
qpdf report.pdf --pages . 101-200 -- part2.pdf

PDF の各ページは画像として処理されるので、スキャン PDF は埋め込み画像の解像度を下げるとかなり小さくなります。

対策 3:長い computer use / Claude Code セッションでは古いスクリーンショットを削る

computer use やスクリーンショットの多いエージェントは 413 に最もなりやすい使い方です。各ステップで tool_result にスクリーンショットが入り、毎ターン履歴全体が送られるため、数十ステップで本文は 100 MB を超えます。ドキュメントによると、tool_result 内のスクリーンショットも「20 枚」のしきい値に数えられます。

やり方:

  • 直近の数枚だけ残し、古いものは 1 行のテキスト(「ステップ 12:設定画面を開いた」)に置き換える;
  • 自作のエージェントループなら N ステップごとに履歴を要約して続ける;
  • Claude Code では /compact を実行するか、長いタスクは新しいセッションで。自動圧縮のタイミングはClaude Code のアイドル時自動圧縮を参照。

Claude Code をサードパーティのエンドポイントにつなぐ場合、グローバル設定は ~/.claude/settings.json に書きます:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "あなたの API Key"
  },
  "model": "claude-sonnet-5-5"
}

アドレスは https://api.aicodewith.ai で、/v1 は付けません。手順はClaude Code でサードパーティ API を設定する、10 月 21 日の API バージョンと SDK の変更はClaude API 2026-10-21 移行ガイドへ。

実測:当サイトのゲートウェイはどこまで受け付けるか

方法:claude-sonnet-5-5、max_tokens 16。1 つの Messages リクエストに base64 画像を複数入れ(token を抑えるため 16×16 px の画像に埋め草バイトを追加)、10 MB から 130 MB まで増やして https://api.aicodewith.ai/v1/messages に POST しました。

本文サイズステータス所要時間
4.8 MB200約 14 秒
10.1 MB200約 5 秒
40.3 MB200約 6 秒
50.3 MB200約 9 秒
52.0 MB200約 9 秒
53.7 MB413約 6 秒
60.4 MB413約 10 秒
75.5 MB413約 1 秒
98.8 MB413約 4 秒
129.6 MB413約 1 秒

結果:今回のテストでは、当サイトのゲートウェイ経由の Messages リクエストは約 52 MB まで 200、約 54 MB から 413 で、公式の 128 MB には届きませんでした。画像付きの普段の会話、数枚のスクリーンショット、数十ページの PDF ならまったく問題になりません。数十 MB を送る必要があるときは、上の 3 つの対策で小さくするほうが確実です。一部のリクエストはアップロード中に接続が切れ、再送で通りました。テスト後、スクリプトとリクエストファイルは削除しました。

API Key を作成して Claude を Claude Code につなぐ →

よくある質問

128 MB になったら、もっと多くの内容を送れますか?

増えたのはバイトの上限で、コンテキストウィンドウは同じです。大きな画像も処理用の解像度に縮小されれば token 数は一定なので、余分なバイトは帯域の無駄です。テキストは 128 MB よりずっと前にコンテキストウィンドウに当たります。

413 と 400「prompt is too long」の違いは?

413 はバイトが多すぎてモデルの手前で止められた状態、prompt is too long は token がコンテキストウィンドウを超えた状態で、リクエストは API に届いています。前者はバイトを減らし、後者は内容を削るか履歴を圧縮します。

Bedrock ではなぜまだ 413 が出るのですか?

Bedrock の上限は 20 MB、Google 管理の Vertex は 30 MB で、128 MB はファーストパーティの Claude API だけです。各プラットフォームの上限に合わせて圧縮してください。

Batch ならもっと大きなリクエストを送れますか?

バッチ全体は 256 MB までですが、中の 1 件 1 件は Messages リクエストです。大量のオフライン処理向けで、1 件あたりのサイズを回避するものではありません。

再送で 413 は直りますか?

直りません。同じ本文は毎回拒否されるので、まず小さくしてください。

相关文章

Claude Code VS Code 拡張 2.1.313 に SSH バックドア:Cursor / VSCodium ユーザー向け 5 分でできる確認と駆除

Claude Code VS Code 拡張 2.1.313 に SSH バックドア:Cursor / VSCodium ユーザー向け 5 分でできる確認と駆除

OpenSourceMalware と Phorion の分析によると、Open VSX で公開された Claude Code 拡張 2.1.313 では extension.js の先頭に 66 行のローダーが挿入されていました。拡張が読み込まれるだけで ~/.ssh/authorized_keys に攻撃者の公開鍵を追加し、SSH の有効化を試み、134.209.82.225 へのリバーストンネルを張り、永続化を仕込みます。macOS・Linux・Windows 向けの 5 ステップの確認コマンドと、被害時の証拠保全・駆除・認証情報のローテーションをまとめました。

Google Jules 終了(12 月 31 日):データをエクスポートして Claude Code / Codex のバックグラウンド agent に移行する手順

Google Jules 終了(12 月 31 日):データをエクスポートして Claude Code / Codex のバックグラウンド agent に移行する手順

Google は Jules を 2026 年 12 月 31 日に終了し、11 月 11 日以降は読み取り専用になります。公式のエクスポート(設定、環境変数、スケジュールタスク、リポジトリ、メモリ、setup スクリプト、全セッションと patch)を手順どおりに行い、それぞれを Claude Code と Codex に移します。同じエクスポートを両クライアントで動かした所要時間も掲載(Claude Code 約 15 秒、Codex 約 44 秒)。

Claude はなぜアカウントを停止するのか?コミュニティの「ポイント制」説と、アカウントを替えずに Claude Code を使う方法

Claude はなぜアカウントを停止するのか?コミュニティの「ポイント制」説と、アカウントを替えずに Claude Code を使う方法

10 月 28 日から、「Claude のアカウント停止はポイント制」とする 2 本の投稿が X で合計約 77 万回表示されました。コミュニティの説と、Anthropic が公式に公開している停止理由・異議申し立ての窓口を分けて整理し、当サイトの API Key で Claude Code 2.1.310 を実測しました。簡単なリクエストは約 1.4〜1.7 秒で返り、バグ修正とテスト作成の小さなタスクは 8.5 秒で完了。Codex・Cursor の接続方法と 401/429 の対処も掲載。