Saltar al contenido principal

Dispositivos

Administra las unidades de rastreo GPS de tu flota — lista, inspecciona, obtené la posición en tiempo real o actualiza la configuración.

Requisitos previos

Todos los endpoints requieren un token JWT válido, una clave de API y el encabezado tenant. Consultá Autenticación.


Listar dispositivos

Obtiene una lista paginada de dispositivos con soporte de filtrado.

GET/apidev/v1/fleet/devices
PermisoAPICLI_FLEET_DEVICES_READ
Límite de solicitudes30 solicitudes/min (ventana deslizante)
Caché60s

Parámetros de consulta

ParámetroTipoRequeridoPor defectoDescripción
limitintegerNo25Registros por página. Mín: 1, Máx: 100
offsetintegerNo0Registros a omitir
statusstringNoA (activo) o I (inactivo)
namestringNoCoincidencia parcial sobre el nombre o alias del dispositivo. Longitud máxima 80
imeistringNoCoincidencia parcial sobre el IMEI (primario o secundario). Longitud máxima 50
license_platestringNoCoincidencia parcial sobre la patente. Longitud máxima 30
device_groupstringNoCoincidencia parcial sobre el nombre del grupo de dispositivos. Longitud máxima 80

Campos de la respuesta

CampoTipoDescripción
idstringIdentificador único del dispositivo (BigInt como string)
namestring | nullNombre para mostrar del dispositivo
aliasstring | nullAlias corto
license_platestring | nullPatente del vehículo
imei_appstring | nullNúmero IMEI primario
imei_gpsstring | nullNúmero IMEI secundario
external_idstring | nullIdentificador en un sistema externo
activebooleanSi el dispositivo está activo actualmente
statusstring"A" (activo) o "I" (inactivo)
device_groupstring | nullNombre del grupo o categoría
last_positionobject | nullÚltima posición GPS conocida (ver Campos de posición)

Ejemplo de código

curl -s "https://$TENANT/apidev/v1/fleet/devices?limit=10&status=A" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo

{
"success": true,
"data": [
{
"id": "104820579301",
"name": "Movil 10",
"alias": "M10",
"license_plate": "ABC123",
"imei_app": "352093081234567",
"imei_gps": "352093089876543",
"external_id": null,
"active": true,
"status": "A",
"device_group": "Trucks",
"last_position": {
"latitude": -34.9011,
"longitude": -56.1645,
"speed": 45.2,
"heading": 180,
"datetime": "2026-04-04T14:32:00",
"last_signal_at": "2026-04-04T14:32:00",
"ignition_on_at": "2026-04-04T07:15:00",
"ignition_off_at": null,
"address": "Av. 18 de Julio 1234, Montevideo",
"odometer": 84523.7,
"horometer": 3210.5
}
},
{
"id": "104820579315",
"name": "Movil 15",
"alias": null,
"license_plate": "XYZ789",
"imei_app": "352093089876543",
"imei_gps": null,
"external_id": "EXT-0015",
"active": true,
"status": "A",
"device_group": "Vans",
"last_position": null
}
],
"meta": {
"total": 42,
"limit": 10,
"offset": 0
}
}
info

last_position es null cuando el dispositivo nunca reportó datos GPS. El endpoint de listado no incluye satellites, battery_voltage ni external_power; usá el endpoint de Posición para obtener la telemetría completa.


Detalle del dispositivo

Perfil completo de un único dispositivo, incluyendo metadatos del vehículo, conductor asignado y última posición conocida con telemetría extendida.

GET/apidev/v1/fleet/devices/{id}
PermisoAPICLI_FLEET_DEVICES_READ
Límite de solicitudes30 solicitudes/min (ventana deslizante)
Caché30s

Parámetros de ruta

ParámetroTipoRequeridoDescripción
idstringIdentificador único del dispositivo

Campos de la respuesta

Todos los campos de Listar dispositivos, más:

