AI & Agents

How to Work Around Claude's File Upload Limits

Claude accepts files of up to 500MB each and up to 20 files per chat, but files added to a Project are capped at 30MB each. This guide breaks down the exact limits for each file type, explains why you can still run into context limits with files under the cap, and covers three practical workarounds: Claude Projects, file splitting, and external storage with MCP.

Tom Langridge 6 min read Updated
AI interface with file processing indicators

Claude's file upload limits at a glance

Claude accepts files of up to 500MB each in a chat, with up to 20 files per chat. Files you add to a Project have a lower cap of 30MB each. Full breakdown by where the file goes:

  • Chat uploads: 500MB per file, up to 20 files per chat, images up to 8,000 x 8,000 pixels, PDFs up to 1,000 pages
  • Project files: 30MB per file; no fixed number of files, but the total content must fit within Claude's context window; text extraction only, except for multimodal PDFs
  • Files API (developers): 500MB per file and 1 TB of storage per organization, stored server-side and referenced by ID
  • Images: JPEG, PNG, GIF, WebP up to 8,000 x 8,000 pixels
  • PDFs: 100 pages or fewer for full visual analysis (text + charts + images); 101 to 1,000 pages are read as text only; over 1,000 pages are rejected

Anthropic's help center gives one set of upload limits, with no difference between models. What changes by model is the context window, covered below. If you'd rather keep large files and document sets in one place that Claude can reach from any session, see Storage for AI Agents: a Fastio workspace stores single files of up to 25, 50 or 100 GB depending on plan. That doesn't raise Claude's own limits. The files stay in the workspace, Claude pulls the passages it needs through MCP, and whatever it reads still has to fit in its context window. The Claude-specific setup guide walks through connecting Claude to a workspace.

Document analysis interface with file metadata
Fastio features

Keep your files where Claude can reach them

Fastio keeps your files in a workspace that Claude reaches over MCP, with no re-uploading between sessions and built-in RAG indexing. Claude's own upload limits still apply to files you attach in a chat.

Supported file types

Claude accepts 10 document formats and 4 image formats. Here's the full list to save you a failed upload.

Documents:

  • PDF (.pdf)
  • Microsoft Word (.docx)
  • Excel spreadsheets (.xlsx), once code execution and file creation are turned on in your account
  • CSV (.csv)
  • Plain text (.txt)
  • HTML (.html)
  • OpenDocument Text (.odt)
  • Rich Text Format (.rtf)
  • EPUB (.epub)
  • JSON (.json)

Images:

  • JPEG (.jpg, .jpeg)
  • PNG (.png)
  • GIF (.gif)
  • WebP (.webp)

Claude extracts only the text from documents other than PDFs, so images embedded in a Word file or an EPUB won't be read. Anthropic's list doesn't name Markdown or source-code files (.py, .js, .ts, .css, and similar); if one of those is rejected, saving a copy as .txt gets it in as plain text. One practical tip: if you have an Excel file with multiple sheets, converting it to CSV before uploading usually gives Claude better results. CSV strips out formatting overhead and reduces token consumption, so you get more useful analysis per file.

Why you get context overflow errors

File size is only the first gate. Even when every file is under the cap, you can still hit limits because of how Claude processes text internally. Claude converts every uploaded file into tokens, and Anthropic notes that additional token limits may apply based on the length of the extracted content. A dense 5MB PDF full of text can generate more tokens than a 20MB PDF packed with images.

Those tokens share the context window with your conversation history and Claude's responses. On paid plans, Anthropic lists context windows from 200,000 tokens up to 1 million tokens, depending on the model you chat with. With code execution turned on, Claude summarizes earlier messages as a conversation nears the limit so it can keep going, and the full history stays available for reference. Without code execution, or with a very large first message, you can still run into the limit outright.

Either way, the window is shared, which makes context, not file size, the real bottleneck for anyone working with large document sets. A handful of long, text-heavy PDFs can add up to more tokens than the window holds, even when each one is well under 500MB.

Workaround 1: Claude Projects for persistent files

