PDF to Text API — Extract Text & Tables avatar

PDF to Text API — Extract Text & Tables

Deprecated

Pricing

from $1.00 / 1,000 per results

Go to Apify Store
PDF to Text API — Extract Text & Tables

PDF to Text API — Extract Text & Tables

Deprecated

Extract text, layout and tables from a PDF (URL or base64). Uses pdfplumber locally — no external call.

Pricing

from $1.00 / 1,000 per results

Rating

0.0

(0)

Developer

Ti Gg

Ti Gg

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

PDF to Text API — Extract Text, Layout, and Tables

Extract clean text, layout and table data from any PDF, given either as a public URL or base64. Built on pdfplumber and runs entirely inside the Apify worker — no external call to a third-party OCR service. Built for knowledge engineers, legal/financial analysts, and AI agents that ingest PDFs deterministically.

Free trial

A free Apify account gives you about 5 USD of monthly credits, more than enough to extract several documents and validate the output schema before paying.

Use cases

  1. RAG ingestion — drop a batch of PDF reports into the Actor and feed the returned text and tables straight into a vector store.
  2. Contract clause mining — extract text per page, then run regex over clauses like Termination, Liability, Governing Law.
  3. Invoice line-item extraction — tables array contains one entry per detected table; consume as CSV/JSON for downstream accounting pipelines.

Input

{
"pdf_url": "https://arxiv.org/pdf/1706.03762.pdf"
}
FieldTypeDefaultDescription
pdf_urlstring""Public URL of the PDF (http/https). Mutually exclusive with pdf_base64.
pdf_base64string""Base64-encoded PDF body. Use for private documents.
include_tablesbooleantrueAlso extract tabular regions via pdfplumber's table finder.

Output (real run)

[
{
"page_number": 1,
"text": "Provided proper attribution is provided, Google hereby grants permission to reproduce the tables and figures in this paper solely for use in journalistic or scholarly works.\nAttention Is All You Need\nAshish Vaswani* Noam Shazeer* Niki Parmar* Jakob Uszkoreit*\nGoogle Brain Google Brain Google Research Google Research",
"tables_count": 0
},
{
"page_number": 2,
"text": "1 Introduction\nRecurrent neural networks, long short-term memory and gated recurrent neural networks in particular, have been firmly established as state-of-the-art approaches in sequence modeling and transduction problems.",
"tables_count": 0
}
]
FieldTypeDescription
page_numberinteger1-based page index.
textstringExtracted plain text for the page (whitespace normalised).
tables_countintegerNumber of tabular regions detected on the page.

Pricing (pay-per-event)

  • No subscription. Free monthly credits apply first.
  • 1 result = $0.001 USD (about $1 per 1 000 results).
  • Charged per item returned in the dataset; failed runs are not charged.

Source, licence, limits

  • Source: any PDF (URL or base64) you supply.
  • Engine: pdfplumber, MIT licence.
  • Limits: pure-KNN Python implementation; runs locally inside the Actor memory. No OCR — image-only PDFs (e.g. scans) will produce empty text. Encrypted/password-protected PDFs are rejected.

FAQ

Why are some pages empty? Image-only PDFs (scans) need OCR, which is intentionally out of scope for this Actor. Pre-process with an OCR engine or use a different Actor.

Does it handle multi-column layouts? Yes — pdfplumber preserves column order by reading text clusters left-to-right within x_tolerance.

Can it preserve table structure? Tables are summarised as tables_count. The raw table cells are also written when include_tables=true; downstream code reconstructs rows by grouping cells with overlapping y-values.

Is the upload size limited? Yes — Apify's per-run dataset cap is 5 MB per item. Very large PDFs should be split into per-page runs.

What about forms and checkboxes? pdfplumber does not parse AcroForm fields. If you need form data, use a PDF form-aware library such as pypdf.

How do I extract text from a private URL? Pass the file as base64 in pdf_base64. Anything that requires authentication is unsupported by design.

Other Actors from DevOne-Studio

Changelog

  • 2026-10-12 — SEO metadata (seoTitle, seoDescription); README rewritten with real output sample, FAQ, cross-links.
  • 2026-10-07 — Pricing switched to Apify pay-per-event ($0.001 per dataset item).
  • 2026-09-30 — Initial public release on the Apify Store.