CampoTipoDescripción
image_urlstring | nullURL de la imagen del dispositivo/vehículo
brandstring | nullMarca del vehículo (p. ej., Toyota, Ford)
modelstring | nullModelo del vehículo
yearinteger | nullAño del modelo del vehículo
notesstring | nullNotas de texto libre
driverobject | nullConductor asignado: { id, name }
last_positionobject | nullPosición extendida con satellites, battery_voltage, external_power (ver Campos de posición)

Ejemplo de código

curl -s "https://$TENANT/apidev/v1/fleet/devices/104820579301" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo

{
"success": true,
"data": {
"id": "104820579301",
"name": "Movil 10",
"alias": "M10",
"license_plate": "ABC123",
"imei_app": "352093081234567",
"imei_gps": "352093089876543",
"external_id": "EXT-0042",
"active": true,
"status": "A",
"device_group": "Trucks",
"image_url": null,
"brand": "Toyota",
"model": "Hilux",
"year": 2022,
"notes": "Assigned to the northern delivery route",
"driver": {
"id": "104820579455",
"name": "Carlos Martinez"
},
"last_position": {
"latitude": -34.9011,
"longitude": -56.1645,
"speed": 45.2,
"heading": 180,
"datetime": "2026-04-04T14:32:00",
"last_signal_at": "2026-04-04T14:32:00",
"ignition_on_at": "2026-04-04T07:15:00",
"ignition_off_at": null,
"address": "Av. 18 de Julio 1234, Montevideo",
"odometer": 84523.7,
"horometer": 3210.5,
"satellites": 12,
"battery_voltage": 12.6,
"external_power": 1
}
},
"meta": {}
}

Posición del dispositivo

Última posición GPS conocida con telemetría completa — coordenadas, velocidad, ignición, sensores y datos de señal.

GET/apidev/v1/fleet/devices/{id}/position
PermisoAPICLI_FLEET_DEVICES_READ
Límite de solicitudes30 solicitudes/min (ventana deslizante)
Caché30s

Parámetros de ruta

ParámetroTipoRequeridoDescripción
idstringIdentificador único del dispositivo

Campos de la respuesta

CampoTipoDescripción
device_idstringIdentificador del dispositivo
device_namestring | nullNombre para mostrar del dispositivo
latitudenumberCoordenada de latitud
longitudenumberCoordenada de longitud
speednumberVelocidad en km/h
headingnumberRumbo en grados (0–360)
datetimestringMarca de tiempo del reporte de posición
last_signal_atstringMarca de tiempo de la última señal recibida
ignition_on_atstring | nullMarca de tiempo de la última vez que se encendió la ignición
ignition_off_atstring | nullMarca de tiempo de la última vez que se apagó la ignición
addressstring | nullDirección por geocodificación inversa
odometernumber | nullLectura del odómetro (km)
horometernumber | nullLectura del horómetro (horas)
satellitesnumber | nullSatélites GPS a la vista
battery_voltagenumber | nullVoltaje de la batería
external_powernumber | nullEstado de la alimentación externa
Estructura plana

A diferencia del Detalle del dispositivo, que anida los datos GPS bajo last_position, este endpoint devuelve los campos de posición en el nivel raíz junto a device_id y device_name.

Ejemplo de código

curl -s "https://$TENANT/apidev/v1/fleet/devices/104820579301/position" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo

{
"success": true,
"data": {
"device_id": "104820579301",
"device_name": "Movil 10",
"latitude": -34.9011,
"longitude": -56.1645,
"speed": 62.5,
"heading": 270,
"datetime": "2026-04-04T14:45:12",
"last_signal_at": "2026-04-04T14:45:12",
"ignition_on_at": "2026-04-04T07:15:00",
"ignition_off_at": null,
"address": "Ruta 1 km 23, San Jose",
"odometer": 84523.7,
"horometer": 3210.5,
"satellites": 12,
"battery_voltage": 12.6,
"external_power": 1
},
"meta": {}
}

Campos de posición

Referencia de los campos de posición/telemetría usados en el Detalle del dispositivo (objeto last_position) y en la Posición del dispositivo (nivel raíz):