Projects let you build a persistent knowledge base, and they're available on every Claude plan, including free accounts (free users can create up to five). Files stay available across multiple conversations without re-uploading. Project files are capped at 30MB each, well below the 500MB chat limit, but there's no fixed number of files: the total content just has to fit within Claude's context window. On paid plans, Projects switch to retrieval (RAG) as project knowledge approaches that limit, which Anthropic says expands capacity by up to 10x. In that mode Claude pulls only the relevant sections from Project files into its context window at query time, so it can't read the entire knowledge base at once.

Projects work well for reference documentation you query repeatedly, code repositories with many small files, and research papers you want to cross-reference. They don't help with files larger than 30MB, datasets that need to be analyzed as a whole, or binary files like video and audio.

Workaround 2: Split and compress before uploading

When a file is over the limit for where it's going (500MB in a chat, 30MB in a Project, or more than 1,000 pages for a PDF), the simplest fix is to break it into smaller pieces before uploading.

PDFs: Use Smallpdf or Adobe Acrobat to split by page range. Keeping each part to 100 pages or fewer also means Claude analyzes its charts and images, not just its text. Upload the sections across separate messages or add them to a Project.

CSV and JSON: Split by row count. A 50MB CSV with 500,000 rows becomes two 25MB files of 250,000 rows each, small enough to add to a Project. Python's pandas library handles this in a few lines:

import pandas as pd
df = pd.read_csv("large_file.csv")
df.iloc[:250000].to_csv("part1.csv", index=False)
df.iloc[250000:].to_csv("part2.csv", index=False)

Images: Compress before uploading. Claude's vision capabilities work fine at 1080p, and Anthropic recommends images of at least 1,000 x 1,000 pixels, so don't shrink below that. Downscaling a 4K image from 15MB to 2MB rarely affects analysis quality. This approach works for occasional large files, but gets tedious if you're regularly dealing with document bundles above the limit.

Workaround 3: Use external storage with MCP

For a more permanent solution, keep your files in external cloud storage and let Claude access them through the Model Context Protocol (MCP). Instead of uploading files into the chat, you store them on a remote platform and give Claude direct read access via MCP tools. The model pulls only the text it needs at query time. Claude's upload limits still apply to anything you attach to a chat, and whatever Claude reads still has to fit in its context window, but the files themselves stay in storage, so you stop re-uploading them for every conversation.

Cloud storage options that work for this pattern:

  • AWS S3 + MCP, Flexible, durable, widely supported. Requires AWS account and credentials setup. Multiple MCP servers exist for S3 access.
  • Google Drive, Easy to set up. Claude can access Drive files via MCP with the right server configured.
  • Fastio, Storage built specifically for AI agent workflows. A consolidated MCP toolset, Intelligence Mode for automatic RAG indexing.

How to set up Fastio for this:

  1. Start a 14-day Business Trial on Fastio
  2. Upload your files to a workspace and enable Intelligence Mode for automatic RAG indexing
  3. Connect Claude to the Fastio MCP server (supports Streamable HTTP and SSE)
  4. Ask Claude questions about your files, the MCP integration handles retrieval, and Intelligence Mode returns answers with source citations

Any MCP-compatible model can query the same files, so the same setup works with ChatGPT, Gemini, or other clients that support MCP.

Fastio AI file sharing workspace interface

Which workaround should you use?

Use Claude Projects if you have many files under 30MB each that you query repeatedly. Projects come with every Claude plan, and paid plans add retrieval for larger knowledge bases. No extra setup required.

Use file splitting if you occasionally need to analyze a single file that's over the limit and can be logically divided, such as a multi-chapter PDF or a big CSV, and you'd rather not set up additional infrastructure.

Use external storage with MCP if you regularly work with large files, need a persistent knowledge base across sessions, want the same files to work with multiple AI models, or are building agents that need programmatic file access.

For most developers doing serious document work, external storage ends up being the right answer. It ends the re-upload cycle and adds semantic search across a whole workspace.

Sources

