Skip to content

PDF to Text & Markdown – Extract Text, Tables & Metadata

Try for free

Extract text, Markdown, tables and metadata from PDF URLs or from every PDF linked on a web page. Per-page text, page ranges, password-protected PDFs. Fast, no login needed.

📄 PDF to Text & Markdown – Extract Text, Tables & Metadata

Turn any PDF link into clean text, LLM-ready Markdown, tables and metadata in seconds. Paste PDF URLs, or a web page that links to PDFs, and get one structured row per document, ready to export as JSON, CSV or Excel. No login, no uploads, no setup.

✨ Why use PDF to Text & Markdown?

  • ⚡ Fast – text extraction runs on PDFium; 10 PDFs with 100 pages finish in about 10 seconds, a 1,300-page document in under a minute.
  • 🤖 LLM- and RAG-ready Markdown – headings, paragraphs, bold labels and bullet lists are rebuilt from the PDF layout, with --- between pages.
  • 📊 Tables – ruled tables come back as rows of cells and as Markdown tables.
  • 🔗 Crawls pages for PDFs – give it a web page and it extracts every PDF linked there (up to your limit).
  • 🧾 Full metadata – title, author, subject, keywords, creator, producer, creation and modification dates (UTC), PDF version, page size.
  • 💸 Cheap and fair – you pay per extracted document, never for failed downloads.

🎯 Use cases

  • 🧠 AI and RAG pipelines – feed reports, papers and manuals into vector databases as Markdown or per-page chunks.
  • 📚 Research – pull the text of academic papers, government reports and whitepapers in bulk.
  • ⚖️ Legal and compliance – extract filings, contracts, policies and forms for search and review.
  • 💼 Finance – read annual reports, fund factsheets and statements; grab their tables.
  • 🔎 Monitoring – schedule a run on a page that publishes PDFs (tenders, press releases, price lists) and get the new documents' text.
  • 🗂️ Archiving and search – index document libraries with metadata and full text.

🚀 How to use

  1. Paste one or more PDF URLs (or web pages that link to PDFs) into PDF URLs or web pages.
  2. Pick the output: Markdown, plain text, per-page text, tables, one row per document or per page.
  3. Optionally set a page range, a password for protected PDFs, or limits.
  4. Click Start and download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
urlsPDF links, or web pages whose PDF links should be extracted. Google Drive / Dropbox share links and arXiv abstract pages work too.
maxPdfsPerPageMax PDFs taken from each web page (default 20).
includeMarkdown / includeFullText / includePagesWhich text fields each row contains.
extractTablesDetect ruled tables (off by default; slower on long documents).
outputFormatdocument (one row per PDF) or page (one row per page).
pageRangee.g. 1-5, 8, 12-. Empty means all pages.
passwordPassword for protected PDFs.
maxDocuments, maxFileSizeMb, timeoutPerPdfSecs, maxConcurrencyLimits and download settings.
{
  "urls": [
    "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
    "https://arxiv.org/pdf/1706.03762"
  ],
  "includeMarkdown": true,
  "extractTables": true,
  "pageRange": "1-10"
}

📤 Output

FieldDescription
url, finalUrl, sourcePageUrl, fileNameWhere the PDF came from (and the page it was found on).
title, author, subject, keywords, creator, producerDocument metadata.
creationDate, modificationDateISO 8601, converted to UTC.
pageCount, extractedPageCount, pdfVersion, pageWidthPt, pageHeightPt, fileSizeBytes, isEncryptedFile facts.
fullTextThe whole document as plain text, line breaks kept.
markdownMarkdown rendition (headings, paragraphs, lists, tables).
pages[{pageNumber, text}] for every extracted page.
tables, tableCount[{pageNumber, tableNumber, rows, markdown}] when table detection is on.
charCount, wordCount, emptyPageNumbersSize of the text and pages without a text layer.
textExtractionStatus, warning, recommendedActiontext_extracted or no_text (scanned or blank), with a plain-language hint. URLs that fail (download errors, web pages without PDFs, damaged files) are not saved as rows: they are listed with the reason in the run's OUTPUT record (failedInputs) and in the status message.

Example row (text shortened):

{
  "url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
  "fileName": "fw9.pdf",
  "title": "Form W-9 (Rev. March 2024)",
  "author": "SE:W:CAR:MP",
  "subject": "Request for Taxpayer Identification Number and Certification",
  "keywords": "Fillable",
  "creator": "Designer 6.5",
  "producer": "Designer 6.5",
  "creationDate": "2024-03-06T13:18:13.000Z",
  "modificationDate": "2024-03-06T13:18:13.000Z",
  "pdfVersion": "1.7",
  "pageCount": 6,
  "pageWidthPt": 612.0,
  "pageHeightPt": 792.0,
  "isEncrypted": false,
  "fileSizeBytes": 140815,
  "extractedPageCount": 6,
  "charCount": 37689,
  "wordCount": 6272,
  "textExtractionStatus": "text_extracted",
  "warning": null,
  "error": null,
  "fullText": "Form W-9\n(Rev. March 2024)\nRequest for Taxpayer\nIdentification Number and Certification\n...",
  "markdown": "Form W-9 (Rev. March 2024)\n\n# Request for Taxpayer Identification Number and Certification\n\n...",
  "pages": [{ "pageNumber": 1, "text": "Form W-9\n(Rev. March 2024)\n..." }]
}

💰 Pricing

You pay $1.50 per 1,000 extracted PDFs ($0.0015 per document), whatever the page count, plus normal platform usage: compute time and the datacenter traffic of the downloads ($1 per GB). There is no start fee. Failed downloads, invalid URLs and files that are not PDFs are free.

Example from a test run: 10 PDFs (5.5 MB, 100 pages) cost $0.024 in total: $0.015 in document fees plus about $0.009 of compute and download traffic. 1,000 typical PDFs cost roughly $2–3 in total.

❓ FAQ

Is it legal? Extracting text from PDFs you are allowed to access is legal. Respect copyright and the terms of the sites you download from.

Do I need a login or proxy? No. Downloads use datacenter proxies by default. Files behind a login are not supported.

Does it read scanned PDFs? It reads the embedded text layer. Scanned (image-only) pages are flagged with textExtractionStatus: "no_text" or listed in emptyPageNumbers so you can route them to OCR.

How big can a PDF be? Up to 100 MB by default (raise maxFileSizeMb up to 500 MB). Very long documents are split across fields so each row stays under the dataset size limit; use per-page rows or a page range for huge files.

Why is a field empty? Many PDFs have no title, author or keywords in their metadata; those fields are then null.

Can I schedule it or use the API? Yes. Schedule runs, call it through the API, or connect it to your workflows with webhooks.

⚠️ Limits

  • No OCR: image-only pages are detected and reported, not converted to text.
  • Table detection finds tables drawn with lines; borderless tables stay in the text.
  • Markdown structure is inferred from font sizes and layout; complex multi-column layouts may need light cleanup.
  • PDFs that need a login, cookies or a captcha cannot be downloaded.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.