Skip to main content
Pass a public document URL to Scrape and request markdown or html. Add bytes to retain the original file. Use Parse for a local file or upload.

Read selected PDF pages

Send this body to POST /web/scrape. See the Quickstart for authentication and SDK setup.

PDF options

OCR reads selected pages that lack usable text and leaves existing text layers intact. With OCR off, a scanned PDF returns failed text outputs with error_code PDF_IMAGES_ONLY inside HTTP 200. Zero data retention skips OCR. By default, PDF Markdown joins pages without separators, drops page numbers, and keeps only the first copy of headers and footers repeated across pages. On text PDFs, each large image on the first 20 pages read appears as an [image] line.

Mark page numbers

Set includeNumberedPages: true to start each page in the Markdown with a <!-- page N --> line, where N is the page’s original 1-based number. With startPage: 3, the first marker is <!-- page 3 -->. Pages are separated by a blank line, and blank pages keep their marker. Use the markers to cite page numbers or split the document by page; they don’t show when the Markdown is rendered. Responses with page markers are never served from cache. Batches accept the same option in sharedParams.parsers.pdf, and Parse accepts includeNumberedPages=true for uploaded files.

Other documents

Scrape supports HTML, XML, PDF, DOC/DOCX, XLS/XLSX, and PPT/PPTX at URLs. Spreadsheets become tables; presentations become slide content. Use Parse formats to compare upload support. Documents and original bytes are limited to 50 MiB. See Scrape limits before combining large text and binary outputs.