# Leer datos de una señal (https://docs.pulsarml.com/es/v1/api-reference/signals/get-machines-machine_uuid-signals-public_id)

Devuelve los puntos agregados de una señal de sensor en crudo.

Las muestras se agrupan en intervalos antes de devolverse. El ancho de cada intervalo es `agg_period` x `agg_unit` (`agg_period=15`, `agg_unit=m` es un intervalo de 15 minutos) y `agg_function` define cómo se reducen las muestras dentro de un intervalo.

Por defecto los puntos se devuelven como una lista `data` de objetos `{timestamp, value}`. Pasa `transpose=true` para recibir en su lugar dos arreglos de la misma longitud, `timestamps` y `values`, donde `values[i]` corresponde a `timestamps[i]`. Contiene los mismos puntos en una respuesta más pequeña.

Se aplican dos límites, y ambos rechazan la solicitud en lugar de recortar la respuesta: la ventana entre `start_time` y `end_time` no puede superar **14 días**, y una consulta no puede producir más de **10,000 puntos**. Los valores por defecto (`agg_unit=s`, `agg_period=1`) alcanzan el límite de puntos en menos de tres horas, así que la mayoría de las llamadas los fijan explícitamente.

## `GET /v1/machines/{machine_uuid}/signals/{public_id}`

Base URLs:
- `https://draco.prod.pulsarml.com` — Producción
- `https://draco.dev.pulsarml.com` — Desarrollo (sandbox)

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

### Path parameters

- `machine_uuid` (string (uuid), required) — El `uuid` de la máquina, tal como lo devuelve `GET /v1/machines`.
- `public_id` (string (uuid), required) — El ID público.

### Query parameters

- `start_time` (string (date-time), required) — Filtra por hora de inicio.
- `end_time` (string (date-time), required) — Filtra por hora de fin.
- `agg_unit` ("s" | "m" | "h" | "d", optional, default `"s"`) — Filtra por unidad de agregación.
- `agg_period` (integer, optional, default `1`, >= 1) — Filtra por periodo de agregación.
- `agg_function` ("avg" | "max" | "min" | "sum" | "count", optional, default `"avg"`) — Filtra por función de agregación.
- `transpose` (boolean, optional, default `false`) — Devuelve los arreglos paralelos `timestamps` y `values` en lugar de una lista de puntos `{timestamp, value}`.

### Responses

#### 200 — Los puntos agregados de la ventana pedida: una lista `data` de puntos `{timestamp, value}`, o los arreglos paralelos `timestamps` y `values` cuando `transpose=true`

One of 2 shapes — shape 1: object (`GetSignalDataResponseV1`)

- `machine_uuid` (string (uuid), required, e.g. `"01748f7c-9688-7abc-8def-0123456789ab"`) — El `uuid` de la máquina, tal como lo devuelve `GET /v1/machines`.
- `public_id` (string (uuid), required)
- `name` (string, required)
- `agg_unit` ("s" | "m" | "h" | "d", required)
- `agg_period` (integer, required)
- `agg_function` ("avg" | "max" | "min" | "sum" | "count", required)
- `data` (array of object, required)
  - `timestamp` (string (date-time), required)
  - `value` (number, required)

One of 2 shapes — shape 2: object (`GetTransposedSignalDataResponseV1`)

- `machine_uuid` (string (uuid), required, e.g. `"01748f7c-9688-7abc-8def-0123456789ab"`) — El `uuid` de la máquina, tal como lo devuelve `GET /v1/machines`.
- `public_id` (string (uuid), required)
- `name` (string, required)
- `agg_unit` ("s" | "m" | "h" | "d", required)
- `agg_period` (integer, required)
- `agg_function` ("avg" | "max" | "min" | "sum" | "count", required)
- `timestamps` (array of string (date-time), required) — Hora de inicio de cada intervalo, en orden ascendente.
- `values` (array of number, required) — Valor agregado de cada intervalo; `values[i]` corresponde a `timestamps[i]`.

#### 422 — Error de validación

Type: object (`HTTPValidationError`)

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

### Example request

```bash
curl -X GET 'https://draco.prod.pulsarml.com/v1/machines/<machine_uuid>/signals/<public_id>?start_time=2026-01-01T00%3A00%3A00Z&end_time=2026-01-02T00%3A00%3A00Z' \
  -H 'x-api-key: <YOUR_API_KEY>'
```