GPT, Claude, and Gemini read PDFs. Why not just send the file?

It is the first question an LLM or RAG engineer asks in 2026, and it deserves a straight answer. This page cites each vendor's own docs, not a guess.

Sometimes you should

Sending a file straight to a model is often the right call. Here are the cases where it beats a parser.

  • You have a handful of documents, not a pipeline. Uploading a PDF straight into a chat is faster than standing up a second API call.
  • The question is one-off. You need one answer from one document, not a text store you will query again.
  • The document is mostly visual. A chart, a diagram, or a hand-drawn table needs the model to look at pixels, not read extracted text.
  • You already pay for the model. If the tokens fit comfortably in your existing bill, a separate extraction step adds a vendor for no real gain.

What the model APIs accept

Each vendor documents its own request limits and its own processing path. The table below quotes each one directly.

Documented input limits, per vendor
VendorMax sizeMax pagesProcessing
Anthropic (Claude)32 MB per request600 pages (100 pages when the request context window is under 1M tokens)Each page is converted into an image, and the text on that page is also extracted alongside the image.
Google (Gemini)50 MB1,000 pagesA PDF page is rendered for visual understanding. Other text formats (TXT, Markdown, HTML, XML) go in as plain text, with no visual interpretation.
OpenAI (GPT)50 MB per file, 50 MB combined per requestNo published page capOn vision-capable models, the API extracts both text and page images from a PDF and sends both to the model.

Sources: Anthropic — PDF support (accessed 2026-09), Google — Document processing (accessed 2026-09), OpenAI — File inputs (accessed 2026-09).

What it costs in tokens

A PDF sent to a vision-capable model does not cost text tokens alone. Anthropic converts each page into an image and extracts the text on it too, so a request pays for both. Here is what each vendor documents.

Documented token cost per page, per vendor
VendorToken cost
Anthropic (Claude)1,500–3,000 text tokens per page, plus image tokens for the same page
Google (Gemini)258 tokens per page
OpenAI (GPT)Not published as a per-page figure

The clearest single comparison sits in Anthropic's Amazon Bedrock docs, for the same three-page PDF processed two ways.

Same 3-page PDF, two Bedrock processing modes
ModeTokens
Text-only modeapproximately 1,000 tokens for a 3-page PDF
Full visual modeapproximately 7,000 tokens for a 3-page PDF

Full visual mode costs about seven times the text-only mode, for the identical file. That gap is the real price of letting the model see the page layout instead of just its text.

Prompt caching narrows this. Anthropic's own PDF docs recommend caching a document you will query more than once. A cached second question then costs far less than the first one did. The full document cost still lands once, on that first question.

Source: Anthropic — PDF support (accessed 2026-09).

The formats that never reach the model

A native upload path covers PDFs well. It covers much less outside PDFs.

  • Office binaries (.docx, .xlsx, .pptx). Anthropic's own guidance: binary formats such as .xlsx or .docx are not supported in document blocks and must be converted to text or PDF first.
  • Spreadsheets, beyond the first 1,000 rows. OpenAI's API parses up to the first 1,000 rows per sheet. A longer sheet is truncated before the model ever sees the rest.
  • Email (.eml, .msg), ebooks (.epub), legacy .doc, archives. None of the three vendor docs above lists a native path for these. txtfetch reads all of them, plus 1,000+ other formats, through the same endpoint.

See the full parser list for every format txtfetch reads.

Same file, same text, every run

A parser reads bytes and returns bytes. Run it twice on the same file and you get the same string back, every time. You can diff two runs and expect zero lines to differ.

A model reads a file and writes a description of it. Two runs on the same file can paraphrase a sentence, reorder a table, or summarize a paragraph the parser would have returned whole. That is fine for a one-off answer. It is a problem for a search index you rebuild on a schedule. There, a changed byte should mean a changed document, not a changed model mood.

Where the model is the right tool, and we use one too

txtfetch's own premium tier is a vision-language model, not a hidden alternative to one. Pass ?quality=premium and a document routes through a VLM for the pages a plain parser reads poorly: scans, dense tables, and mixed layouts. It carries its own guardrails, checked before it runs. A model that reads images still needs the same care with untrusted input. See untrusted documents.

Premium (VLM) guardrails
LimitValue
Pages50
Bytes32 MB
Wall clock3 minutes

The standard path stays priced per document, not per page. The Developer plan covers 10,000 documents a month, about $0.0019 each, with a 50 MB file-size ceiling. See what comes back, measured accuracy, and the premium-quality docs.

Frequently asked questions

Why not just send the PDF straight to GPT, Claude, or Gemini?
Sometimes you should. See the section above for when. The trade-off is cost and consistency. Sending the file every time bills document tokens on every question. A model can also paraphrase or reorder text, where a parser returns the same bytes every run.
Does prompt caching fix the repeat-cost problem?
It reduces it. Anthropic's own PDF docs recommend prompt caching for repeated analysis of the same document, which cuts the cost of asking a second question. It does not change the per-page token math the first time you send a file.
Can a model API read a .docx or .eml file directly?
Not reliably. Anthropic's own guidance says binary formats such as .docx and .xlsx are not supported in a document block. Convert them to text or PDF first. None of the three vendors documents a native path for .eml, .epub, legacy .doc, or archives.
Does txtfetch use a vision-language model too?
Yes, as an optional tier. Pass ?quality=premium to route a document through a vision-language model, with guardrails of 50 pages, 32 MB, and 3 minutes. See /docs#premium-quality.
Why does this page quote tokens instead of dollar prices?
Model prices change monthly and would make this page stale within a quarter. Token counts are the documented, stable unit, and you can run them against your own model's current price yourself.

Check the numbers yourself.

The benchmark runs against a committed corpus. You can re-run it.

See the benchmarks →

Get an API key →