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.
Published versions are immutable. Record the version in your audit log, and every output traces back to the exact configuration that produced it. Model updates ship separately; model pinning is available on enterprise plans.
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.