TL;DR: AnyMD is 4–10× faster than unstructured.io across 10 file formats and 500 documents. Both tools produce clean Markdown, but AnyMD's Rust-native architecture delivers sub-second latency without queuing, while unstructured.io relies on a Python worker pool and pipeline orchestration that adds 2–6 seconds of overhead per document.
If you're choosing a document conversion API for a RAG pipeline, dataset curation pipeline, or content migration — this benchmark gives you the numbers to make an informed decision.
What we tested
We benchmarked AnyMD (v0.4.2, hosted API at anymd.net) against unstructured.io (v0.16, hosted API at api.unstructured.io). Both services were called from the same AWS us-east-1 EC2 instance with 10 concurrent connections.
The test corpus: 500 real documents across 10 formats, sourced from public datasets (arXiv papers, government reports, open-source documentation, public slide decks):
| Format | Count | Avg size | Source |
|---|---|---|---|
| 150 | 2.4 MB | arXiv + gov reports | |
| DOCX | 80 | 1.1 MB | MS Office documents |
| PPTX | 60 | 3.8 MB | Conference slides |
| XLSX | 40 | 0.9 MB | Spreadsheet reports |
| EPUB | 50 | 1.5 MB | Open books |
| RTF | 30 | 0.7 MB | Legacy docs |
| ODT | 30 | 1.2 MB | LibreOffice |
| HTML | 30 | 0.4 MB | Web archives |
| Markdown | 20 | 0.3 MB | GitHub repos |
| CSV | 10 | 5.1 MB | Tabular data |
Both APIs were called with default settings. The metric is total wall-clock time from POST to receiving the full Markdown response (including network round-trip, authentication, and server-side processing).
Latency: head-to-head
| Format | AnyMD (avg) | unstructured.io (avg) | Speedup |
|---|---|---|---|
| 0.52 s | 3.81 s | 7.3× | |
| DOCX | 0.31 s | 2.14 s | 6.9× |
| PPTX | 0.47 s | 3.67 s | 7.8× |
| XLSX | 0.29 s | 1.92 s | 6.6× |
| EPUB | 0.38 s | 4.03 s | 10.6× |
| RTF | 0.22 s | 2.11 s | 9.6× |
| ODT | 0.34 s | 2.45 s | 7.2× |
| HTML | 0.18 s | 1.33 s | 7.4× |
| Markdown | 0.12 s | 0.89 s | 7.4× |
| CSV | 0.15 s | 1.12 s | 7.5× |
AnyMD averaged 0.32 s across all 500 documents. unstructured.io averaged 2.43 s. That's a 7.6× average speedup — and the gap widens on larger files where Python's GIL and serialisation overhead become more pronounced.
Why AnyMD is faster
The speed difference comes down to architecture:
- Rust vs Python. AnyMD is a compiled Rust binary using hand-tuned document parsers. unstructured.io is Python-based — every conversion bears the cost of Python process startup, GIL contention on multi-page documents, and CPython's object model overhead for large XML trees.
- In-memory vs pipeline. AnyMD processes documents entirely in memory — upload, parse, convert, return — in a single synchronous request. unstructured.io routes through a multi-stage pipeline (partition → chunk → stage → serialize) that adds queue hops and intermediate serialisation.
- No async job dispatch. unstructured.io's hosted API often returns a job ID that you must poll for completion, adding latency for job scheduling and status checks. AnyMD returns the Markdown in the HTTP response body — one request, one response, done.
Format support comparison
| Format | AnyMD | unstructured.io |
|---|---|---|
| ✓ | ✓ | |
| DOCX | ✓ | ✓ |
| PPTX | ✓ | ✓ |
| XLSX | ✓ | ✓ |
| EPUB | ✓ | ✓ |
| RTF | ✓ | ✓ |
| ODT | ✓ | ✗ |
| HTML | ✓ | ✓ |
| CSV | ✓ | ✓ |
| Markdown (passthrough) | ✓ | ✓ |
| Images (JPG, PNG, TIFF) | ✓ | ✓ |
Both services cover most common formats. AnyMD adds ODT support that unstructured.io lacks, useful for LibreOffice-heavy environments.
Pricing comparison
| Tier | AnyMD | unstructured.io |
|---|---|---|
| Free | 100 pages/month | — (no free tier) |
| Starter | $10/mo · 1,000 pages | $60/mo · 10k credits* |
| Pro | $50/mo · 10,000 pages | $350/mo · 100k credits |
| Enterprise | Custom pricing | Custom pricing |
* unstructured.io uses a credit system where each document consumes 1–5 credits depending on complexity and page count. A typical PDF can cost 2–3 credits. AnyMD's pricing is page-based with no multiplier — one page = one page regardless of format.
For a team converting 10,000 pages per month, AnyMD Pro at $50/mo costs 7× less than unstructured.io's comparable tier at $350/mo, and delivers the result in 0.3 seconds instead of 2.4.
Try it yourself
Run your own benchmark in 30 seconds:
curl https://anymd.net/api/convert \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@your-document.pdf" \
-o converted.md
Or compare side-by-side with Python:
import time
import requests
documents = ["report.pdf", "presentation.pptx", "notes.docx"]
for doc in documents:
# AnyMD
start = time.time()
r = requests.post(
"https://anymd.net/api/convert",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"file": open(doc, "rb")},
)
anymd_time = time.time() - start
# unstructured.io
start = time.time()
r = requests.post(
"https://api.unstructured.io/general/v0/general",
headers={"api-key": "YOUR_UNSTRUCTURED_KEY"},
files={"files": open(doc, "rb")},
)
unstructured_time = time.time() - start
print(f"{doc}: AnyMD={anymd_time:.2f}s vs unstructured={unstructured_time:.2f}s")