Skip to main content
To extract the text of a PDF (scanned or not) for an LLM, call extract with the file. Doconda returns Markdown with headings, tables and columns in order plus page markers, and reads scanned pages and their tables with OCR.

Steps

  1. Store your API key in DOCONDA_API_KEY and install the SDK (pip install doconda or npm install @doconda/sdk).
  2. Call extract with a path, a public URL, bytes or a file_…/doc_… id.
  3. Pass the markdown to your model.

What you get back

  • markdown: the text with its structure. In a PDF, headings, tables and columns in order, with page markers.
  • chars, pages and truncated (if it goes over 2,000,000 characters).

Limits

  • Up to 100 scanned pages per PDF; the rest come out marked as “not read”. A PDF can have up to 1,000 pages.
  • A long scanned PDF can take a few minutes: after 120 s the API answers 202 with { "id", "status" } and you collect it with GET /extract/{id}. The SDK waits for you.
  • Files up to 20 MB. URLs can only point to public addresses.

FAQ

Word, PowerPoint, Excel (also .doc, .ppt and .xls), images (PNG, JPG, GIF, WebP), TXT and Markdown. In PowerPoint, one section per slide with its notes; in Excel, one table per sheet.
No. It’s a read, not a document: nothing is kept once you have the text, and if you don’t collect it, it’s deleted after 15 minutes. A file sent by URL, base64 or multipart is also deleted after 15 minutes.
See the pricing table. It counts toward the 120 documents per minute limit.
Review it with operation: "review": it adds an invisible text layer (OCR) to scanned pages. See Review.

Keep reading