Metrics report
Required scope: reports.read.
Return OEE, availability, quality and lost minutes per machine and shift.
Each row carries the shift indicators (available time, downtime split by cause) together
with the derived production metrics: availability, effectiveness, quality, oee and
netOee, plus minutes lost to low speed and to low quality.
A POST that only reads — the reports.read scope is sufficient. Prefer this over
deriving OEE from production logs: shift boundaries, downtime classification and counting
factors are already applied.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/reports/metrics" \ -H "Content-Type: application/json" \ -d '{}'{ "totalCount": 100, "totalPages": 10, "currentPage": 1, "metrics": [ { "company": { "id": 1, "name": "company 1" }, "machine": { "id": 1, "name": "machine 1" }, "shift": { "endTime": "2025-11-02T00:00:00", "id": 1, "isActive": true, "name": "morning", "startTime": "2025-11-01T00:00:00" }, "shiftIndicators": { "annotatedDowntime": 0, "availability": 100, "availableTime": 480, "earlyStopTime": 0, "indicatorId": 1, "lateStartTime": 0, "netAvailability": 100, "noDataTime": 0, "nonProgrammedDowntime": 0, "otherStopsTime": 0, "programmedDowntime": 0, "unavailableTime": 0 }, "productionMetrics": { "availability": 100, "effectiveness": 100, "minutesLostByLowQuality": 0, "minutesLostByLowSpeed": 0, "netAvailability": 100, "netOee": 100, "oee": 100, "quality": 100 } } ]}Add an operator to the current shift POST
Assign an operator to the shift the machine is running at the moment of the call. Both fields are required: operatorId and start, the moment the assignment begins. Use it for clock-in at a terminal. This writes to the live shift and takes effect immediately.
Stops report POST
Return individual machine stops with their duration, cause and classification. This is the drill-down behind the downtime totals in the metrics report. stopId accepts the full comparison grammar, so a specific stop or a range of them can be pulled directly.