Extraction with proof

Stop double-checkingyour AI extractions.

Every field comes back with an exact quote from the source — or honestly empty. Never guessed. proofetch turns PDFs, web pages and text into structured JSON you can actually trust: each value is traceable to where it appears in the original, sealed in a receipt you keep for your audit trail.

For document pipelines where a wrong value is expensive · Pay only for proven fields

The difference

Normal AI guesses. With documents, that's expensive.

Usual extraction

Fills every field — even when the value is made up. You have to re-check every number by hand.

With proofetch

Backs every value with a source quote, or leaves it empty. You check only the signed proof — not every field.

Use cases

What teams use it for

Invoices & accounting

Amounts, dates, tax and invoice numbers from receipts — with the source location for your audit.

Contracts

Deadlines, termination dates, parties — no invented date that bites you later.

Applications & KYC

Fields from forms and IDs — better empty than wrong.

Any document

Any PDF or web page where a wrong value gets expensive.

How it works

From source to proof in four steps.

Send source + fields

A PDF or URL, plus which fields you need (your schema).

proofetch reads it

Claude extracts the values in a structured way.

Every field is checked

Where exactly does the value appear? No proof → null.

Result + proof

Schema-valid JSON plus a signed receipt.

Try it live

See it work — no signup.

Paste any text, choose the fields you want, and run it. Each field comes back with its source quote — or an honest null.

Free demo · text only · no signup. Unprovable fields come back as null, never guessed.

Result

Hit “Run extraction” — each field comes back proven (with its source quote) or honestly null.

The proof

Every value with its source.

This is what a result looks like — every value with its source location. Nothing invented.

receipt.jsonsigned · verifiable
invoice_total:"€4,820.00"
✓ pass

source → block 7 · chars 1120–1131 · “Total due: €4,820.00”

due_date:"2026-07-15"
✓ pass

source → block 9 · chars 1402–1412 · “Due: 2026-07-15”

po_number:null
○ abstained

abstained — not found in the document, not guessed

ed25519 · kid proofetch-ed25519-2026-06 · prüfbar via JWKS

Pricing

Simple, fair pricing

You pay €0.02 per verified field — and only for fields that pass the proof. Empty or unprovable fields cost nothing.

Try it free — 50 verified fields

No credit card. Get your key by email and run a few real documents first.

Or top up for more

€10
Balance · ≈ 500 verified fields
Popular
€25
Balance · ≈ 1,250 verified fields
€50
Balance · ≈ 2,500 verified fields

Payment via Stripe · Minimum €5 · Example: ≈ €0.40 Invoice with 20 fields · ≈ €20 1,000 fields · from €5 Balance, top up anytime. You get your API key instantly after payment.

Getting started

Up and running in three steps

Buy balance

Pick a pack, pay via Stripe — from €5.

Get your API key

Right after payment, shown once.

POST to /extract

Send a source (PDF, URL or text) + your field schema.

1 · You sendPOST /extract
curl -X POST https://proofetch-vektoris-ai-workflows.vercel.app/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "type": "pdf_url", "value": "https://example.com/invoice.pdf" },
    "targetSchema": {
      "type": "object",
      "properties": {
        "invoice_total":  { "type": "string" },
        "due_date":       { "type": "string" },
        "invoice_number": { "type": "string" }
      },
      "additionalProperties": false
    }
  }'
2 · You get back200 OK · JSON + receipt
{
  "data": {
    "invoice_total": "1,190.00 EUR",
    "due_date": "2024-09-30",
    "invoice_number": null
  },
  "fields": [
    { "path": "invoice_total", "value": "1,190.00 EUR", "verdict": "PASS",
      "provenance": { "quote": "1,190.00 EUR", "start": 43, "end": 55 } },
    { "path": "invoice_number", "value": null, "verdict": "FAIL",
      "provenance": null }
  ],
  "verdict": "PARTIAL",
  "receipt": { "v": 1, "jobId": "pf_…", "outputHash": "sha256:…" },
  "billing": { "charged": true, "amountCents": 4 }
}
data
Clean JSON with your fields — proven, or honestly null.
fields[]
Per field: the exact source quote (provenance) + verdict PASS/FAIL.
verdict
Overall verdict: PASS, PARTIAL or FAIL.
receipt
Signed proof with hashes — self-verifiable, without trusting us.

Sources: type = pdf_url, pdf_base64, url, text or html. · Check balance: GET /billing/balance with your key. · You only pay for fields with verdict: PASS — unprovable fields (null) cost nothing.

Why you can trust it

You can believe every field.

Never guesses

Unsure? Then null + a flag, instead of a made-up value.

Provenance per field

Every value comes with a source quote, verifiable against the original document.

Audit-ready receipt

Every result is sealed in a signed receipt — keep it as proof of exactly where each value came from, for audits or disputes.

Machine-native

Built for autonomous agents too

proofetch is built on open standards: agents discover it via the A2A card and MCP, pay per call via x402/AP2, and verify the receipt themselves.

A2AMCPx402AP2Stripe

Ready to pay onlyfor the truth?