Step 1
Upload
Send any PDF, image, or Office file via API or this playground.
Send any document. Get structured data back.
No templates. No training. No setup. Documents processed in memory and discarded — zero retention.
Upload a document and extract structured data instantly. First 3 extractions free — no API key required.
Drop your document here or click to browse
PDF, JPG, PNG, DOCX, XLSX, PPTX — max 20MB
Step 1
Send any PDF, image, or Office file via API or this playground.
Step 2
Bloh reads the spatial layout and extracts every field with AI.
Step 3
Get clean, structured JSON back. Every time.
Vendor, line items, totals, VAT, IBAN — from any layout, any language.
{
"vendor_name": "Müller GmbH",
"invoice_number": "2026-0847",
"gross_amount": 1992.66,
"currency": "EUR"
}
Parties, dates, clauses, obligations, governing law — no template needed.
{
"contract_title": "Service Agreement",
"effective_date": "2026-01-15",
"governing_law": "Germany",
"total_value": 48000
}
Name, DOB, document number, expiry, nationality — passports, licenses, IDs.
{
"full_name": "Anna Schmidt",
"document_number": "L01X00T47",
"date_of_birth": "1990-03-12",
"expiry_date": "2031-03-11"
}
Account holder, transactions, balances, dates — any bank, any format.
{
"account_holder": "Anna Schmidt",
"opening_balance": 4200.00,
"closing_balance": 3850.50,
"currency": "EUR"
}
Your documents are processed in memory and discarded. Nothing is stored. Ever.
Works on any document layout without training or configuration. Upload and extract.
Hosted in Europe. No data leaves EU servers. GDPR by architecture, not by policy.
| Free | Pro | Max | |
|---|---|---|---|
| Pages/month | 100 | 2,000 | 20,000 |
| API access | Playground only | Yes | Yes |
| Custom schemas | No | Yes | Yes |
| Support | Community | Priority | |
| Price | €0 | €19/mo | €79/mo |
| Start extracting | Get API key | Get API key |
Endpoint: POST /extract
Headers: x-api-key: bloh_your_api_key
Content-Type: multipart/form-data
Body:
file (required): Your documentdocument_type (optional): "invoice" | "receipt" | "contract" | "id_document" | "bank_statement" | "auto"schema (optional): JSON string with custom fieldscurl -X POST https://api.bloh.dev/extract \
-H "x-api-key: bloh_your_api_key" \
-F "file=@invoice.pdf" \
-F "document_type=invoice"
import requests
response = requests.post(
"https://api.bloh.dev/extract",
headers={"x-api-key": "bloh_your_api_key"},
files={"file": open("invoice.pdf", "rb")},
data={"document_type": "invoice"}
)
print(response.json())
const form = new FormData();
form.append("file", fs.createReadStream("invoice.pdf"));
form.append("document_type", "invoice");
const res = await fetch("https://api.bloh.dev/extract", {
method: "POST",
headers: { "x-api-key": "bloh_your_api_key" },
body: form
});
console.log(await res.json());
Zapier
Coming soon
Make.com
Coming soon
n8n
Coming soon
Bloh works as a step in your automation workflows. Extract document data and send it anywhere.