CodeSOTA · OCR endpoint #01 · live

Turn any PDF into clean Markdown
or ready-to-compile LaTeX.

A free, keyless OCR API backed by open-weight VLMs. Markdown or compilable LaTeX out. Three lines of Python or TypeScript — no signup, no key, no BS. The first of many endpoints on CodeSOTA.

# pip install hardparse
from hardparse import parse

md = parse("invoice.pdf")
print(md)  # → Markdown with tables, formulas, layout
100/ day
Free per IP
3
Lines to start
0
Keys · signup · tokens
open
Weights · benchmarks · SDKs
Why hardparse

Built for how developers
actually use OCR.

Most OCR tools flatten documents into sloppy text. Hardparse preserves structure — so the Markdown you get is the Markdown you'd write.

Layout-aware

Tables become real Markdown tables. Formulas become LaTeX. Handwriting becomes readable text. Column order preserved.

Markdown or LaTeX

Markdown for RAG and LLM pipelines. A compilable standalone .tex for papers. Same API, swap one flag.

Open & reproducible

Open-weight models. Benchmarked publicly on CodeSOTA. No black box — you can audit, self-host, or fork.

API · SDKs

Free API, no key.
100 requests a day per IP.

Ship without waiting for procurement. The API is anonymous, rate-limited by IP, and the SDKs carry zero dependencies. Email hi@hardparse.com for higher limits.

# pip install hardparse
from hardparse import parse, parse_latex

# Markdown out
md = parse("invoice.pdf")

# Or LaTeX — compilable standalone document
tex = parse_latex("paper.pdf")
open("out.tex", "w").write(tex)
# $ xelatex out.tex → out.pdf

Zero deps. Runs in Node 18+, browsers, Python 3.9+. Source on GitHub.

Not a developer?

Drop a file in the browser.

Same pipeline, same models. No install. Supports PDF, images, and scans up to 200 MB.

Drop a document here
or click to browse
PDF · images · scans · up to 200 MB
Pipeline

How it works.

Three stages, one request. We detect the layout, recognize the content, and reconstruct it as structured Markdown.

Detect layout

A document layout model finds tables, formulas, text blocks, figures, and their reading order — even across multi-column PDFs.

Recognize content

Each region goes to a vision-language model tuned for its type — table → OTSL, formula → LaTeX, text → plain. Concurrent on GPU.

Reconstruct Markdown

Results merge back in the original reading order. You get a single Markdown string plus per-page structure for downstream LLMs or RAG.

Compared

Pick your trade-off.

Compared to the alternatives: vendor APIs charge per page and give you less structure. Open models match or beat them at a fraction of the cost.

Service Price Quality
Hardparse ● live $19/mo flat · 100/day free 🟢 GPU VLM
Google Document AI $0.10–1.50/page 🟢 strong
Azure Doc Intelligence $0.50–10/1K pages 🟢 strong
Tesseract free 🔴 breaks on tables
Benchmarks

The numbers behind the pick.

Our OCR model selection isn't vibes. CodeSOTA tracks 164+ models across 97 real-world benchmarks — with reproducible scores, cost, and licensing. Dig in before you trust us.

Browse the benchmarks
  • 01GLM-OCR94.6
  • 02PaddleOCR-VL-1.594.5
  • 03dots.ocr 3B88.4
  • 04Frontier vendor85.8
FAQ

FAQ

Is it really free?

Yes. 5 pages/month free, no credit card. After that it's $19/mo flat for unlimited. I'll raise that once I have real traction.

Is there an API?

Yes — free, no key. POST /v1/parse or use the Python / TypeScript SDK. 100 requests/day per IP. See the API section above.

Can I self-host?

Not yet. If you need on-prem for compliance reasons, email me — I'll figure something out.

Why does this exist?

I needed proper OCR to feed my own RAG pipeline — something that preserved tables, formulas, and layout instead of flattening everything into sloppy text. Existing vendors either lost structure or got expensive fast. So I built this. Now you can use it too.

Part of CodeSOTA
Hardparse is OCR. CodeSOTA is the platform.

One endpoint per AI task. Backed by benchmarks you can audit. TTS, STT, and segmentation are next.

Visit CodeSOTA