paperparse
figures, tables & captions from any paper
Scientific PDF → structured output

Every figure, table and caption, mapped.

Drop a paper. paperparse returns each figure as a hi-res crop with its caption — sub-panels and their sub-captions included — every table transcribed to markdown, and the body as clean markdown. Then it checks its own work and flags anything it can't verify.

Drop a paper PDF here — or click to choose
PDF · up to 32 MB
Every stage is on by default and content-gated — a paper with no tables costs nothing extra. Uncheck one to skip it; without figures there are no sub-panels.
Runs on your denario-web API key — sign in and it is fetched for you.
Uploading…0s

Library

Every paper you have parsed with this API key.

Settings

Your key, and how long your parses are kept.

API key

Your denario_live_… key. Stored only in this browser, sent only to the paperparse API. Issue and revoke keys on denario-web.

How long your parses are kept

A parse — the PDF you uploaded and everything extracted from it — is deleted this long after you last opened it. Delete anything sooner yourself from the Library.

Pipeline

Three passes, one clean map.

Body text and figures are extracted by the tools each is best at, then a validation stage reconciles the two so nothing ships silently wrong.

01 · OCR

Mistral reads the text

The full body is transcribed to markdown — headings, tables and math preserved — and every figure legend is captured wherever it physically sits.

02 · Vision

Gemini finds figures & tables

Each complete figure is detected as one region, re-rendered at 300 dpi and paired with its caption; with sub-panels on, every labelled panel is cropped and its sub-caption sliced. Tables are detected the same way and transcribed cell-by-cell to Markdown — uncertainties (even asymmetric error bars) preserved verbatim.

03 · Validate

It checks its own work

Off-page captions are relocated by label, a missed figure is re-detected and recovered, and anything still unresolved is flagged — never dropped in silence.

Developers

Or call it as an API.

The same engine behind this page is an authenticated HTTP service on Cloud Run. Send a PDF, get back the figure/caption map plus signed URLs for every crop.

POST /parse-fileMultipart PDF (≤32 MB) → parsed in one call.
POST /uploads → /parseGCS-first flow for any size.
GET /healthLiveness.
Auth

Send Authorization: Bearer denario_live_… — a key from denario-web. Issue and revoke there; nothing to redeploy.

# parse a paper — figures, tables & equations auto-detected
curl -X POST "$URL/parse-file" \
  -H "Authorization: Bearer $DENARIO_API_KEY" \
  -F "file=@paper.pdf"

# or the bundled client
export DENARIO_API_KEY=denario_live_…
python server/client.py paper.pdf --out results
figures.json

The authoritative map: every figure's page, label, caption, crop path and panels — plus a validation block recording repairs and warnings.