AI Engineering

Claude.ai Upload Limits: 20 Per Message vs. 100 Per Conversation, Explained

Anthropic's own docs disagree about Claude.ai file caps. Here's the actual rule: 20 images per message, 100 files per conversation — with primary sources and the API errors that prove it.

Yatharth
9 min read
claudeanthropicclaude.aiupload limitsLLM

Two Errors, One Limit That Nobody Documents Clearly

If you have ever tried to upload a pitch deck, a stack of screenshots, or a set of design comps into Claude.ai, you have almost certainly hit one of two error messages:

  • "Your message will exceed the maximum image count for this chat."
  • "You can add at most 100 files to a chat. Please consider starting a new chat."

Search the web for what these mean and you will find dozens of blogs — Fastio, AmazeTech, DataStudios, OneFile, Medium write-ups — all confidently telling you Claude allows 20 files per conversation. Anthropic's own Help Center says the same thing. And yet, real users routinely upload more than 20 files into a single chat without issue. So which limit is right?

After digging through Anthropic's primary documentation, GitHub issues filed against the official anthropics/claude-code repo, and the API error strings that surface when these limits trip, the answer is clearer — and different from what most of the internet says.

The operational truth:

  • 20 images per message on Claude.ai — the per-send cap when composing a single turn.
  • 100 files per conversation on Claude.ai — the hard ceiling across all turns in a chat, combining images and documents.

That is the rule. Everything else is documentation drift. Here is the evidence.


The Per-Message Limit: 20 Images Per Send

Anthropic's Vision documentation is the authoritative product spec for image input. At platform.claude.com/docs/en/build-with-claude/vision, under "Before you upload → General limits," Anthropic states verbatim:

The maximal number of images per message or request is: 20 per message on claude.ai. 100 per request on the API, for models with a 200k-token context window. 600 per request on the API, for all other models.

The phrase "per message" is explicit. A single composer turn on Claude.ai can include at most 20 image attachments. Attach a 21st to the same turn — or attach images that would push the chat past its 100-item ceiling — and the UI surfaces:

"Your message will exceed the maximum image count for this chat."

Maximum dimensions are 8000 × 8000 px per image. Supported formats are JPEG, PNG, GIF, and WebP.


The Per-Conversation Limit: 100 Files Total

The per-conversation ceiling on Claude.ai is 100 combined files — images plus documents counted together. Once a chat accumulates 100 attachments across all turns, the next upload triggers the hard error:

"You can add at most 100 files to a chat. Please consider starting a new chat."

This is not a soft context-window limit. It is a hard count, enforced server-side before the request is dispatched to the model. The friendly UI wording is just the polished version of an API error that you can see plainly in GitHub issues filed against Anthropic's own repos:

  • anthropics/claude-code Issue #26188 — "Auto-compact fails when context exceeds 100 images/documents limit." API error: too many images and documents: 101 + 0 > 100.
  • anthropics/claude-code Issue #19822 — "[BUG] Failure when there's over 100 images." API error: Too much media: 0 document pages + 102 images > 100.

The Claude.ai web UI also throws the same wording preemptively when it computes that adding the in-flight images would push the chat past 100. That is what most users see in practice. Chamath Palihapitiya publicly posted a screenshot of the sibling error on X on May 14, 2026 — confirming the same wording is hitting paying users on multi-deck workflows.

100 is also Anthropic's standard ceiling across other surfaces:

  • Anthropic's Managed Agents API docs use 100 as the per-session file cap: "A maximum of 100 files is supported per session."
  • Claude Code CLI uses the same 100-image-per-request cap.

The 100-file conversation cap is real, it is consistent across Anthropic's products, and it is the binding ceiling on Claude.ai chats.


Why "20 Files Per Conversation" Is Wrong

Here is where the documentation gets messy. Anthropic's Help Center article on file uploads (support.claude.com/en/articles/8241126, last updated April 22, 2026) currently says:

File size: 500MB per file. Number of files: Up to 20 files per chat. Image dimensions: Up to 8000x8000 pixels.

That single sentence is the origin of every third-party blog repeating "20 per conversation." But it contradicts:

  1. Anthropic's own Vision documentation, which calls 20 a per-message limit, not a per-chat limit.
  2. The actual 100-file hard cap that users hit in practice — documented by screenshots, X posts, Instagram aggregator URLs that verbatim contain the string you-can-add-at-most-100-files-to-a-chat, and the GitHub-documented API errors.

The most charitable reading is that the Help Center is using "20 files per chat" as a stale or mis-worded version of "20 per message." It might also describe a soft UI ceiling — e.g., 20 attachments visible in a single composer turn or drag-and-drop action — but as a per-conversation claim, it is contradicted by Anthropic's own product behavior.

