Integrations

Your lab data, wherever your other systems need it

Uncountable connects to ERP, LIMS, MES, data platforms and instruments through a documented REST API, a typed Python SDK, no-code triggers and webhooks, and an integration server for scheduled and event-driven jobs. Every call runs with the same permissions and audit trail as the user interface.

REST API and Python SDK
new fields are available through the API as soon as they are saved
Triggers and signed webhooks
send data out the moment it changes, configured with no code
One audit trail
API writes are logged with user, time and IP, like UI edits

Deployed by 175+ enterprise product development teams

Lohmann logo with green abstract cross and tagline The Bonding Engineers in black text.
Dow company logo with white text on a red diamond-shaped background
Syngenta company logo with a green leaf above the letter g.
Beiersdorf
Clariant
Braskem company logo with stylized yellow and blue arrow design.
Total Energies Logo
St Jude Logo
Lubrizol company wordmark logo with blue curved line underneath the text.
Lohmann logo with green abstract cross and tagline The Bonding Engineers in black text.
Dow company logo with white text on a red diamond-shaped background
Syngenta company logo with a green leaf above the letter g.
Beiersdorf
Clariant
Braskem company logo with stylized yellow and blue arrow design.
Total Energies Logo
St Jude Logo
Lubrizol company wordmark logo with blue curved line underneath the text.

Deployed by Enterprise R&D and Innovation Teams

Five ways to connect.
One permission model.

Every tool below works on the same data model as the rest of the platform, so a field or record type an admin adds is ready to integrate the day it is saved. All of them respect the permissions and audit trail you already approved.

REST API

An OpenAPI 3.0 specification covering experiments, formulations, results, documents and any configured record type, with API key or OAuth 2.0 authentication.

Python SDK

One typed method for every endpoint, with automatic OAuth token refresh, batched writes and resumable file uploads.

Triggers

Fire on record creation, field and phase changes, signatures, barcode scans or a schedule, then run actions an admin configures with no code.

Signed webhooks

JSON payloads signed with HMAC-SHA256, retried up to five times, with every delivery recorded in a log your team can review.

Integration server

A containerized service for scheduled jobs, webhook jobs, SFTP and S3 file pickup, and live connections such as a scale feed, with a job queue that survives restarts.

One record of the science, shared with the systems around it

Most labs run Uncountable next to an ERP that owns materials and purchasing, a LIMS or MES on the plant side, and a data platform where analysts work. When those systems trade data by export and re-entry, the same result is typed twice and stored three times. Uncountable passes data to other systems the moment it changes, and new fields are available through the API as soon as an admin saves them.

Uncountable trigger set editor showing a status-change trigger that sends an email and a webhook to a LIMS

The toolkit in detail

Call the REST API directly, or use the typed Python SDK that wraps it.

‍

Fields by reference name
Generic endpoints read and write any field or record type an admin configures, including inventory lots and QMS records.

API key or OAuth 2.0
Authenticate with an API ID and secret, or OAuth 2.0 with short-lived bearer tokens. Customer admins create, rotate and revoke credentials.

Python SDK
One typed method per endpoint, with automatic token refresh and batched writes. Install with pip install UncountablePythonSDK.

Uncountable User API Access dialog with API ID and secret credentials and an option to generate OAuth credentials
Send data out the moment it changes. An admin sets up triggers and webhooks in the platform, with no code and no release.

‍

Fire on any change
A record is created, signed or moves phase, a field changes, a barcode is scanned, or a schedule comes due.

Run actions with no code
Set values, create records, notify people, call a webhook or hand a task to Bodie.

Signed payloads
Each webhook POST carries an HMAC-SHA256 signature of its body, so the receiver can verify it.

Retries and a delivery log
Up to five retries over about 13 hours, with each delivery's status and response recorded.

Uncountable trigger action editor configuring a webhook that sends a test request to a LIMS
Uncountable hosts the integration server beside your deployment or in a separate cloud account. It runs on the public Python SDK:

‍

Scheduled jobs: Recurring jobs on a cron schedule, such as a nightly ERP sync.

Webhook jobs: Signed requests are queued, acknowledged at once and processed asynchronously.

Custom endpoints: Synchronous GET or POST endpoints for systems that need an answer straight away.

Live services: Long-running connections, such as a live scale feed.

SFTP and S3 pickup: A no-code job polls a folder, archives what it finds and parses it into Uncountable.

Your code, readable: Integration code lives in a repository your team can read and change.

Uncountable Integration Job Run table showing integration server runs that are queued, started, successful and in error
Available on request, the Uncountable MCP server lets the AI assistants your organization already uses work with Uncountable data:

‍

Search and read
Find records, experiment and result data, files and notebooks.

Create and update
‍
Set values, create records, and run parsers or triggers.

