API referenceEquipment
Get a piece of equipment
One piece of equipment, with its calibration and maintenance due dates.
GET
https://app.xplantpro.com/ api/ v1/ equipment/ {id}Scope
read:equipmentPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The record's id. |
Example
curl https://app.xplantpro.com/api/v1/equipment/8b0d2f4a-6c8e-4a0b-8d2f-4a6c8e0b2d4f \
-H "Authorization: Bearer $XPLANT_API_KEY"Response
200 with { "ok": true, "data": … }. data holds the result.
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | — |
name | string | Yes | — |
category | string | Yes | The kind of equipment: balance_scale, autoclave_pressure_cooker, laminar_flow_hood, still_air_box, incubator, light_rack, fridge_freezer, ph_ec_meter, microscope, label_printer, other. |
status | string | Yes | active, or archived once the lab has retired it. |
manufacturer | string | null | Yes | — |
model | string | null | Yes | — |
serial_number | string | null | Yes | — |
location | string | null | Yes | Where it is kept, as the lab wrote it. |
purchase_date | string | null | Yes | ISO 8601 date. |
vendor_url | string | null | Yes | A link to the product or supplier page. |
notes | string | null | Yes | — |
last_calibrated_at | string | null | Yes | When a calibration schedule was last completed, as an ISO 8601 timestamp. |
next_calibration_due_at | string | null | Yes | The date the next calibration is due (ISO 8601 date), or null when no calibration schedule is active. |
last_maintenance_at | string | null | Yes | When a maintenance schedule was last completed, as an ISO 8601 timestamp. |
next_maintenance_due_at | string | null | Yes | The date the next preventive maintenance is due (ISO 8601 date), or null when no maintenance schedule is active. |
created_at | string | null | Yes | — |
updated_at | string | null | Yes | — |
{
"ok": true,
"data": {
"id": "8c2f4e61-5a3b-4d7e-9b10-3e6a2c9d4f18",
"name": "Autoclave 2",
"category": "autoclave_pressure_cooker",
"status": "active",
"manufacturer": "Example Instruments",
"model": "AC-40",
"serial_number": "AC40-00172",
"location": "Media room",
"purchase_date": "2025-03-14",
"vendor_url": null,
"notes": null,
"last_calibrated_at": "2026-06-02T08:30:00.000Z",
"next_calibration_due_at": "2026-12-02",
"last_maintenance_at": null,
"next_maintenance_due_at": null,
"created_at": "2025-03-20T10:04:11.000Z",
"updated_at": "2026-06-02T08:31:40.000Z"
}
}| Response header | Meaning |
|---|---|
X-Request-Id | Identifies this request. Include it when you contact support. |
Errors
| Status | Code | When |
|---|---|---|
401 | UNAUTHORIZED | The key is missing, malformed or revoked, or its owner is no longer a member of the workspace. |
402 | PAID_PLAN_REQUIRED | The workspace's plan does not include the API. The full API is included with xPlant+ Teams and Enterprise; on Hobby and Pro Lab, keys can connect devices only. |
403 | FORBIDDEN | The key lacks a scope this operation requires, or its owner's current role in the workspace cannot use it — a key never does more than its owner can in xPlant. error names the scope, and for a role, the role it needs. |
403 | DEVICE_TOKEN_NOT_ACCEPTED | A device token was sent; this operation needs a workspace API key. |
404 | NOT_FOUND | No record with this id exists in the key's workspace. |
429 | RATE_LIMIT_EXCEEDED | Too many requests for this key, device token or workspace. Wait Retry-After seconds. |
500 | LAB_EQUIPMENT_QUERY_FAILED | The equipment could not be read. Retry later. |
Branch on code, never on the error text. See Errors.
List equipment
The workspace's equipment library, newest first, with each item's calibration and maintenance due dates. Filter by category and status; with neither you get every item, archived ones included.
List equipment events
A piece of equipment's history, newest first: what it was used on, and its calibration and preventive maintenance records. Each event has the fields of its kind; the others are null.