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
statusstringNo—A (activo) o I (inactivo)
namestringNo—Coincidencia parcial sobre el nombre o alias del dispositivo. Longitud máxima 80
imeistringNo—Coincidencia parcial sobre el IMEI (primario o secundario). Longitud máxima 50
license_platestringNo—Coincidencia parcial sobre la patente. Longitud máxima 30
device_groupstringNo—Coincidencia 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
idstringSíIdentificador ú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
idstringSíIdentificador único del dispositivo

Campos de la respuesta​

CampoTipoDescripción
device_idstringIdentificador del dispositivo
device_namestring | nullNombre para mostrar del dispositivo
latitudestring | nullCoordenada de latitud
longitudestring | nullCoordenada de longitud
speedstring | nullVelocidad en km/h
headinginteger | nullRumbo en grados (0–360). Viaja como número JSON, no como texto.
datetimestring | nullMarca de tiempo del reporte de posición
last_signal_atstring | nullMarca 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
odometerstring | nullLectura del odómetro (km)
horometerstring | nullLectura del horómetro (horas)
satellitesstring | nullSatélites GPS a la vista
battery_voltagestring | nullLectura de la batería interna, tal cual la informa el equipo. Algunos modelos envían el voltaje ("12.6") y otros una etiqueta de nivel de carga ("Batería media", "Sin alimentación (shutdown)"). Tratalo siempre como texto: no asumas que se puede convertir a número.
external_powerstring | 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
latitudestring | null✓✓✓Coordenada de latitud
longitudestring | null✓✓✓Coordenada de longitud
speedstring | null✓✓✓Velocidad en km/h
headinginteger | null✓✓✓Rumbo 0–360°, como número JSON
datetimestring | null✓✓✓Marca de tiempo de la posición
last_signal_atstring | null✓✓✓Marca de tiempo de la última señal
ignition_on_atstring | null✓✓✓Marca de tiempo de ignición encendida
ignition_off_atstring | null✓✓✓Marca de tiempo de ignición apagada
addressstring | null✓✓✓Dirección por geocodificación inversa
odometerstring | null✓✓✓Odómetro (km)
horometerstring | null✓✓✓Horómetro (horas)
satellitesstring | null—✓✓Satélites GPS
battery_voltagestring | null—✓✓Lectura de la batería interna: voltaje o etiqueta de nivel de carga según el equipo (siempre texto)
external_powerstring | null—✓✓Alimentación externa
device_idstring——✓ID del dispositivo (solo en posición)
device_namestring | null——✓Nombre 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
idstringSíIdentificador ú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
yearinteger—Año del modelo del vehículo
max_speednumber—Límite de velocidad máxima (km/h)
tank_capacitynumber—Capacidad 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_offsetnumber—Desfase 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_lownumber—Umbral de alarma de temperatura baja
temp_highnumber—Umbral de alarma de temperatura alta
temp_sensor_1boolean—Habilitar el sensor de temperatura 1
temp_sensor_2boolean—Habilitar el sensor de temperatura 2
cut_oilboolean—Función de corte de combustible habilitada
virtual_odometerboolean—Odó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