Hosted pdf-inspector · API + MCP

PDFs in.
Markdown out.

Send a PDF and get back Markdown with the headings, lists, tables and reading order intact. We host Firecrawl's open-source pdf-inspector engine and add OCR for scanned pages. You can set it up with one prompt in Lovable, Bolt, Cursor or Claude.

  • Files deleted after processing
  • OCR for scanned pages
  • Credits from $10, no subscription needed
Example
PDF

Q3 Report

Revenue by region

Revenue grew in every region. Europe led with 17% growth, driven by the new self-serve plan.

RegionQ2Q3
EU1.2M1.4M
US2.1M2.3M
APAC0.6M0.7M
— 2 —
# Q3 Report

## Revenue by region

Revenue grew in every region. Europe led with 17% growth, driven by the new self-serve plan.

| Region | Q2 | Q3 |
|---|---|---|
| EU | 1.2M | 1.4M |
| US | 2.1M | 2.3M |
| APAC | 0.6M | 0.7M |
pdf_type text_basedpages_with_tables [1]ocr not neededcost 1 credit

Try it

Try it without a key

Put our URL in front of any PDF link to get Markdown back. It works in a browser, in curl, or in any agent that can fetch a URL.

https://api.pdfinspector.com/md/https://example.com/report.pdf

Without a key you get one test call a day, up to 10 text pages, without OCR. For more, buy credits.

Output

What you get back

Markdown you can put straight into a prompt, plus details about the file so your app can decide what to do next.

Structured MarkdownHeadings (H1–H4), lists, bold, italics, links and code blocks. Page numbers and broken hyphenation are removed.
TablesRuled and borderless tables become Markdown tables, including financial tables and tables that continue onto the next page.
Reading orderMulti-column pages are read one column at a time, not straight across.
Scanned pagesEach page is checked first. Text pages are extracted in milliseconds. Only scanned pages go through OCR, and only those are billed at the OCR rate.
File detailsTitle, author, dates, page count, which pages have tables or columns, and whether the PDF is text-based, scanned or mixed.
Text positionsOptionally, every text snippet with its position and font.
Not included
Field extractionYou get Markdown, and your own LLM pulls out invoice numbers, totals or names. That's cheaper and more accurate than sending the LLM the raw PDF.
Charts and imagesCharts aren't read and images aren't described.
Copies of your fileOnce it's processed, we can't give it back to you.

Setup

Set it up with one prompt

The prompt points your AI builder at our machine-readable docs, so it writes the integration correctly, including keeping your key on the server.

Prompt
Add PDF upload to my app using PDF Inspector.
Read https://pdfinspector.com/llms.txt first and follow it.

- Let users upload a PDF (max 50 MB).
- Send it to POST https://api.pdfinspector.com/v1/convert
- Use the API key from the secret PDFINSPECTOR_API_KEY.
  Call the API from a server function, never from the browser.
- Show a progress state (scanned PDFs can take a few seconds).
- Show the returned "markdown" nicely formatted.
- Then send the markdown to our AI and summarize the document.
  1. Get an API key and buy credits.
  2. Paste the prompt into your tool.
  3. Upload a PDF in your app to test it.

The setup guides show where the key goes in Lovable, Bolt, v0, Replit, Windsurf and the Claude app.

Benchmark

Fastest in the benchmark, and best at tables

pdf-inspector's own benchmark on the 200-PDF opendataloader-bench corpus, comparing local parsers without OCR.

Table accuracy

TEDS score, 0 to 1. Higher is better.

pdf-inspector0.814
LiteParse0.693
OpenDataLoader0.489
PyMuPDF4LLM0.401
MarkItDown0.273

Time for all 200 PDFs

Seconds, run locally. Shorter is better.

