Datalab API extraction
Instructions
The Datalab API (https://www.datalab.to) runs document extraction as a managed service with more powerful models than local lift. Use it instead of the lift_extraction skill when:
- No lift server or GPU is available locally
- The document is hard (degraded scans, complex layouts, handwriting) or local extraction gave wrong/hallucinated values
- The user needs verified results —
balancedmode runs per-field verification and returns a confidence score
Requires a DATALAB_API_KEY environment variable. If it's not set, ask the user — keys come from https://www.datalab.to (free tier available).
Extracting
Use the helper script in this skill:
python .claude/skills/datalab_api/scripts/datalab_extract.py document.pdf \
--schema schema.json > extraction.json
--schemaaccepts a.jsonfile path or an inline JSON string (standard JSON Schema with apropertieskey — same authoring guidelines as thelift_extractionskill).--modepicks the speed/accuracy tradeoff:
| mode | what it does | when |
|---|---|---|
turbo |
fastest, cheapest | low-latency, less accuracy sensitive |
fast |
full parse + extraction, low latency | general use |
balanced |
multi-pass with per-field verification (default) | hard docs, when correctness matters |
--page-range 0,2-4,10limits pages;--timeoutdefaults to 600s (long docs in balanced mode take minutes).- The extraction JSON goes to stdout; the request id and the confidence score (
extraction_score_average, 1-5) go to stderr. Treat a score under ~4 as "review the output against the document".
Alternatives
- Python SDK:
pip install datalab-python-sdk(from datalab_sdk import ...), CLIdatalab. - Interactive: the Datalab playground — try schemas against documents in the browser, no code.
- API reference: https://www.datalab.to (docs linked from the site; OpenAPI at
/openapi.json).
Troubleshooting
401: bad/missing API key.429: rate limited — wait and retry.- Timeout on long docs: raise
--timeout, or reduce scope with--page-range. - Schema rejected (400): ensure it's a JSON object with
properties; avoid$refand exotic constructs.