What a PDF costs in tokens when Claude reads it

When Claude reads a PDF, each page is counted as extracted text plus an image of the page, so the cost in tokens grows with every page. This guide goes through each free way to find that cost: how the Claude API counts a PDF, and how the Claude Code Read tool reads one. Each section gives the numbers and says where the method stops.

How the Claude API counts a PDF

This method gives you an estimate before you send a PDF, using the figures Anthropic publishes for the Claude API. When Claude receives a PDF, the system converts each page of the document into an image, and the text from each page is extracted and provided alongside each page’s image. The token count depends on the total text extracted from the document and the number of pages, and standard API pricing applies with no additional PDF fees.

  1. Count the pages: each page is charged as extracted text plus one page image.
  2. Estimate the text at 1,500–3,000 tokens per page, depending on content density.
  3. Add the image cost of each page using Anthropic’s image formula.
  4. For an exact figure for a specific PDF, use Anthropic’s token counting.

The image part uses Anthropic’s formula: each 28×28-pixel block of an image is one visual token, so an image costs ⌈width / 28⌉ × ⌈height / 28⌉ visual tokens. On the high-resolution tier, for Claude 4.7 and later models, images have a 2,576 px maximum long edge and 4,784 maximum visual tokens; on the standard tier, for all other models, the limits are 1,568 px and 1,568 visual tokens, and larger images are downscaled before processing. Anthropic’s own table gives a 1000×1000 px image as 1,296 tokens on both tiers.

Anthropic gives a typical range for the text part and a formula for the image part, not a single per-page total. On the first-party Claude API, a request is limited to 128 MB and 600 pages, or 100 pages when the request’s context window is under 1M tokens, and both limits are on the entire request payload, including any other content sent alongside PDFs; the file must be a standard PDF with no passwords or encryption. Anthropic notes that dense PDFs, with many small-font pages, complex tables or heavy graphics, can fill the context window before reaching the page limit, and suggests splitting large PDFs into chunks and enabling prompt caching for repeated analysis.

How Claude Code’s Read tool reads a PDF

This method is the one you already have if you use Claude Code: its Read tool reads PDF files for you. It treats PDFs differently from text files. For text files, one Read call returns at most 25,000 tokens by default and refuses a whole file over 256 KB; images, PDFs and notebooks keep their own limits.

  1. Short PDFs are read whole.
  2. For a PDF longer than 10 pages, Claude reads in page ranges (a pages parameter such as "1-5"), up to 20 pages at a time.
  3. Page-range reads need pdftoppm: install it with `brew install poppler` on macOS.

Page-range reads render pages with pdftoppm from poppler-utils, so without it a page-range read fails with 'pdftoppm is not installed'. Claude Code also resizes and recompresses large images to fit the model’s image size limits before sending them. The Claude Code docs page does not state a tokens-per-page figure for PDFs read with the Read tool, so for a per-page number you fall back on the API figures above.

With Metallurgy

Metallurgy is not released yet and its price is not set. When it ships, it will be sold once, with no subscription, like every Handy Tools app, and it will require macOS 27 or later on Apple silicon. It cuts what coding agents spend on tokens by doing their reading on your Mac: Claude Code hands it a PDF, Apple’s on-device frameworks read it, and the agent gets back only the passages, fields or failures it needs. Claude Code connects through one skill installed at ~/.claude/skills/metallurgy/SKILL.md and calls the command-line tool directly, with no MCP server yet; pdf-to-text returns text per page, or only matching lines with --grep, and local-search returns ranked passages with file, page and line references. Every run adds one record to ~/Library/Application Support/Metallurgy/runs.sqlite, and it never stores file contents or results.

For PDFs, its savings estimate counts a page as 1,300 tokens, as measured in Claude Code: Claude Code read PDF pages as images at about 1,300 tokens each in the benchmark, where Anthropic’s API documentation puts a page at 1,500 to 3,000 text tokens plus image tokens, so this is the lower figure. On that count, a 20-page PDF costs Claude about 26,000 tokens, because it reads every page as an image. The measured results come from foundation-model-skills 0.3.1, the free Claude Code plugins Metallurgy’s engine came from, run in September 2026 with Claude Opus 5.5 and the same fixtures; each task ran in two arms, Claude reading the file itself and Claude using the on-device tools, 3 runs each, and the figures are medians, with cost what the Claude Code CLI reports at list price. On ops-review-20p, a 20-page PDF, Claude cost $0.246 reading it itself against $0.056 with the tools, down 77%, with fresh input tokens (median input tokens plus median cache-write tokens) down from 28,892 to 5,372. On the 20-page review and Apple’s 77-page 10-K, cost fell 56 to 77%; without the tools Claude read 18 to 23 page images per question, and with them no page image left the Mac and it read 1 to 17 KB of extracted lines or passages. All twelve tasks together cost $1.829 against $0.791, down 57%, and with the tools installed Claude read the file itself in 0 of 3 runs.

The savings shown in the app are estimates, not measured bills, and none have been measured on Metallurgy itself yet. Small inputs can go the other way: in the benchmark, single small images and short documents cost 12% to 33% more with a tool than without. The first OCR or semantic search after a restart or a long idle can take 20 to 30 seconds while Apple’s models load, and OCR still misreads characters in dense or degraded text; on the 20-page ops-review.pdf it reproduces 62% of the text layer’s sentences exactly. Audio is not estimated, and extract, classify and translate --engine model also need Apple Intelligence.

Metallurgy is coming soon.

It will be sold like every Handy Tools app: one fee, lifetime access.

It will need macOS 27 or later, Apple silicon.

Sources

Checked on 13 November 2026.