Folio

What gets billed

Two things are counted, in different units, because only one of them has pages.

Documents. One per successful conversion, whatever the file's length. A .docx has no page count until it is laid out, so counting its pages would mean inventing a number.

OCR pages. One per scanned page actually sent to an OCR model. This is the only line item with a real cost behind it.

PlanPriceDocumentsOCR pages
FreeFree200None
Starter€5/mo10,000750
Team€49/mo100,00010,000

Past the allowance, OCR is €0.006 per page. Documents that carry their own text are not billed past the count above.

What a mixed PDF costs

A 200 page contract with 12 scanned pages in it is 1 document and 12 OCR pages. The other 188 pages carried their own text and were extracted locally for nothing.

Every response says which pages those were:

"pages": { "total": 200, "text": 188, "ocr": 12, "ocrPages": [4, 17, 18, …] }

When it is decided

Before the work, not after. A PDF is inspected page by page first, so the number of OCR pages is known before any model is called. If that number is more than the allowance left, the request is refused with ocr_quota_exceeded and nothing is billed, rather than running up a charge and reporting it afterwards.

Usage is recorded only once a conversion has succeeded. Failures cost nothing.

Free plans get no OCR

Not an oversight. Text extraction costs a few hundred microseconds of processor time and can be given away; OCR costs real money per page. Keeping it behind a card is what lets the free tier stay genuinely useful instead of rationed.

The playground is free without an account at all. It runs in your browser and will tell you how many pages of your own document would need OCR before you commit to anything.

Where the token numbers come from

The playground and the marketing pages quote a token comparison. This is it, and it is the whole of it — one document, measured once, reproducible from the repository.

PathTokens
Handed over as a PDF
Rendered pages plus extracted text, which is what most agents send.
16,631
Plain text extraction
pdftotext, pdfplumber, pdfjs. Free, and on this document, equivalent.
3,893
Converted to Markdown
What Folio returns.
3,865

8 pages of ordinary contract prose, counted with Anthropic’s count_tokens against claude-opus-5 on 2026-08-07. The document is fixtures/dense-contract.pdf in the repository; reproduce it with pnpm benchmark-tokens fixtures/dense-contract.pdf.

Read the middle row before quoting the outer two. On a document with text on every page, plain extraction gets you the same token count Folio does, for nothing. The saving above is real against handing the model the PDF, which is what most agent integrations do, and it is not real against tooling you could run yourself.

What plain extraction does not do is read a page that has no text layer. It returns nothing for that page, and no error. That is the difference the API is for, and it is a completeness difference rather than a token one.

We do not publish a figure for how often documents contain scans, because we have no corpus to support one. The playground counts yours.