CampoTipoEn listaEn detalleEn posiciónDescripción
latitudenumberCoordenada de latitud
longitudenumberCoordenada de longitud
speednumberVelocidad en km/h
headingnumberRumbo 0–360°
datetimestringMarca de tiempo de la posición
last_signal_atstringMarca de tiempo de la última señal
ignition_on_atstring | nullMarca de tiempo de ignición encendida
ignition_off_atstring | nullMarca de tiempo de ignición apagada
addressstring | nullDirección por geocodificación inversa
odometernumber | nullOdómetro (km)
horometernumber | nullHorómetro (horas)
satellitesnumber | nullSatélites GPS
battery_voltagenumber | nullVoltaje de la batería
external_powernumber | nullAlimentación externa
device_idstringID del dispositivo (solo en posición)
device_namestring | nullNombre del dispositivo (solo en posición)
Marcas de tiempo

Todas las marcas de tiempo se devuelven sin zona horaria (p. ej., "2026-04-04T14:32:00"). El valor representa la zona horaria configurada de la compañía. No agregues Z ni apliques conversión a UTC; mostralo tal cual.


Actualizar dispositivo

Actualiza la configuración de un dispositivo. Enviá solo los campos que quieras cambiar; los campos omitidos conservan su valor actual. Enviá null para limpiar un campo que admita nulos.

PUT/apidev/v1/fleet/devices/{id}
PermisoAPICLI_FLEET_DEVICES_WRITE
Límite de solicitudes30 solicitudes/min (ventana deslizante)
CachéNinguna

Parámetros de ruta

ParámetroTipoRequeridoDescripción
idstringIdentificador único del dispositivo

Cuerpo de la solicitud

Todos los campos son opcionales; incluí solo los que quieras modificar. Consultá Actualizaciones parciales para el patrón general.

CampoTipoLongitud máximaDescripción
namestring200Nombre para mostrar del dispositivo
aliasstring200Alias corto
statusstring10Estado del dispositivo (p. ej., "A", "I")
license_platestring20Patente del vehículo
brandstring100Marca del vehículo
modelstring100Modelo del vehículo
yearintegerAño del modelo del vehículo
max_speednumberLímite de velocidad máxima (km/h)
tank_capacitynumberCapacidad del tanque de combustible en litros
device_type_idstring40Identificador del tipo de dispositivo
provider_idstring40Identificador del proveedor
country_idstring40Identificador del país
department_idstring40Identificador del departamento
gmt_offsetnumberDesfase de zona horaria GMT
imeistring50Número IMEI primario
imei2string50Número IMEI secundario
external_idstring100Identificador del sistema externo
phonestring50Número de teléfono de la SIM
image_urlstring500URL de la imagen del dispositivo/vehículo
notesstring2000Notas de texto libre
temp_lownumberUmbral de alarma de temperatura baja
temp_highnumberUmbral de alarma de temperatura alta
temp_sensor_1booleanHabilitar el sensor de temperatura 1
temp_sensor_2booleanHabilitar el sensor de temperatura 2
cut_oilbooleanFunción de corte de combustible habilitada
virtual_odometerbooleanOdómetro virtual habilitado

Ejemplo de código

curl -s -X PUT "https://$TENANT/apidev/v1/fleet/devices/104820579301" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"license_plate": "ABC999",
"max_speed": 120,
"notes": "Updated route assignment"
}'

Respuesta de ejemplo

{
"success": true,
"data": {
"id": "104820579301",
"updated_fields": ["license_plate", "max_speed", "notes"]
},
"meta": {}
}

Errores

Todos los endpoints de esta página pueden devolver estos errores. Consultá Manejo de errores para la referencia completa.

CódigoHTTPAplica aDescripción
VALIDATION_ERROR400Listar, ActualizarParámetros de consulta o campos del cuerpo inválidos (p. ej., limit > 100, max_speed negativo)
UNAUTHORIZED401Todostenant / Authorization / X-API-Key ausente, inválido o expirado
FORBIDDEN403TodosEl usuario no tiene APICLI_FLEET_DEVICES_READ o APICLI_FLEET_DEVICES_WRITE
NOT_FOUND404Detalle, Posición, ActualizarEl ID del dispositivo no existe o no pertenece a tu tenant
RATE_LIMITED429TodosSe superaron 30 solicitudes/min