Fields your agent can trust, not guesses.
Every extracted value comes back with a confidence score and a citation to the source block, so the agent acts on grounded data — not a model's best guess.
Document parsing fast enough for a tool call, with support for latency- and throughput-optimized workflows.








import json
from datalab_sdk import DatalabClient, ExtractOptions
client = DatalabClient()
def extract_invoice(file_path: str) -> dict:
"""Tool exposed to the agent. Returns typed fields with citations."""
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(file_path, options=options)
return json.loads(result.extraction_schema_json)
# The SDK submits the job, then polls until the typed result is ready.
# Each field arrives with `*_citations` referencing source blocks. Every extracted value comes back with a confidence score and a citation to the source block, so the agent acts on grounded data — not a model's best guess.
Extract returns a number, date, or string the agent can use directly — not a blob it has to re-parse before it can do anything.
Pin Convert and Extract behind one versioned ID, so the whole fleet gets the same parse, schema, and output shape — no drift between runs.
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.