Automate document processing. Get structured data from your files.

Extract data from PDFs, scans and documents. Get JSON through the API, or download Excel and CSV from the Playground.

NV-24187.pdf

Faktura

Industrigatan 14, 417 07 Göteborg

Bill to

Kvarnby Precision AB

Stenbärsgatan 3, 212 36 Malmö

Invoice no.
Date
Due
DescriptionQtyAmount
Subtotal
VAT 25 %
Total

VAT reg. SE556843129101. Bankgiro 5832-1197. Payment within 30 days.

Outputapplication/json
{
  "supplier": ,
  "invoice_number": ,
  "issue_date": ,
  "due_date": ,
  "currency": ,
  "line_items": [
    {
      "description": ,
      "quantity": ,
      "amount": 
    },
    {
      "description": ,
      "quantity": ,
      "amount": 
    },
    {
      "description": ,
      "quantity": ,
      "amount": 
    }
  ],
  "subtotal": ,
  "vat_amount": ,
  "total": 
}
Hover or tap a value to trace it. With a keyboard, focus a pane and use the arrow keys.

Reads your files as they are

  • PDF
  • DOCX
  • XLSX
  • PPTX
  • CSV
  • HTML
  • PNG
  • JPG
  • TIFF
  • and scans via OCR

Document extraction features

Turn unstructured documents into structured, actionable data

Schema-driven extraction

You define the JSON schema, we extract the data. Context-aware extraction that understands your documents and returns exactly the structure you need.

schema.json

{
  "supplier": { "type": "string" },
  "invoice_number": { "type": "string" },
  "due_date": { "type": "string" },
  "currency": { "type": "string" },
  "vat_amount": { "type": "number" },
  "total": { "type": "number" }
}

output.json

{
  "supplier": "Norrfjord Verktyg AB",
  "invoice_number": "NV-24187",
  "due_date": "2026-10-14",
  "currency": "SEK",
  "vat_amount": 5893.50,
  "total": 29467.50
}

Document conversion

Convert PDFs, Word docs, scanned images, and more to clean Markdown. Works on both digital and scanned documents with built-in OCR.

Faktura NV-24187

Norrfjord Verktyg AB

Carbide end mill11 664,00

NV-24187.md

# Faktura NV-24187Norrfjord Verktyg AB| Description | Amount || --- | ---: || Carbide end mill | 11 664,00 |

Pipeline processing

Convert and extract in a single API call. Upload a PDF, get JSON back. Scales from one document to thousands without breaking a sweat.

Terminal

$ curl -X POST \    api.smole.tech/api/pipeline/file \    -F "file=@doc.pdf"

API-first design

RESTful API you can integrate in minutes. Simple endpoints, clear responses, and detailed docs so you spend time building, not debugging.

fetch-result.js

const res = await fetch(  `https://api.smole.tech/api/pipeline/${jobId}`,  { headers: { "X-API-Key": process.env.SMOLE_API_KEY } });const job = await res.json();if (job.status === "completed") save(job.result);
“We built Smole because we got tired of copying data out of PDFs like it was 2003. Documents go in, structured JSON comes out.”
Founding team, Smole

How document extraction works

Three steps. One API call. Structured data.

Register your JSON schema defining the data structure you want to extract. Get back a schema ID. Or use one of the schemas we provide to make setup even easier.

POST/api/schemas

Request

POST /api/schemasX-API-Key: ak_your_api_keyContent-Type: application/json{
  "name": "Supplier invoice",
  "jsonSchema": {
    "type": "object",
    "properties": {
      "invoice_number": { "type": "string" },
      "issue_date": { "type": "string", "format": "date" },
      "total": { "type": "number" }
    },
    "required": ["invoice_number", "total"]
  }
}

Response

{
  "id": "3f6c2b1e-8d4a-4f0e-9b7a-51c2d8e0a914"
}

Ready to automate document processing?

Start extracting structured data from your documents in minutes.