UniteLabs
Use Cases

Custom Apps and LIMS Integration

Connect your LIMS, Benchling, or custom lab application to UniteLabs via the REST API.

Lab software rarely lives in a single system. Sample data is in your LIMS (Benchling, LabVantage, or similar), experimental requests come through internal portals, and results need to flow back automatically. UniteLabs exposes a full REST API so any external system can trigger automation and receive results — no manual handoff required.

What this unlocks

  • Trigger workflows from your LIMS: submit a sample ID, get results back automatically
  • Return data to external systems: artifacts and outputs of runs are accessible via API
  • Build custom scientist-facing UIs: front your workcell with a purpose-built application
  • Event-driven automation: trigger runs in response to upstream events in your data pipeline or vice versa

How it works

The UniteLabs REST API exposes endpoints for managing devices, triggering workflow runs, and retrieving results. Any system that can make HTTP requests can integrate — no SDK required.

lims_integration.py
import httpx

UNITELABS_API = "https://{tenant_id}.unitelabs.io/v1"
HEADERS = {"Authorization": f"Bearer {API_TOKEN}"}


def fetch_workflow_by_name(name: str) -> str:
    response = httpx.get(
        f"{UNITELABS_API}/workflows",
        headers=HEADERS,
        params={"name[eq]": name},
    )
    return response.json()["data"][0]["id"]


# Resolve workflow by name, then trigger a run with sample metadata from your LIMS
workflow_id = fetch_workflow_by_name("cell-viability-assay")
response = httpx.post(
    f"{UNITELABS_API}/workflows/{workflow_id}/runs",
    headers=HEADERS,
    json={
        "parameters": {
            "sample_id": "SMP-00123",
            "plate_barcode": "PLT-8821",
        }
    },
)
run_id = response.json()["id"]

# Poll for completion and retrieve artifacts
result = httpx.get(
    f"{UNITELABS_API}/runs/{run_id}/artifacts",
    headers=HEADERS,
)
print(result.json())

For richer integrations — like subscribing to real-time instrument events or reading sensor streams — the UniteLabs SDK can also be embedded inside your application server.

Common integration patterns

LIMS → UniteLabs → LIMS: A sample registered in Benchling triggers a workflow run. Results (absorbance values, pass/fail, raw data) are written back to the Benchling entry automatically.

Custom scheduling portal → UniteLabs: An internal tool queues runs based on team priority. UniteLabs executes them in order and returns status, making it available to scientists through your own UI.

Data pipeline trigger: When a pre-processing step completes upstream, it triggers an assay run via the REST API and waits for the artifact before continuing downstream analysis.

When to use this

LIMS integration is the right approach when:

  • Scientists should not need to interact with UniteLabs directly
  • Sample context (IDs, metadata, plate maps) lives in another system
  • Results must be returned to a LIMS, ELN, or data warehouse automatically
  • You want a custom UI tailored to your team's workflow

Next steps