Assign shift operator

Assign an operator to a shift by its id (as returned by PUT /v1/shifts/targets), including shifts that have already ended. Without start, the operator covers the shift from its start.

The operator takes over at start and keeps the machine until the end of the shift, or until a later assignment. If nobody is assigned to the shift yet, the operator covers the whole shift. To record several operators in one shift, send them in chronological order: a start before the shift's latest operator change is rejected. Sending the same assignment again is harmless.

Operator metrics for the shift are recalculated in the background.

Errors:

  • 400: no shift matches, or start is outside the shift, in the future, or before the shift's latest operator change.
  • 403: the shift has production marked as reviewed, which locks it.
  • 404: the operator does not exist in your company.

Path Parameters

shift_id*Shift Id

The shift ID.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

Try it live
POST
/v1/shifts/{shift_id}/operator

This endpoint requires authentication — paste a token in the Authorization section below.

curl -X POST "https://example.com/v1/shifts/0/operator" \  -H "Content-Type: application/json" \  -d '{    "operatorId": 1063  }'
{  "shiftId": 48213,  "machineId": 12,  "operatorId": 1063,  "start": "2026-10-12T10:00:00Z"}

Assign operator by time POST

Assign an operator to the shift that machine `machineId` was running at `start`. Use it to record who ran a machine after the shift ended, for example a day later from a planning system. For a live shift at a floor terminal, `POST /v1/realtime/{machine_id}/operator` is the shorter call. The operator takes over at `start` and keeps the machine until the end of the shift, or until a later assignment. If nobody is assigned to the shift yet, the operator covers the whole shift. To record several operators in one shift, send them in chronological order: a `start` before the shift's latest operator change is rejected. Sending the same assignment again is harmless. Operator metrics for the shift are recalculated in the background. Errors: * `400`: no shift matches, or `start` is outside the shift, in the future, or before the shift's latest operator change. * `403`: the shift has production marked as reviewed, which locks it. * `404`: the operator does not exist in your company.

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.