API Features & Capabilities

PDF Support: Sending Multi-Page Documents to Claude

Contracts, filings, invoices, reports — enterprise documents live in PDF. Claude reads them natively on every platform, seeing both the text and the page as an image.

Claude 3P 101 · Updated July 2026 · Unofficial guide

PDF support is one of the few advanced capabilities with genuinely broad 3P coverage: it works on the Claude API, Claude Platform on AWS, Amazon Bedrock, Google Vertex AI, and Microsoft Foundry, across all active models. You attach a PDF as a document content block in an ordinary Messages request and ask questions about it like any other input.

Three ways to attach a PDF

A document block's source can be a URL reference, inline base64 data, or a Files API file_id. Platform support differs: Bedrock and Google Cloud currently accept base64 only, while URL and file references work on the Claude API and Claude Platform on AWS (the Files API itself is not available on Bedrock or Vertex AI). If portability across clouds matters, base64 is the lowest common denominator.

import base64
from anthropic import AnthropicBedrockMantle

client = AnthropicBedrockMantle(aws_region="us-east-1")
pdf = base64.standard_b64encode(open("contract.pdf", "rb").read()).decode()
msg = client.messages.create(
    model="anthropic.claude-sonnet-5", max_tokens=2048,
    messages=[{"role": "user", "content": [
        {"type": "document", "source": {"type": "base64",
         "media_type": "application/pdf", "data": pdf}},
        {"type": "text", "text": "List the renewal and termination terms."}]}],
)

Placement matters: Claude performs best when documents come before the text of your question in the message content.

How Claude actually reads a page

Each PDF page is processed two ways at once: the page is converted to an image (so Claude sees layout, tables, charts, and embedded figures) and its text is extracted and provided alongside. That dual view is why Claude can answer questions about a diagram on page 12 as well as quote clause 4.3 verbatim. It also drives the cost model: a page incurs text tokens — typically 1,500–3,000 depending on density — plus image tokens under the standard vision formula. There are no additional PDF fees beyond those tokens, and PDF processing is documented as eligible for Zero Data Retention.

Bedrock caveat: on Bedrock's Converse API, full visual PDF understanding requires citations to be enabled; without citations it falls back to text-only extraction (roughly 1,000 tokens for a 3-page PDF versus ~7,000 with full processing). The InvokeModel API has no such constraint. If scanned pages or figures matter on Bedrock Converse, turn citations on.

Size limits

LimitValue
Request size32 MB whole payload (varies by platform)
Pages per request600 (100 when the request's context window is under 1M tokens)
PDF typeStandard PDFs only — no passwords or encryption

Dense documents can fill the context window well before the page limit: at a few thousand tokens per page, a few hundred dense pages approaches a million tokens. Split large documents, downsample embedded images, or summarize in stages. And because per-document costs are hard to guess, run the token counting endpoint on a representative file before committing to a volume workload.

Patterns that keep PDF workloads affordable

The official best practices are all cost levers. Use prompt caching when the same document is analyzed repeatedly — the PDF becomes a cached prefix and later questions re-read it at a fraction of the price. Use batch processing for high-volume document pipelines where the Message Batches API is available (first-party API and Claude Platform on AWS), or the cloud-native batch offerings on Bedrock and Vertex AI. And if you need verifiable quotes, enable citations on the document block: PDF citations come back as page locations, though scanned PDFs without extractable text cannot be cited.

Where to go next

See the Files API for upload-once document reuse, citations for grounded quoting, and image inputs for the vision mechanics that PDF pages share. The feature matrix tracks platform status.

Sources