API Reference
Parse a document
Convert a PDF or image into Markdown plus structured, reading-order content blocks.
POST
Upload a document and receive it as a single Markdown string plus a flat list of content blocks in reading order. Accepts a single PDF or image (
.pdf, .png, .jpg, .jpeg). PDFs are parsed page by page; an image is treated as a single page.
Authentication
string
required
Your API key as a bearer token:
Bearer sk-pr-....Request
Send the document asmultipart/form-data.
file
required
The document to parse. Must be a PDF or image (
.pdf, .png, .jpg, .jpeg), up to 50 pages.string
default:"mineru2.5-pro-2605"
The parsing model to use.
mineru2.5-pro-2605 is currently the only option and is used by default if omitted.Models are versioned and never change behavior once released. For production, we recommend pinning this explicitly so a future default model never alters your results without you opting in.Coming soon
These options are planned but not yet available – the endpoint doesn’t accept them today, and the features they control are currently off. The response fields they populate (text_level, img_path, content) are still returned on every block, but are always null for now.
boolean
Coming soon. Detect heading levels. When available, title blocks will carry a
text_level (1–4) and headings will render with matching # depth in markdown. Today, titles are returned flat.boolean
Coming soon. Crop images, tables, and charts to hosted storage and return their URLs as
img_path on the relevant blocks (and as image links in markdown). Today, those blocks carry no URL.boolean
Coming soon. Generate a short text description of each image and chart block, returned as
content. Today, no description is generated.Response
string
The whole document rendered as a single Markdown string – headings, with tables and equations inline. (Per-level heading depth and hosted image links are coming soon – see
title_levels and extract_images.)integer
The number of pages parsed.
1 for an image.object[]
A flat list of content blocks in reading order across the whole document (this mirrors MinerU’s
content_list). Every block carries the full set of fields below; which ones are populated depends on type (the rest are null). Additional fields (e.g. captions and footnotes) may also appear and are passed through as-is.Errors
ParseRouter uses standard HTTP status codes. Error responses have the shape{ "detail": "..." }.
You’re only charged for successful parses (
200). Failed requests – including 400, 413, and 503 – never consume credits.