No KYC — no ID, no selfie, no documents. Pay in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Language: English
Get an API key

Same /read endpoint · up to 100 pages and 20 MB per file

PDF to Markdown API: send a PDF link, get its text back as Markdown

Reports, papers, manuals and price lists are often PDFs. Pass the link to the same endpoint you use for web pages and get the document's text as Markdown, ready to chunk and embed.

Last updated: · 5 min read

Quick answer

Is there an API that converts a PDF from a URL into Markdown?

Yes. With WebReaderAPI, send the PDF's URL to https://webreaderapi.com/api/v1/read: the API downloads the file and returns its text as Markdown, with headings, paragraphs, lists and simple tables. Files up to 20 MB and 100 pages are supported, at 1 credit per started block of 10 pages, from $0.07/1K pages as of October 2026. No KYC; pay in crypto.

PDF to Markdown at a glance

EndpointGET https://webreaderapi.com/api/v1/read?url=https://…/report.pdf (the same as for web pages)
LimitsPDF files up to 20 MB and 100 pages are converted to Markdown, at 1 credit per started block of 10 pages
OutputMarkdown text with headings, paragraphs, lists and simple tables; format=text for plain text
Not supportedScanned PDFs without a text layer (no OCR), password-protected files
robots.txtApplies to PDF links as to any other page
PaymentBTC, USDT, USDC, ETH, SOL, LTC, from a $25 top-up; no KYC

How are PDF pages counted?

A PDF costs 1 credit per started block of 10 pages. A 4-page brochure costs 1 credit, a 25-page report 3 credits, and a 100-page manual 10 credits. The response gives the exact figure in credits_used.

Files larger than 20 MB or longer than 100 pages return 422 unsupported_content and use no credit. For a long document, look for an HTML version of the same content first: it is often cheaper and better structured.

What does the Markdown look like?

The converter rebuilds the reading order from the PDF's text layer. Large or bold lines at the start of a section become headings, bulleted and numbered items become Markdown lists, and simple grid tables become Markdown tables.

Running headers, footers and page numbers that repeat on every page are removed, so they do not split sentences in your chunks. Two-column layouts are read column by column. Footnotes stay as text at the point where the page puts them.

Python: read a PDF and split it into chunks by heading
import os
import re

import requests

resp = requests.get(
    "https://webreaderapi.com/api/v1/read",
    headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]},
    params={"url": "https://example.com/annual-report.pdf"},
    timeout=120,
)
resp.raise_for_status()
doc = resp.json()
chunks = [c.strip() for c in re.split(r"\n(?=#{1,3} )", doc["markdown"]) if c.strip()]
print(len(chunks), "chunks,", doc["credits_used"], "credit(s)")
for c in chunks[:3]:
    print(c.splitlines()[0])

Which PDFs work best, and which do not work?

PDFs exported from a word processor, a website or a publishing tool work best: they carry a text layer with fonts and positions. Annual reports, research papers, product manuals, policy documents and price lists usually fall in this group.

Scanned documents are images of pages and have no text layer. WebReaderAPI does not run optical character recognition, so a scan returns little or no text; the word_count field shows it at once. Password-protected and encrypted PDFs are refused with 422 unsupported_content, without charge.

How do PDFs fit into a RAG pipeline?

Treat them like web pages. Read the PDF, split the Markdown along its headings, add the source URL and the page title to each chunk's metadata, then embed. Keeping the URL lets your assistant cite the document it used.

When a crawl meets links to PDFs on the same domain, it reads them with the same rules and the same robots.txt checks. See the RAG guide for a full ingestion example.

What does PDF conversion cost?

PDFs draw from the same credits as web pages: 1 credit per started block of 10 pages. With 10,000 pages for $3.75, you can convert about 10,000 short PDFs or 1,000 documents of 100 pages.

Test

10,000 pages

$3.75

$0.38/1K pages

  • Try it on your real URLs
  • Same API as the biggest pack
  • Credits never expire
Choose 10,000 pages

Starter

50,000 pages

$14.25

$0.28/1K pages

  • An AI agent or a RAG prototype
  • Crawl a documentation site
  • Credits never expire
Choose 50,000 pages

Build

100,000 pages

$21.75

$0.22/1K pages

  • Production agents and RAG pipelines
  • Batch and crawl jobs
  • Credits never expire
Choose 100,000 pages

Scale

500,000 pages

$50

$0.10/1K pages

  • Large knowledge bases
  • Higher concurrency on request
  • Credits never expire
Choose 500,000 pages

In every plan: Main-content extraction · JavaScript rendering when needed · Failed and refused pages not charged · Credits never expire

PDF to Markdown API: common questions

Not in version 1. The API reads PDFs from a public URL. To convert a private file, put it at a URL you control for the time of the request.

Does it extract text from scanned PDFs?

No. WebReaderAPI reads the text layer of a PDF and does not run OCR. A scanned document returns little or no text, which the word_count field shows.

Are tables kept?

Simple grid tables become Markdown tables. Tables with merged cells or complex layouts are kept as text in reading order, which models still read well.

Is a PDF charged if it fails?

No. Files that are too large, too long, encrypted or refused by the site are not charged. 1 credit = 1 page read without a browser; 2 credits when the page needs a browser to render JavaScript. A request that fails, or that a site's robots.txt refuses, is not charged.

From $0.07/1K pages · no KYC

Get an API key