Skip to main content

The open source LIMS, from sample intake to published report

SENAITE manages samples, analyses, worksheets, instruments and reports for testing laboratories. Free to use, free to extend, and the code is yours.

The SENAITE sample listing with samples in different states, their clients, sample types and due dates

How a sample moves through SENAITE

  1. Due

    Registered and expected in the lab.

  2. Received

    Arrived and checked in. Results can be entered.

  3. To be verified

    All results submitted, waiting for a second person.

  4. Verified

    Every result confirmed by someone other than the analyst.

  5. Published

    The report is generated and sent to the client.

Less manual work

The bench works from worksheets, results arrive from instruments, and the workflow only offers the next step when it is allowed.

Guided workflow
Every sample and analysis follows a defined lifecycle. Transitions appear only when their conditions are met, so steps cannot be skipped by accident.
Instrument results
Results are imported from the files your instruments export instead of being typed in, which removes a transcription step and its errors.
Turnaround time
Each analysis has a due date. Worksheets plan the work at the bench, and late analyses stand out in the listings.
A SENAITE worksheet with sample analyses, a blank, a control and a duplicate in their positions

Under control

Who changed what, and when, is recorded on the object itself. Verification by a second person is built into the workflow.

Ready for ISO/IEC 17025
SENAITE supports the process controls an accredited laboratory needs. The accreditation itself stays with the laboratory and how it runs the system.
Audit trail
Every edit of a sample, an analysis or a setup object stores a snapshot with the user, the time and the changed fields. A lab wide audit log can be switched on in the setup.
Dashboard and data access
The dashboard shows throughput over days, weeks and months. Reporting and BI tools read the same data through the JSON API.
The audit log of a sample with versions, users, timestamps and the changed fields

Built to run for years

A web application on proven open source infrastructure, with a documented API for everything around it.

Permissions on every object
Roles and workflow states decide who may see or change what, and at which point in the process.
Standard infrastructure
Runs on Linux behind a regular web server or reverse proxy. Several application processes can share one database server as the lab grows.
In the browser
No desktop software to install or update. Any device with a browser works, and IT keeps one central installation.
curl -u user:password $SITE/@@API/senaite/v1/analysisrequest?getClientID=KL&limit=1
{
"count": 3,
"pagesize": 1,
"page": 1,
"items": [
{
"id": "BAR-0001",
"uid": "6960062448d14893b82fba6dc560f449",
"review_state": "published",
"getClientTitle": "Klaymore",
"getClientID": "KL",
"getSampleTypeTitle": "Barley",
"getDateSampled": "2026-10-04T09:30:00+00:00",
"getDateReceived": "2026-10-14T10:33:54+00:00",
"getAnalysesKeywords": ["Moist", "Phos", "DM"],
"getProgress": 100
}
],
"next": "…/analysisrequest?getClientID=KL&limit=1&b_start=1"
}

Open source, GPLv2

No license fees, no vendor lock-in, full access to the source code on GitHub.

No license fees
Budget goes into configuration and integration for your lab, not into licenses that renew every year.
Open to review
The complete source code is public. Your IT and your auditors can read exactly what runs in your network.
Yours to keep
Workflows, configuration and extensions built on SENAITE belong to your organisation, and so does the decision who supports them.

Used in diagnostic laboratories, research centres and public health programmes worldwide

BECHEM Lubrication TechnologyCERMELLISCONCaribbean Public Health AgencyMinistry of Health and Child Care ZimbabweBotswana Harvard AIDS Institute Partnership

Start with SENAITE

Install it yourself with Docker or from PyPI, or work with a service provider who knows the code base.