References used to verify factual claims in this guide.

  1. 1 Anthropic Help Center Accessed

    Chat uploads are limited to 500MB per file and up to 20 files per chat Chat images can be up to 8000x8000 pixels and PDFs are limited to 1000 pages Project files are limited to 30MB per file, unlimited in number as long as the total content fits within Claude's context window, with text extraction only except for multimodal PDFs Claude accepts PDF, DOCX, CSV, TXT, HTML, ODT, RTF, EPUB, JSON and XLSX documents and JPEG, PNG, GIF and WebP images, and XLSX uploads require code execution and file creation to be enabled Claude analyzes text and visuals in PDFs of 100 pages or fewer, reads text only from 101 to 1000 pages, and rejects PDFs over 1000 pages with an Uploaded file is too large error Additional token limits may apply based on the length of extracted content Claude extracts text only from non-PDF documents and cannot read images embedded in them Anthropic recommends images of 1000x1000 pixels or larger

  2. 2 Claude Platform Docs Accessed

    The Files API accepts files of up to 500MB each with 1 TB of storage per organization

  3. 3 Anthropic Help Center Accessed

    Context windows on paid Claude plans range from 200K to 1M tokens depending on the model On paid plans with code execution enabled, Claude summarizes earlier messages as a conversation approaches the context window limit and keeps the full chat history for reference

  4. 4 Anthropic Tokenization Docs Accessed

    A dense 5MB text PDF generates more tokens than a 20MB image PDF

  5. 5 Anthropic Help Center Accessed

    Projects are available to all users, including free accounts, and free users can create up to five projects On paid plans, projects switch to RAG as project knowledge approaches context limits, expanding capacity by up to 10x

  6. 6 Adobe Acrobat Support Accessed

    Split large PDFs into sections using Adobe Acrobat

  7. 7 Pandas Documentation Accessed

    A 50MB CSV with 500000 rows becomes two 25MB files of 250000 rows each

  8. 8 Web.dev Image Optimization Accessed

    Downscaling a 4K image from 15MB to 2MB rarely affects analysis quality

  9. 9 Fastio Pricing Accessed

    Fastio's maximum upload size is 25 GB, 50 GB or 100 GB per file depending on plan

  10. 10 Fastio Accessed

    Files get indexed once and work with Claude, ChatGPT, Gemini or any model that supports MCP

  11. 11 Anthropic MCP Docs Accessed

    Use external storage with MCP when you regularly work with large files, need a persistent searchable knowledge base across multiple models, or are building agents with programmatic file access

Frequently Asked Questions

What is the file size limit for Claude Sonnet?

The same as for every other Claude model, because Anthropic's help center gives one set of upload limits for all of them. In a chat, that's 500MB per file and up to 20 files; files added to a Project are capped at 30MB each. Developers using the Files API can upload files of up to 500MB. To keep files available across sessions without re-uploading, host them externally and give Claude access through MCP.

How do I upload large files to Claude?

Files of up to 500MB, and PDFs of up to 1,000 pages, can go straight into a chat. To work with larger files or many of them, you have three options. First, split the file into pieces under 500MB, or under 30MB if they're going into a Project. Second, use Claude Projects to build a persistent knowledge base of smaller files. Third, keep the files in a Fastio workspace that Claude reaches through MCP, so you don't re-upload them for each conversation. That doesn't change Claude's own upload limits.

Why is my file too big for Claude?

In a chat, Claude rejects files over 500MB and PDFs over 1,000 pages (those show an "Uploaded file is too large" error). Files added to a Project are capped at 30MB. If your file is under those limits but still causes errors, the likely cause is the context window. It's shared between your files and the conversation, and additional token limits can apply based on how much text is extracted, so several text-heavy files can exceed it even when each one is small.

Can Claude read Excel files?

Yes. Claude reads .xlsx files once code execution and file creation are turned on in your account. A spreadsheet can be up to 500MB in a chat or 30MB in a Project. For better results with data analysis, convert Excel files to CSV format first. CSV files use fewer tokens because they strip out formatting, formulas, and embedded objects, giving Claude more room to process the actual data.

Related Resources

Fastio features

Keep your files where Claude can reach them

Fastio keeps your files in a workspace that Claude reaches over MCP, with no re-uploading between sessions and built-in RAG indexing. Claude's own upload limits still apply to files you attach in a chat.