Each user's permissions
Assistants act under the signed-in user's own access.

Admin control
‍
Turn individual tools off, or switch off every write tool with one setting.

Uncountable MCP Tools settings with a read-only access toggle and individual read and write tools switched on or off

Before and after connecting your systems

Without connected systems

With Uncountable integrations

Results exported to a spreadsheet and re-keyed into the ERP or LIMS
A trigger sends the approved result as a signed JSON payload
Instrument files emailed or copied from a shared drive
Files picked up from SFTP or S3 on a schedule and parsed into the experiment
A script on someone's laptop runs the nightly sync
Scheduled jobs run on a managed integration server
API changes invisible in the audit trail
API writes logged with user, time and IP, like UI edits
A new field means a new integration project
New fields work through the API as soon as they are saved

Systems teams connect to Uncountable

ERP
SAP S/4HANA quality inspection

SAP S/4HANA QM integration for inspection lots and characteristics through OData, with scheduled synchronization.

LIMS
Plant and QC labs

Send test requests out and bring results back through webhooks, the API or SFTP file pickup.

MES and PLM
Manufacturing and product records

We deliver customer-specific MES and PLM data loads that bring item, formula and specification data into Uncountable.

Data platforms
Analytics and data lakes

Load warehouse data into Uncountable, and pull experiment and quality data out with bulk and asynchronous exports.

Instruments
400+ instrument types

Built-in parsers for spectroscopy, thermal analysis, rheology, mechanical testing, chromatography and particle data, plus scales and balances over WebUSB.

Identity and office
Built-in connectors

SAML single sign-on, SCIM user provisioning, office suite editing in notebooks, email, and Excel, CSV, XML and Word import.

Integrations that keep your controls in place

Every integration runs inside the permissions, logging and network controls you already approved for the platform.

Cabot Corporation reports 75+ instrument connections and a >50% reduction in time from testing completed to results delivered.
REST API
Python SDK
Webhooks
SFTP and S3
SCIM
API calls run as the credential owner, with the same permission checks and audit log as the rest of the platform.
TLS 1.2 or higher
Encrypted at rest
IP allowlisting
Same audit log as the UI
Credentials hashed, shown once
Role-based access
SAML single sign-on
Single-tenant options

From test request to result, with no re-entry

1
Request submitted
A scientist submits a test request
2
Trigger fires
The status change runs a trigger
3
Signed webhook
JSON payload sent to the LIMS
4
Tests run
The LIMS exports a results file
5
Results parsed
Picked up from SFTP on a schedule
6
Audit trail
Every change logged on the request

More on the platform

Security, connectivity and compliance details for IT and quality teams.

Blue-themed graphic with a shield icon containing a checkmark, titled 'Security overview' and the word 'SECURITY' above it, with the Uncountable logo at the bottom.

Security Overview

SOC 2 Type II, ISO 27001, encryption...
Graphic with a blue database icon and the words 'Platform Connectivity' on a dark blue background, featuring the Uncountable logo at the bottom.

Connectivity

Connect to 400+ lab instruments...
Dark blue background with a hexagonal pattern on the top right, a blue checkmark icon inside a scalloped circle on the top left, the word 'QUALITY' in blue uppercase letters, and large white text reading 'Compliance & GxP'. The logo and text 'uncountable' are at the bottom left.

Compliance & GxP

21 CFR Part 11, EU Annex 11, audit trails...

One record of the science, wherever it needs to go.

Uncountable keeps formulations, experiments, tests and quality events in one data model, then shares them with the systems around it the moment they change.

FAQs

Does the API need a code change when we add a field?

No. Generic endpoints use each field's reference name, so a field or record type an admin configures is available through the API as soon as it is saved.

Do API calls bypass permissions or the audit trail?

No. Each call runs as the credential owner with the same permission checks as the UI, and API writes go to the same audit log as UI edits.

Can Uncountable receive data from other systems automatically?

Yes. External systems write through the REST API, or the integration server collects files from SFTP or S3 on a schedule and parses them into Uncountable.

Where is the API documentation?

Logged-in users open the OpenAPI reference from the API Documentation quick action in their instance. The Python SDK documentation is public at engineering.uncountable.com/uncountable-python-sdk.

Can we test integrations outside production?

Yes. Non-production environments are available on request, and single-tenant deployments can run separate development, test and production instances.

How do we get data out of Uncountable?

The API supports synchronous and asynchronous entity exports, table exports and audit log exports, and an integration server job can run an export on a schedule.

What happens when an API call or integration job fails?

API errors include a request ID that our support team can use to investigate. Integration jobs record their status and attempt count, errors are logged, and a failed job can be retried.

See your systems connected in a demo.

Bring the list of systems you need to connect.