ELN & lab-software integration
For vendors and in-house teams connecting electronic lab notebooks, sample managers, or dashboards to OpenIRIS facilities. Build once — the same integration serves every OpenIRIS member institution running your product.
Live today LIVE
With resources:read you can browse a provider's instrument and service
directory — the anchor for linking experiment records to facility assets:
GET /v1/resources?filter[class]=scheduled&sort=name
{
"data": [{
"id": 4165,
"guid": "1f0a…",
"name": "Lightsheet UltraMicroscope II",
"class": "scheduled",
"status": "active",
"provider_id": 1300,
"manufacturer": "LaVision BioTec",
"serial_number": "…",
"timezone": "Europe/Berlin",
"links": { "self": "…/v1/resources/4165" }
}], …
}
classvalues:scheduled(bookable instruments),application,service,scheduled_addon,event.guidis globally stable — prefer it overidas your foreign key if you persist references long-term.timezoneis the facility's IANA zone — render booking times in it.
Linking an experiment to a session LIVE
Scopes: bookings:read to find the session,
bookings:write to tag it. The facility half of the directory is live too:
GET /v1/providers and GET /v1/resource-types resolve
provider_id and resource_type_id.
# 1. The sessions on an instrument in a window (times are UTC)
GET /v1/bookings?filter[resource_id]=4165&filter[start][gte]=2026-09-01T00:00:00Z&filter[end][lt]=2026-09-08T00:00:00Z&sort=start
# 2. Tag the session with your experiment id — the round-trip key
GET /v1/bookings/98213 # take the ETag
PATCH /v1/bookings/98213
Idempotency-Key: …
If-Match: W/"…"
{ "external_reference": "ELN-EXP-20481" }
# 3. Find it again from your side
GET /v1/bookings?filter[external_reference]=ELN-EXP-20481
# 4. A measurement that ran without a reservation — record the usage after the fact
POST /v1/bookings
Idempotency-Key: …
{ "kind": "usage", "resource_id": 4165, "user_id": 20117,
"start": "2026-09-03T13:05:00Z", "end": "2026-09-03T14:40:00Z",
"external_reference": "ELN-EXP-20482" }
external_referenceis ≤35 characters (sized for identifiers like eLabNext'sexternalBarcode), integrator-owned, and the only booking field besidescommentsthe API lets you change. Times, users and resources stay with OpenIRIS.statusis derived:confirmed,pending_approval,rejected,cancelled,completed.kindseparatesusageentries recorded after the fact from reservations.- A usage entry must lie entirely in the past and not overlap an existing booking on
a non-concurrent instrument (
409). It is not charged yet — see the changelog.
On the roadmap PROPOSED
The pieces that complete the ELN story are specified in the proposed contract and open for your feedback — vendor input directly shapes prioritisation:
- Reservations in advance through the API —
POST /v1/bookingswithkind: booking, once the rules and pricing engines are shared with the public host. external_referenceon requests — the same round-trip field bookings and resources already carry.- Webhooks —
booking.created/booking.cancelledpush instead of polling. - Form submissions — structured acquisition metadata attached to a booking, with typed entity-reference fields.
Building for multiple members? Each member institution issues its own key to
your product, scoped to its providers. Design for key-per-tenant from day one and you inherit
the multi-institution story for free. Tell us you're a vendor when you engage — vendor
integrations get roadmap-planning input.