Add shift defects
Add defective units of a SKU to a shift by its id (as returned by GET /v1/shifts), including
shifts that have already ended.
How defects add up. Unlike operators, defects have no timeline and no order. Each call adds a
new defects production log of quantity units of the SKU, covering the whole shift, and the
shift's Quality and OEE count it in the background. Calls never replace earlier ones:
- Sending
quantity: 2and thenquantity: 3records 5 defects. - Sending the same request twice records the defects twice, so retry only requests that failed.
- To undo a call, delete the log it returned with
DELETE /v1/production-logs/{id}. To see what a shift already has, list its logs withPOST /v1/production-logs/filters.
Defects are not attributed to any operator, and they can be added to past shifts, including ones
whose production was reviewed. The SKU is given by id or by name; an unknown name creates a new
SKU, so check the spelling.
Errors:
400: no shift matches, the shift has not started yet, or the shift does not have enough production of that SKU to hold the defects.404:sku.idis not one of your SKUs.
Path Parameters
The shift ID.
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/shifts/0/defects" \ -H "Content-Type: application/json" \ -d '{ "sku": {} }'{ "id": "5b0f6a52-3c1e-4d5b-9f0e-8a7c6d5e4f3a", "shiftId": 48213, "machineId": 12, "quantity": 3, "start": "2026-10-12T06:00:00Z", "end": "2026-10-12T14:00:00Z"}Add defects by time POST
Add defective units of a SKU to the shift that machine `machineId` was running at `time`, including shifts that have already ended. Use it when you know the machine and roughly when the defects were found, but not the shift id. **How defects add up.** Unlike operators, defects have no timeline and no order. Each call adds a new defects production log of `quantity` units of the SKU, covering the whole shift, and the shift's Quality and OEE count it in the background. Calls never replace earlier ones: * Sending `quantity: 2` and then `quantity: 3` records 5 defects. * Sending the same request twice records the defects twice, so retry only requests that failed. * To undo a call, delete the log it returned with `DELETE /v1/production-logs/{id}`. To see what a shift already has, list its logs with `POST /v1/production-logs/filters`. Defects are not attributed to any operator, and they can be added to past shifts, including ones whose production was reviewed. The SKU is given by `id` or by `name`; an unknown name creates a new SKU, so check the spelling. Errors: * `400`: no shift matches, the shift has not started yet, or the shift does not have enough production of that SKU to hold the defects. * `404`: `sku.id` is not one of your SKUs.
List a machine's signals GET
Return the raw sensor signals a machine exposes, with the `public_id` needed to read samples. A signal is one sensor channel read by the machine, named after the physical quantity it carries (`current`, `count`, `product_count`, `cycle`, `energy`, `temperature`, `pressure`, ...). A machine can expose several signals with the same `name`; their `display_name` tells them apart. Soft-deleted signals and signals without a kind are not listed. `description` is in English by default; pass `language=es` for Spanish. A description with no translation in the requested language is returned in English.