API-first document parsing

Parse once,
mount anywhere, instantly.

Upload any document, get a structured Markdown filesystem. AI agents mount and query it with standard Unix tools.

terminal
$ curl -X POST https://api.shelv.dev/v1/shelves \
-H "Authorization: Bearer sk_live_..." \
-F "file=@contract.pdf"
// Shelv parses, structures, and stores your document...
{
"id": "shv_9k2f...",
"status": "completed",
"files": [
"/contract/summary.md",
"/contract/parties.md",
"/contract/terms/payment.md",
"/contract/terms/termination.md"
]
}

How it works

Three steps to structured documents

Step 01

Upload

Drop in PDFs, contracts, books, or regulations via the dashboard or API.

Step 02

Parse & Structure

Shelv converts documents into clean Markdown with a logical file hierarchy.

Step 03

Mount & Use

AI agents mount the shelf and interact with files using standard Unix tools.

Features

Everything you need to parse at scale

Markdown output

Every document becomes clean, structured Markdown — the universal format for LLMs.

Standard file paths

Navigate parsed documents like a filesystem. ls, cat, grep — it just works.

REST API

Full programmatic access to upload, parse, and retrieve shelves and their contents.

Webhooks

Get notified when parsing completes so your agents can start working immediately.

Templates

Define extraction schemas for recurring document types — contracts, invoices, reports.

S3 storage

Documents and parsed output stored durably in S3 with configurable retention.

Developer experience

Simple, powerful API

A few lines of curl is all it takes. Upload a document, wait for the webhook, and start reading structured Markdown files through the API.

  • Upload any PDF and get structured Markdown back
  • Browse files with familiar REST endpoints
  • Retrieve individual files by path — just like a filesystem
  • Integrate with any language or framework
api-example.sh
$ curl https://api.shelv.dev/v1/shelves/shv_9k2f/files \
  -H "Authorization: Bearer sk_live_..."

[
  { "path": "/contract/summary.md",          "size": 2841 },
  { "path": "/contract/parties.md",          "size": 1205 },
  { "path": "/contract/terms/payment.md",    "size": 3102 },
  { "path": "/contract/terms/termination.md","size": 1847 }
]

$ curl https://api.shelv.dev/v1/shelves/shv_9k2f/files/contract/summary.md \
  -H "Authorization: Bearer sk_live_..."

# Contract Summary
**Parties:** Acme Corp ↔ Widget Inc
**Effective Date:** 2025-01-15
**Term:** 24 months, auto-renewing
...

Pricing

Simple, transparent pricing

Start free, scale as you grow.

Free Trial

$0

No credit card required

  • Up to 3 documents
  • Up to 100 pages
  • Full API access
  • Webhook delivery
Start free
Recommended

Pro

$29/mo

500 pages included

  • Everything in Free
  • 500 pages/month included
  • $0.02/page overage
  • Unlimited documents
  • Priority support
Get started

Estimate your monthly cost

500 pages
$29 base + $0.00 overage = $29.00/mo

Frequently asked questions