> ## Documentation Index
> Fetch the complete documentation index at: https://locatebyteli.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar dispositivos

> Lista todos los dispositivos accesibles por el usuario autenticado

## Authorization

<ParamField header="Authorization" type="string" required default="Bearer ">
  API Key. Formato: `Bearer lbt_•••`
</ParamField>

## Query Parameters

<ParamField query="groups" type="string[]">
  Filtrar por UUIDs de grupos
</ParamField>

<ParamField query="limit" type="integer" default="99">
  Cantidad máxima de resultados
</ParamField>

<ParamField query="offset" type="integer" default="0">
  Offset para paginación
</ParamField>

## Respuesta

Array de dispositivos con la siguiente estructura:

<ResponseField name="id" type="uuid">
  ID del registro dispositivo-cuenta
</ResponseField>

<ResponseField name="model" type="uuid">
  ID del modelo/tipo de dispositivo
</ResponseField>

<ResponseField name="alias" type="string">
  Nombre asignado por el usuario
</ResponseField>

<ResponseField name="properties" type="object">
  Propiedades personalizadas (foto, placa, VIN, etc.)
</ResponseField>

<ResponseField name="serial" type="string">
  Número de serie del dispositivo
</ResponseField>

<ResponseField name="imei" type="string">
  IMEI del dispositivo
</ResponseField>

<ResponseField name="iccid" type="string">
  ICCID de la SIM asociada
</ResponseField>

<ResponseField name="state" type="string">
  Estado del dispositivo: `off`, `moving`, `stopped`, `suspended`, `unlink`, `stolen`, `new`
</ResponseField>

<ResponseField name="location" type="array">
  Coordenadas `[latitud, longitud]`
</ResponseField>

<ResponseField name="connected" type="boolean">
  Si el dispositivo está conectado actualmente
</ResponseField>

<ResponseField name="connected_at" type="datetime">
  Última fecha de conexión
</ResponseField>

<ResponseField name="disconnected_at" type="datetime">
  Última fecha de desconexión
</ResponseField>

<ResponseField name="created_at" type="datetime">
  Fecha de creación del registro
</ResponseField>

<ResponseField name="updated_at" type="datetime">
  Última actualización
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "model": "660e8400-e29b-41d4-a716-446655440000",
      "alias": "Mi Vehículo",
      "properties": { "picture": "url", "plate": "ABC-123" },
      "serial": "123456789012",
      "imei": "123456789012345",
      "iccid": "8931440000000000000",
      "state": "moving",
      "location": [19.4326, -99.1332],
      "connected": true,
      "connected_at": "2026-03-18T10:00:00Z",
      "disconnected_at": "2026-03-17T22:00:00Z",
      "created_at": "2025-01-01T00:00:00Z",
      "updated_at": "2026-03-18T10:00:00Z"
    }
  ]
  ```
</ResponseExample>

## Comportamiento

* Si el usuario accede vía share (`X-ACT = "shared"`), solo devuelve los dispositivos indicados en `X-Dev`
* Si el dispositivo está en estado `"moving"`, se obtiene la última ubicación en tiempo real
* No se devuelven dispositivos en estado `"unlink"`

## Errores

| Código | Descripción                    |
| ------ | ------------------------------ |
| `404`  | No se encontraron dispositivos |
| `504`  | Timeout en la consulta a la BD |
