Listar turnos
Lista os seus turnos que se sobrepõem a um intervalo de tempo, passados ou futuros, para encontrar o id que POST /v1/shifts/{shift_id}/operator e POST /v1/shifts/{shift_id}/defects recebem.
Um turno é devolvido quando alguma parte dele fica entre from e to: termina depois de from e começa antes de to. Assim, um turno da noite das 22:00 às 06:00 aparece num intervalo que cubra qualquer um dos dois dias. O intervalo pode abranger no máximo 31 dias; percorra os períodos mais longos com intervalos consecutivos. Os turnos são devolvidos ordenados por start e depois por máquina.
Restrinja a lista com machineId, repetido para várias máquinas:
GET /v1/shifts?from=2026-10-12T00:00:00Z&to=2026-10-13T00:00:00Z&machineId=12
Os turnos excluídos das métricas também são listados, com isConsidered: false.
Parâmetros de consulta
Devolve os turnos que terminam depois deste momento. Uma hora sem desvio UTC é interpretada como UTC.
date-timeDevolve os turnos que começam antes deste momento, no máximo 31 dias depois de from. Uma hora sem desvio UTC é interpretada como UTC.
date-timeApenas os turnos destas máquinas, tal como devolvidas por GET /v1/machines. Repita-o para várias máquinas (machineId=12&machineId=13). Se for omitido, todas as suas máquinas.
Corpo da resposta
application/json
application/json
curl -X GET "https://example.com/v1/shifts?from=2026-10-12T00%3A00%3A00Z&to=2026-10-13T00%3A00%3A00Z"[ { "id": 48213, "machineId": 12, "title": "Morning", "start": "2026-10-12T06:00:00Z", "end": "2026-10-12T14:00:00Z", "targetQuantity": 1200, "isConsidered": true }]Relatório de paragens POST
Devolve as paragens individuais das máquinas com a sua duração, causa e classificação. É o detalhe por trás dos totais de tempo de paragem do relatório de métricas. `stopId` aceita a gramática de comparação completa, por isso é possível obter diretamente uma paragem específica ou um intervalo delas.
Definir objetivos de turnos PUT
Define o objetivo de produção de turnos existentes, para dias futuros ou passados. O corpo é um **array** JSON de até 1000 linhas, por isso um plano completo (ou a sua exportação para CSV) cabe numa única chamada. Cada linha indica um turno pela sua máquina (`uuid` ou `name`), pela data (`date`) em que começa no fuso horário da empresa, e pelo seu nome (`title`, por exemplo `Morning`). Enviar os mesmos valores outra vez não causa problemas: o objetivo é substituído, não somado. Cada linha é devolvida com um `status`, e só as linhas `updated` alteraram alguma coisa: * `updated`: o objetivo do turno passa a ser `targetQuantity`. * `machineNotFound` / `ambiguousMachine`: nenhuma máquina, ou mais do que uma, corresponde a `machine`. * `shiftNotFound` / `ambiguousShift`: a máquina não tem nenhum turno, ou tem mais do que um, com esse nome que comece nessa data. * `duplicateShift`: outra linha do mesmo pedido aponta para o mesmo turno, por isso nenhuma das duas foi aplicada. Os objetivos são lidos em direto do turno, por isso as vistas de tempo real e de turnos mostram o novo valor de imediato. Nada é recalculado: o objetivo não entra no cálculo do OEE.