If you are writing docs, product copy, or a knowledge-base article: stop citing "20 files per conversation." Replace it with:

Up to 20 images/files per message, and up to 100 files total per conversation, on Claude.ai.


Per-File Size: Another Inconsistency Worth Knowing

The Help Center's April 22, 2026 revision states 500 MB per file for chat uploads. Every third-party blog still cites 30 MB. The 30 MB figure was the long-standing limit and is still what most users encounter in practice. The 500 MB figure may reflect a recent rollout, may apply only to specific file types or plans, or may itself be a doc error.

Practical guidance: plan on 30 MB as the reliable upper bound until Anthropic confirms 500 MB elsewhere.

PDF-Specific Caps

PDFs additionally have a 100-page cap for full multimodal analysis (text plus charts and images). Per the Help Center:

Claude models can analyze both text and visual elements (like images, charts, and graphics) in PDFs that are under 100 pages.

This is confirmed by the API error in anthropics/claude-code Issue #6231: "A maximum of 100 PDF pages may be provided."

PDFs over exactly 1,000 pages drop to text-only:

Claude will only process text from PDFs over 1000 pages.


Related Limits Worth Knowing

Context Window

For most models on paid plans, Claude's context window is 200K tokens. Three specific models — Sonnet 4.6, Opus 4.6, and Opus 4.7 — support a 500K token context window on all paid plans, not just Enterprise. Per the Help Center:

Sonnet 4.6, Opus 4.6, and Opus 4.7 support a 500K token context window on all paid plans when chatting with Claude.

The 100-file cap is separate and additive. You can hit it well before exhausting tokens — a chat with 100 small PNGs may consume only a few thousand tokens but will still block the 101st upload.

API Parity

On the Messages API, the per-request image cap is 100 for 200K-context models and 600 for other models — but the 100-media-items-per-conversation cap also applies and is the cap that fires the GitHub-documented errors. There is also a 32 MB request size limit for standard endpoints; partner-operated platforms like Amazon Bedrock and Vertex AI may be lower.

Projects

Files added to a Project's knowledge base are governed separately. They are "unlimited" subject to the context window, with a 30 MB per-file size limit, and they do not count against the 100-per-chat ceiling for chats inside that Project. This is the right escape hatch for high-volume document workflows.


What To Do If You Need More Than 100 Attachments

  1. Use Projects. The knowledge base uses RAG and is not subject to the 100-per-chat ceiling. This is the right pattern for case files, design archives, or any workflow that accumulates artifacts over time.
  2. Use the Files API directly. Files API references documents by file_id, avoiding per-message payload limits. Good for programmatic pipelines.
  3. For >100 images per single API request, use a non-200K-context model on the Messages API (cap is 600 per request) — but you will still hit the 32 MB request size limit on standard endpoints.

What To Do If You Hit the Limit on Claude.ai

  • At 20 in a single message: split your upload across multiple turns in the same chat.
  • At 100 in a chat: start a new chat, or move the workflow into a Project so the knowledge base handles document retrieval and your chats stay light.

A Note on Anthropic's Documentation

Anthropic does not currently publish the 100-file per-conversation cap on its public Help Center. The strongest evidence for the 100 figure on Claude.ai specifically is the in-product error wording, public screenshots, and the API error strings exposed in anthropics/claude-code issues. The cap could in principle change without notice.

If you are reporting this to Anthropic, the cleanest documentation fix is to update Help Center Article 8241126 ("Upload files to Claude") to:

  1. Reconcile "20 files per chat" with the Vision docs' "20 per message."
  2. Document the 100-file per-conversation cap explicitly so it is not a surprise to users uploading multi-slide decks or screenshot sets.

The Short Version

CapValueSource
Images per message (Claude.ai)20Vision API docs
Files per conversation (Claude.ai)100API error + UI string
Images per request (API, 200K-context model)100Vision API docs
Images per request (API, other models)600Vision API docs
API request size (standard endpoints)32 MBVision API docs
PDF pages — full multimodal100Help Center
PDF pages — text only above this1000Help Center
Context window (most paid models)200K tokensHelp Center
Context window (Sonnet 4.6, Opus 4.6, Opus 4.7)500K tokensHelp Center

Cite this table, not the Help Center's "20 files per chat" line. The Help Center is the inconsistency; the table above is what the product actually enforces.


Need Help Building Production-Grade AI Systems?

At Plenvo, we engineer LLM systems for real workloads — context engineering, agentic workflows, multi-file pipelines, and full-stack AI products that ship. If your team is hitting the edges of Claude.ai's UI limits and needs to move to the API or build a proper RAG layer, book a discovery call to talk through your project.

Enjoyed this article?

Let's build your digital presence together.

Book a Free Discovery Call
Book a Call