ShapeForge extracts clean, structured JSON from PDFs and scanned images (JPG, PNG, TIFF) — invoices, contracts, forms, and tables in seconds. Built for developers who need reliable document parsing at scale.
Upload a PDF, define the fields you want, get back structured JSON. No training, no configuration hell.
Send any PDF via our REST API or drag-and-drop interface. Invoices, receipts, contracts, medical forms, tax documents — we handle it all.
Our model identifies fields, tables, line items, dates, and amounts — even across scanned documents and multi-column layouts.
Receive a clean, validated JSON response in under a minute. Plug it straight into your database, ERP, or workflow automation.
Extracts multi-row tables, nested headers, and merged cells. Works even when column alignment is inconsistent.
High accuracyReads filled and printed form fields, checkboxes, radio buttons, and handwritten annotations in scanned documents (PDF, JPG, PNG, TIFF).
OCR + AIAuto-detects vendor, dates, amounts, tax, line items, PO numbers, and payment terms out of the box.
Zero configPulls key clauses, party names, effective dates, and defined terms. No regex gymnastics required.
Smart extractionBalance sheets, income statements, P&Ls — structured into typed JSON with currency normalization.
Fast extractionDefine your own JSON schema and we'll map document data to your exact field names and types. No preprocessing.
Bring your schemaNo account needed. Upload any PDF and get back clean, typed JSON in seconds. Invoices, receipts, contracts, forms — it handles them all.
Open live demo →Drop your document here or click to upload
PDF · JPG · PNG · TIFF · Multi-page · Up to 50MB
A single HTTP call returns structured JSON. No SDKs to install, no ML pipelines to manage.
# Upload a PDF, JPG, PNG, or TIFF and extract structured data curl -X POST https://api.shapeforge.dev/v1/parse \ -H "Authorization: Bearer sf_live_xxxxxxxxxxxx" \ -F "file=@invoice.pdf" # or receipt.jpg, scan.png, form.tiff # Scanned image example curl -X POST https://api.shapeforge.dev/v1/parse \ -H "Authorization: Bearer sf_live_xxxxxxxxxxxx" \ -F "file=@scanned-receipt.jpg"
import shapeforge client = shapeforge.Client(api_key="sf_live_xxxxxxxxxxxx") with open("invoice.pdf", "rb") as f: result = client.parse( file=f, schema="invoice" # or pass your own schema dict ) print(result.data) # {'vendor': 'Acme Corp', 'total': 1240.00, 'line_items': [...]}
import { ShapeForge } from 'shapeforge'; import { readFileSync } from 'fs'; const client = new ShapeForge({ apiKey: 'sf_live_xxxxxxxxxxxx' }); const result = await client.parse({ file: readFileSync('invoice.pdf'), schema: 'invoice', }); console.log(result.data); // { vendor: 'Acme Corp', total: 1240.00, lineItems: [...] }
// 200 OK — extraction complete { "success": true, "document_id": "doc_8xKm2pQr9", "schema": "invoice", "data": { "vendor": "Acme Corp", "invoice_number": "INV-2024-0847", "date": "2024-03-15", "due_date": "2024-04-15", "subtotal": 1100.00, "tax": 140.00, "total": 1240.00, "currency": "USD", "line_items": [ { "description": "API calls (10k)", "qty": 1, "unit_price": 800.00 }, { "description": "Storage (100GB)", "qty": 2, "unit_price": 150.00 } ] } }
Flat monthly pricing. No per-document fees, no seat limits. Start with 100 free documents — no credit card required.
We'll get back to you within 24 hours
All new accounts include 100 free documents. API key delivered instantly after checkout. Your documents are never stored — zero-retention data policy.
Early API access, 500 free document credits, and locked-in launch pricing. No commitment.
✓ Free sandbox access • ✓ No credit card • ✓ 50 API calls/day