# Listar turnos (https://docs.pulsarml.com/pt/v1/api-reference/shifts/get-shifts)

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`.

## `GET /v1/shifts`

Base URLs:
- `https://draco.prod.pulsarml.com` — Produção
- `https://draco.dev.pulsarml.com` — Desenvolvimento (sandbox)

Authentication: send your API key in the `x-api-key` header.

### Query parameters

- `from` (string (date-time), required, e.g. `"2026-10-12T00:00:00Z"`) — Devolve os turnos que terminam depois deste momento. Uma hora sem desvio UTC é interpretada como UTC.
- `to` (string (date-time), required, e.g. `"2026-10-13T00:00:00Z"`) — Devolve os turnos que começam antes deste momento, no máximo 31 dias depois de `from`. Uma hora sem desvio UTC é interpretada como UTC.
- `machineId` (array of integer, optional, nullable) — Apenas 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.

### Responses

#### 200 — Os turnos que se sobrepõem ao intervalo, ordenados pelo início

Type: array of object

- `id` (integer, required, e.g. `48213`) — O ID do turno, para `POST /v1/shifts/{shift_id}/operator` e `POST /v1/shifts/{shift_id}/defects`.
- `machineId` (integer, required, e.g. `12`) — A máquina a que o turno pertence.
- `title` (string, required, e.g. `"Morning"`) — O nome do turno.
- `start` (string (date-time), required, e.g. `"2026-10-12T06:00:00Z"`) — Quando o turno começa.
- `end` (string (date-time), required, e.g. `"2026-10-12T14:00:00Z"`) — Quando o turno termina.
- `targetQuantity` (integer, required, e.g. `1200`) — O objetivo de produção do turno, em unidades, tal como definido por `PUT /v1/shifts/targets`.
- `isConsidered` (boolean, required, e.g. `true`) — Se o turno conta para as métricas. Os turnos excluídos também são listados, com `false`.

#### 422 — Erro de validação

Type: object (`HTTPValidationError`)

- `detail` (array of object, optional)
  - `loc` (array of string | integer, required)
  - `msg` (string, required)
  - `type` (string, required)
  - `input` (any, optional)
  - `ctx` (object, optional)

### Example request

```bash
curl -X GET 'https://draco.prod.pulsarml.com/v1/shifts?from=2026-10-12T00%3A00%3A00Z&to=2026-10-13T00%3A00%3A00Z' \
  -H 'x-api-key: <YOUR_API_KEY>'
```