# Ver operadores do turno (https://docs.pulsarml.com/pt/v1/api-reference/shifts/get-shifts-shift_id-operators)

**Scope necessário:** `shifts.read`.

Devolve quem operou a máquina durante um turno (o seu ID, tal como devolvido por `GET /v1/shifts`), depois de todas as atribuições feitas até agora: uma entrada por período, do mais antigo para o mais recente, cada uma com o operador e quando assumiu e entregou a máquina. Assim que alguém é atribuído, as entradas cobrem normalmente o turno completo. Um período sem operador tem `operatorId: null`, e um turno a que ninguém foi atribuído devolve uma lista vazia.

Para o exemplo da manhã em `POST /v1/shifts/{shift_id}/operator`, depois das três atribuições aceites devolve 1063 das 06:00 às 10:00, 2071 das 10:00 às 12:00 e 3300 das 12:00 às 14:00.

Erros:

* `404` `shift_not_found`: o turno não é um dos seus.

## `GET /v1/shifts/{shift_id}/operators`

Base URLs:
- `https://draco.prod.pulsarml.com` — Produção
- `https://draco.stage.pulsarml.com` — Sandbox (staging)

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

### Path parameters

- `shift_id` (integer, required) — O ID do turno.

### Responses

#### 200 — A cronologia de operadores do turno, da mais antiga para a mais recente

Type: array of object

- `operatorId` (integer, required, nullable, e.g. `1063`) — O operador que tinha a máquina, tal como devolvido por `/v1/operators`; `null` num período sem operador.
- `firstName` (string, required, nullable, e.g. `"Ana"`) — O nome próprio do operador.
- `lastName` (string, required, nullable, e.g. `"Ruiz"`) — O apelido do operador.
- `start` (string (date-time), required, e.g. `"2026-10-12T06:00:00Z"`) — Quando o operador assumiu a máquina.
- `end` (string (date-time), required, e.g. `"2026-10-12T10:00:00Z"`) — Quando o operador entregou a máquina, ou o fim do turno.

#### 401 — * `unauthenticated`: as credenciais estão em falta, são inválidas ou expiraram.

#### 403 — * `missing_scope`: as credenciais são válidas, mas não têm o scope que este endpoint requer.

#### 404 — * `shift_not_found`: nenhum dos seus turnos corresponde ao pedido.

Type: object (`ErrorResponse`)

- `code` (string, required, e.g. `"shift_not_found"`) — Identificador estável do erro, como `shift_not_found`; cada endpoint lista os seus códigos. Use-o para decidir o que fazer; podem ser acrescentados códigos novos ao longo do tempo, por isso trate um código desconhecido pelo seu estado HTTP.
- `detail` (string, required) — Explicação legível por pessoas. Pode mudar; não a analise no seu código.

#### 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)

#### 429 — * `rate_limited`: a chave de API excedeu o seu limite de pedidos. Tente novamente após `Retry-After` segundos.

### Example request

```bash
curl -X GET 'https://draco.prod.pulsarml.com/v1/shifts/<shift_id>/operators' \
  -H 'x-api-key: <YOUR_API_KEY>'
```