Every extracted value points back to the block it came from.
Each field carries the block ID and page coordinate on the same response object as the value.
In a regulated workflow, every value has to trace back to a page, every pipeline change needs a version, and the data can't leave your boundary. Datalab gives you all three from one response.








Read study →"Datalab parses our regulatory submissions into structured data we can audit. The on-prem deployment is what made the procurement work."
import json
from datalab_sdk import DatalabClient, ExtractOptions
client = DatalabClient()
schema = {
"type": "object",
"properties": {
"invoice_number": {"type": "string"},
"total_amount": {"type": "number"},
"vendor_name": {"type": "string"},
},
}
options = ExtractOptions(page_schema=json.dumps(schema), mode="balanced")
result = client.extract("invoice.pdf", options=options)
extracted = json.loads(result.extraction_schema_json)
# extracted includes per-field citations to source blocks:
# {
# "invoice_number": "INV-2024-001",
# "invoice_number_citations": ["block_123"],
# "total_amount": 1500.00,
# "total_amount_citations": ["block_142"],
# ...
# } Each field carries the block ID and page coordinate on the same response object as the value.
Record the version in your audit log; a replay months later produces bit-identical output by definition.
Choose EU residency, VPC, on-prem, or fully air-gapped — and we're SOC 2 Type II audited every year.
Start with an API key — nothing to host or operate.
Sign up →Run in-region, with no egress to US infrastructure.
Sign up →Runs inside your own AWS, GCP, or Azure account.
Talk to sales →Fully offline, the same model weights, dedicated support.
Talk to sales →Free tier with up to $20 in credits per month — no card required.