Metrics report
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
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.