
Datalab SDK
https://github.com/datalab-to/sdk- Category
- AI Tools
- Rank
- No. 1146Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- datalab-to
- GitHub
- 11 stars
- Latest release
- v0.5.0
- Date
About
Official Python SDK for Datalab, an OCR-free document extraction and markdown conversion API.
What it does
Datalab SDK uploads documents to a hosted service, waits for processing, and returns structured result objects. It supports synchronous and asynchronous Python clients plus a command-line interface. Beyond conversion, its models cover OCR, schema-based extraction, segmentation, form filling, custom processors, tracked changes, and dependent workflow steps.
Why it's ranked here
This is a practical client for teams already committed to Datalab’s service. It handles job submission, status polling, transient retry behavior, batch concurrency, output persistence, and multiple response formats. The broad operation set and live integration tests inspire confidence, though authentication and hosted processing make it unsuitable as a standalone document engine.
What's good
The client offers both synchronous and asynchronous access without splitting the feature model. Rate limits, request timeouts, server failures, and polling are handled with scoped retries. Large JSON responses can stream to disk while key status fields are parsed incrementally. The command-line interface can recursively process directories with bounded concurrency and progress reporting.
Tradeoffs
Every client operation requires an API key and network access to the hosted service. Processing is job-oriented, so callers may wait through repeated polling and must choose timeout limits. The dependency set is substantial for a thin client. Packaging metadata and the runtime user-agent setting also report different versions, which can complicate diagnostics.
How to use it well
Use it in Python ingestion pipelines that turn mixed office files, PDFs, images, spreadsheets, presentations, HTML, or EPUB into downstream content and structured data. Prefer the asynchronous client or directory command for batches, and stream large responses to disk. It does not replace local document processing, offline OCR, storage orchestration, or a general workflow scheduler.
Technical notes+
pyproject.toml packages datalab_sdk with Hatchling, requires Python 3.10 or newer, and exposes datalab = "datalab_sdk.cli:cli"; its project version is 0.5.0, while datalab_sdk/settings.py sets VERSION to 0.4.0. datalab_sdk/client.py implements an aiohttp async core, a synchronous wrapper, Tenacity retries, polling, and incremental ijson parsing while streaming responses through temporary files. datalab_sdk/models.py uses dataclasses for request options, workflow entities, and conversion results with file-saving behavior. datalab_sdk/cli.py adds recursive discovery, bounded asynchronous concurrency, progress reporting, and output directories. integration/test_live_api.py and integration/test_readme_examples.py exercise real authenticated API calls rather than isolated unit behavior.
Observed
- License
- MIT
- Primary language
- Python
- Python support
- Python 3.10 or newer
- Installation
- Published package installed with pip as datalab-python-sdk
- Interfaces
- Synchronous Python library, asynchronous Python library, CLI, and hosted API client
- Document extensions
- PDF, common image and office formats, spreadsheets, presentations, HTML, and EPUB
- Test structure
- Repository includes authenticated live integration tests and tests for documented examples
Read from README.md, pyproject.toml, datalab_sdk/cli.py, datalab_sdk/client.py, datalab_sdk/models.py, datalab_sdk/__init__.py, integration/__init__.py, datalab_sdk/settings.py, datalab_sdk/mimetypes.py, datalab_sdk/exceptions.py, integration/test_live_api.py, integration/test_readme_examples.py, recipes/workflows/end_to_end_workflow.py, recipes/workflows/workflow_api_tutorial/2_get_workflows.py, recipes/workflows/workflow_api_tutorial/5_poll_workflow.py.
What it can do
Extract text from documents without OCR
Document file → Extracted text data
Convert documents to markdown format
Document file → Markdown formatted text
Process documents through Python SDK
Document file and Python code → Structured document data
Connect to Datalab API services
API credentials and document → API response with processed document
Extract structured data from documents
Unstructured document → Structured data format
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.