PDF to text API, page by page
Extract the text of a PDF from its URL: downloads a public PDF (up to 10 MB) and returns the text page by page, with title, author, page count and character counts. Choose a first page and how many pages to read (up to 200); cap the output with maxChars. arXiv abstract links are read as the PDF. Scanned PDFs without a text layer, encrypted files and non-PDF URLs fail uncharged. Use to read papers, invoices, reports and manuals into an agent.
When to use it
- Extract the text of a public PDF by URL
- Read only a range of pages from a long report
- Feed PDF content to an LLM
Guide: PDF to text API
Inputs
| Name | Type | Description |
|---|---|---|
url (required) | string | Absolute public http(s) URL of the PDF |
firstPage | integer | First page to read (default 1) |
pages | integer | How many pages to read (1-200, default 20) |
maxChars | integer | Maximum characters of text returned across all pages (1000-200000, default 50000) |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/pdf/text?url=https%3A%2F%2Fbitcoin.org%2Fbitcoin.pdf"
Or one of your 25 free calls, no key:
curl "https://tools.funwords.eu/pdf/text?url=https%3A%2F%2Fbitcoin.org%2Fbitcoin.pdf&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"url": "https://bitcoin.org/bitcoin.pdf",
"title": null,
"author": null,
"totalPages": 9,
"firstPage": 1,
"pagesRead": 1,
"chars": 46,
"truncated": true,
"pages": [
{
"page": 1,
"chars": 46,
"text": "Bitcoin: A Peer-to-Peer Electronic Cash System"
}
]
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is pdf_text, and the first 25 successful calls are free:
https://tools.funwords.eu/mcp
Questions
Does it OCR scanned PDFs?
No, it extracts the text layer. Scanned images without text return little or nothing.
How do I pay?
Each successful call costs $0.005; failed calls are not charged. The first 25 calls are free. Then pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.