PDF & Document to Markdown – OCR + Tables avatar

PDF & Document to Markdown – OCR + Tables

Pricing

from $12.00 / 1,000 ocr pages

Go to Apify Store
PDF & Document to Markdown – OCR + Tables

PDF & Document to Markdown – OCR + Tables

Convert PDFs, DOCX and images to clean Markdown with OCR fallback for scanned pages and table extraction. Per-page output plus a combined document. By NYC Data Works.

Pricing

from $12.00 / 1,000 ocr pages

Rating

0.0

(0)

Developer

Levani Zurabiani

Levani Zurabiani

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Categories: AI, Developer tools

By NYC Data Works. Convert PDFs, Word (DOCX) files and images into clean, RAG-ready Markdown.

What it does

  • Text-layer PDFs: extracts text page by page (pdfplumber).
  • Scanned pages: automatic OCR fallback with Tesseract (open source, runs inside the container, no external API).
  • Tables: detected tables are rendered as Markdown tables and removed from the running text to avoid duplication.
  • DOCX: headings, list items and tables converted to Markdown.
  • Images (PNG/JPG/TIFF, multi-page TIFF): OCR to text.
  • Output: one dataset item per page (optional) + one combined document item per file; the full combined Markdown is also saved in the key-value store as doc-N.md.

Input

FieldDescription
sourcesURLs of files you have the right to process
ocrModeauto (OCR only pages with almost no text), always, never
ocrMinCharsauto-OCR threshold, default 10
extractTablesdefault true
maxPagesper-document cap (default 200, max 2,000)
perPageOutputpush per-page items (default true)

Output example

{"url":"https://.../file.pdf","type":"page","fileType":"pdf","page":1,"markdown":"# Title...\n\n| a | b |\n|---|---|","ocr":false,"tables":1,"chars":1834}

FAQ

Which languages does OCR support? English (eng) only in this build. More languages can be added on request. How accurate is the table extraction? Good for ruled/grid tables in digital PDFs. Tables in scanned pages come out as plain OCR text, not Markdown tables. Borderless tables may be merged into text. Is my file sent anywhere? No. All processing happens inside the Apify run; no third-party APIs. Max file size? 100 MB per file (checked before download); use maxPages to limit cost on big PDFs. Is DOC/PPTX/XLSX supported? Not yet; PDF, DOCX and images only. How fast is OCR? Roughly 1–3 s per page at 1 GB memory. Can I upload a local file? Upload it to an Apify key-value store (or any public URL) and paste the URL.

Limits

  • Scanned-page OCR quality depends on scan resolution; handwriting is not supported.
  • Complex multi-column layouts may read out of order.
  • Encrypted/password-protected PDFs fail with an error item.

Safety limits

  • Max 100 sources per run; maxPages up to 2,000 per document (also applied to multi-page TIFF frames).
  • 100 MB per file (checked before download). DOCX files are checked for zip bombs (unpacked size ≤ 200 MB, compression-ratio limit) before parsing.
  • Rendered OCR pages are capped at 40 megapixels; Pillow's pixel limit is set to 50 MP.
  • OCR language is fixed to eng (the only installed language). Auto-OCR threshold default: 10 characters, so pages with a text layer are billed as text-page, not ocr-page.
  • OCR time limit: 60 s per page (Tesseract is stopped and the page counts as failed). Default run timeout: 3,600 s.
  • Page errors: if a page fails (OCR timeout, oversized TIFF frame, corrupt page), processing of that document stops at that page; the pages already processed (and paid for) are still saved in doc-N.md and the document item, with an error note. Such a partial document is not charged document-processed.

Security

  • Only public http(s) URLs are fetched. Every URL and every redirect hop (max 5) is resolved and rejected if it points to a private, loopback, link-local (incl. the 169.254.169.254 cloud-metadata address), multicast or reserved address; other schemes (file:, ftp: …) are refused. The connection is pinned to the checked IP.
  • Size limits are checked from Content-Length before downloading and enforced again while streaming, with an overall per-file deadline.
  • Query strings and credentials in URLs are stripped from logs, dataset items and SUMMARY.

Spending limit

Events are charged as work proceeds; each page is charged before it is delivered. When your Max cost per run is reached the actor stops cleanly and keeps everything already delivered; nothing beyond the limit is charged. document-processed is charged only for a document with at least one delivered page: if the limit stops the run before a document's first page, that document gets an error item and is not charged.

  • Retention: results are stored only in this run's own default dataset and key-value store, and are kept under Apify's standard storage retention for your plan (unnamed run storages are deleted automatically after the retention period). Nothing is copied elsewhere; no third-party API is called.
  • Your responsibility: you must have the rights to the content you submit and, where it contains personal data, a lawful basis and any required consent (e.g. under GDPR/CCPA). Do not submit data you are not allowed to process.

Credits & licences

Pricing

Pay-per-event – you pay only for what you process:

EventPrice
Actor start (actor-start)$0.004 per run
Document processed (document-processed)$0.004 per file with at least one delivered page
OCR page (ocr-page)$0.012 per OCR'd page
Text page (text-page)$0.0005 per non-OCR page (text-layer PDF page or DOCX)

Example: one scanned 3-page PDF costs $0.004 + $0.004 + 3 × $0.012 = $0.044. A 10-page digital PDF (no OCR) costs $0.004 + $0.004 + 10 × $0.0005 = $0.013.