← Blog

Can Claude Read PDFs? Limits, Charts, and Scans

September 13, 2026

AI Agents & Tools

Can Claude read PDFs? Yes. Claude doesn't just pull out the text. Anthropic's docs describe it converting each page into an image and extracting that page's text alongside it, then reading both. That's why a bar chart with no data table behind it is still readable, and why a scanned page works at all.

The limits depend on where you upload the file. As of September 2026:

Claude app (chat upload)Claude API
Size500 MB per file, up to 20 files per chat32 MB per request (varies by platform)
PagesUp to 1,000 pages per PDFUp to 600 pages per request, 100 for 200K-context models
Charts and imagesAnalyzed for PDFs of 100 pages or fewerEvery page sent as text plus an image

The detail that's easy to miss is in the app: past 100 pages, Claude reads the text only. Charts and images in a 300-page report won't be analyzed unless you split it.

How Claude reads a PDF

Per Anthropic's PDF support documentation, every PDF goes through the same two steps:

  1. Each page is converted into an image, and the text from each page is extracted and provided alongside it.
  2. Claude analyzes the text and the images together, so it can answer questions about charts, diagrams, and other non-text content, not just the words.

That design has two consequences.

Cost per page is higher than plain text. Anthropic estimates 1,500 to 3,000 text tokens per page depending on density, plus the image cost of each page. There's no separate PDF fee, just standard token pricing, and you can estimate a file with the token counting endpoint before sending it.

Vision limits are PDF limits. The docs say PDF support is subject to the same limitations as other vision tasks. Claude can make mistakes on low-quality, rotated, or very small images. A crisp digital PDF and a phone photo of a printed page aren't the same input.

PDF limits in the Claude app

For chat uploads, Anthropic's help article on uploading files to Claude lists:

  • 500 MB per file, up to 20 files per chat
  • PDFs up to 1,000 pages. Anything longer gets an "Uploaded file is too large" error
  • Full visual analysis of images, charts, and graphics for PDFs of 100 pages or fewer
  • Text only for PDFs of 101 to 1,000 pages

Project files work differently: 30 MB per file, and the content has to fit within Claude's context window. Other document types, such as DOCX, are text-only in the app, so embedded images in a Word file aren't read. If the visuals matter, export to PDF first.

One small tip from the same article: when you refer to a specific page, use the page number your PDF viewer shows, not the number printed on the page.

PDF limits on the API

The API limits are per request, not per file:

  • 32 MB maximum request size on the Messages API. It varies by platform: Anthropic lists 20 MB on Amazon Bedrock and 30 MB on Google Cloud
  • 600 pages per request, or 100 when the request's context window is under 1M tokens
  • Standard PDFs only, with no passwords or encryption

Both limits cover the entire request, including your prompt and any earlier conversation, not just the PDF. The page cap is tied to the model. In the current lineup, Fable 5.1, Opus 5, and Sonnet 5 have 1M-token windows, and Haiku 4.5 has 200K, which puts it on the 100-page cap. Claude Haiku vs Sonnet covers the other differences between those two. All active Claude models support PDF input.

Dense PDFs run out of context before they run out of pages. Small fonts, complex tables, and heavy graphics use far more tokens per page. Anthropic also notes that large PDFs can fail before reaching the page limit even when sent through the Files API. If yours does, split it into sections, or downsample embedded images, since every page becomes an image anyway.

The Files API keeps requests small. Upload a large PDF once with the Files API and reference it by file_id, instead of re-sending megabytes of base64 every turn. It's available on the Claude API, and in beta on Claude Platform on AWS and Microsoft Foundry. It isn't available on Amazon Bedrock or Google Cloud, where PDFs have to go in as base64.

If you haven't set up API access yet, our guide to getting a Claude API key covers what's free and what isn't.

Scanned PDFs, Claude Code, and the Bedrock setting

Scans. Claude can read a scanned page because it reads the page image. What doesn't work is citations: Anthropic's citations documentation says scanned PDFs with no extractable text can't be cited, since image citations aren't supported yet. So you can ask questions about a scan, but you can't get sentence-level page citations back.

Claude Code. Point Claude Code at a PDF in your project and it reads it. Short files are read whole. Past 10 pages, it reads in page ranges, up to 20 pages at a time, so a long spec gets read in chunks rather than all at once. If your sessions involve big documents, the context window matters too. Claude Code's 1M context window shows which models and plans get it.

Amazon Bedrock's Converse API. This one applies to a specific integration. Anthropic documents it for Bedrock's Converse API under the older integration it labels "Opus 4.6 and earlier." There, PDFs have two processing modes:

ModeWhat it readsRough cost for a 3-page PDF
Converse Document Chat (default without citations)Text only, no charts or images~1,000 tokens
Claude PDF Chat (requires citations enabled)Text and page images~7,000 tokens

If you're on that path and Claude seems blind to your charts, citations are probably switched off. Bedrock's InvokeModel API gives full control over PDF processing without forcing citations on.

Getting better answers from a PDF

Anthropic's own best-practice list for PDFs is short: put the PDF before your text in the request, use standard fonts, make sure text is clear and legible, rotate pages upright, and use the viewer's page numbers in prompts. A few habits on top of that:

Turn on citations for anything you'll act on. With citations enabled on a text-based PDF, answers come back with page ranges you can check in seconds.

Ask for structure. Most PDFs are read to get something out: a table of figures, a list of obligations, a set of dates. Ask for a table or JSON and you get something you can use, not a paragraph to re-read.

Split by chapter, not page count. Splitting at the document's own sections keeps each request coherent. Arbitrary 50-page chunks can cut a table or an argument in half.

Cache what you'll ask about repeatedly. If you're querying the same contract or report over many turns, prompt caching stops you paying full price to resend it. For large volumes of documents, the Batch API is the other lever.

Check the arithmetic. Reading a number off a table and calculating with it are different tasks. If the output is a calculation, verify it before it goes in a report.

Reading the same kind of PDF every month, with the same extraction, output format, and checks, is a workflow, and workflows are what get lost between uses. Taku lets you mirror a document setup someone has already tuned into your own desktop workspace and run it again next month, and the marketplace's free apps are one place to start. Taku is in Beta, and the Mac app is available now.