pdf-inspector0.47 s
LiteParse0.75 s
OpenDataLoader2.57 s
MarkItDown16.2 s
PyMuPDF4LLM17.1 s
All scores
EngineOverallReading orderTablesHeadings200 PDFs
pdf-inspector0.8750.9150.8140.7880.47 s
LiteParse0.8730.9130.6930.8110.75 s
OpenDataLoader0.8310.9020.4890.7392.57 s
PyMuPDF4LLM0.7350.8860.4010.42417.1 s
MarkItDown0.5890.8440.2730.00016.2 s

Source: pdf-inspector README, refreshed July 31, 2026 on an Apple M4 Pro. Native-text extraction only. The hosted API adds network time, and OCR pages take a few seconds.

Privacy

We don't keep your files

People upload contracts, bank statements, medical letters and CVs. PDF Inspector holds each file only while converting it, then deletes it. This applies on every plan.

Deleted after processing
Files exist only while your request runs.
Not logged
File contents and extracted text never appear in our logs, error logs included.
Not used for training
Your documents never train AI models.
Results expire
Long-document results are deleted when you fetch them, or after one hour.

What we keep: timestamp, key ID and page count, for billing. Details

For AI agents

How an agent uses PDF Inspector

Every step is an HTTP call or an MCP tool, and every error says what to call next. Paying is the one step that needs a person.

  1. Test without a key

    One call a day, up to 10 text pages.

    GET https://api.pdfinspector.com/md/https://example.com/report.pdf
    
    200 OK · text/markdown
    # Q3 Report …
  2. Create a key

    The key is returned right away, with no credits. The agent gives its user the checkout link.

    POST https://api.pdfinspector.com/v1/keys
    { "email": "you@example.com" }
    
    201 Created
    { "key": "sk_live_…", "credits_remaining": 0,
      "checkout_url": "https://pdfinspector.com/checkout/…" }
  3. Run out of credits

    The error names the next step and links to checkout for the user.

    402 Payment Required
    { "error": { "code": "insufficient_credits",
      "next_action": { "type": "buy_credits", "url": "https://pdfinspector.com/checkout/…" } } }

Pricing

Pricing

Text pages cost 1 credit each, and scanned pages that need OCR cost 15. Buy credit packs as you need them, or subscribe for a lower price per page.

PlanPriceCreditsPer text page
Credit pack$1010,000, valid 12 months$0.001Buy
Credit pack$5060,000, valid 12 months$0.00083Buy
Scale$49 / month100,000 a month, priority queue, invoice billing$0.00049Subscribe

How credits work

  • Checking a PDF with /v1/inspect is free, and so are failed requests.
  • Subscription credits reset monthly and don't roll over. Pack credits last 12 months. Subscription credits are used first.

Spending controls

  • Auto top-up buys a pack when your balance drops below a limit you set.
  • Per-key spend caps stop a runaway loop from draining your balance.
  • When credits run out, your agent gets a checkout link to pass to you. Agents can't pay. Only you can.

Questions

Is this the official pdf-inspector?
No. PDF Inspector is an independent service that hosts Firecrawl's open-source pdf-inspector library (MIT license) and adds OCR, API keys and an MCP server. It isn't affiliated with or endorsed by Firecrawl. The library itself is free on crates.io, PyPI and npm if you'd rather run it yourself.
Is there a free tier?
No. Without a key you can make one test call a day, up to 10 text pages. After that you buy credits, starting with a $10 pack.
Why pay for a hosted API when the library is free?
You don't have to compile or bundle anything or set up OCR. The API runs from edge functions and frontend-only apps where native modules don't, accepts URLs, and agents can use it through MCP.
Do I need a backend?
No. A publishable key (pk_) is locked to your domain and works from the browser. If your app has a backend or edge functions, use a secret key (sk_) there. The setup prompts do this by default.
How big can a PDF be?
Up to 50 MB and 500 pages. Send pages, for example 1-5, to convert part of a long document and pay only for those pages.

Add PDF reading to your app

Get a key and paste one prompt. Setup takes about five minutes.