Documentación para desarrolladores

API de Rastreo LIOT

Integra el rastreo GPS de tu flota en tus propios sistemas. Posiciones en tiempo real, historial, reportes y eventos mediante una API REST simple y segura.

keyAutenticación api117 endpoints

rocket_launchIntroducción

La API de Rastreo LIOT es una API REST sobre HTTPS que entrega acceso programático a toda la información de tu flota: dispositivos, posiciones en tiempo real, historial de recorridos, eventos, geocercas, reportes y más. Está pensada para integraciones de empresas y partners que necesitan llevar la telemetría de LIOT a sus propios sistemas.

lightbulb
Formato de datos. Todas las respuestas son JSON (también se pueden exportar recorridos en CSV, KML y GPX). Las fechas usan formato ISO 8601 en UTC, por ejemplo 2026-01-01T18:30:00Z.
link

URL base

https://gps.liot.cl/api
bolt

WebSocket

wss://gps.liot.cl/api/socket
schedule

Disponibilidad

24/7, con monitoreo continuo y soporte dedicado.

verified_user

Seguridad

TLS obligatorio. Acceso autenticado por token o sesión.

Primeros pasos

  1. Obtén tus credenciales de API (usuario y contraseña o un token de integración) escribiendo a soporte@liot.cl.
  2. Genera un token de acceso o inicia sesión.
  3. Consulta tus dispositivos y sus posiciones.
  4. Para actualizaciones en vivo, conéctate al canal WebSocket.

keyAutenticación

La API admite tres mecanismos. Todos los endpoints marcados como “Requiere autenticación” responden 401 si no envías credenciales válidas.

1

Token de acceso Recomendado

Autenticación tipo Bearer. Ideal para integraciones y servidores.

Authorization: Bearer TU_TOKEN_DE_ACCESO

También puedes enviarlo como parámetro: ?token=TU_TOKEN

2

Sesión con cookie

Autenticación básica en el inicio de sesión; el servidor devuelve una cookie JSESSIONID que se reutiliza en las siguientes llamadas.

POST /session
Content-Type: application/x-www-form-urlencoded

email=usuario@empresa.cl&password=CLAVE
3

Basic Auth

Usuario y contraseña codificados en Base64, útil para scripts simples.

Authorization: Basic base64(usuario:contraseña)

Generar un token

curl -X POST "https://gps.liot.cl/api/session/token" \
  -u usuario@empresa.cl:CLAVE \
  -d "expiration=2027-01-01T00:00:00Z"
shield
Buenas prácticas. Usa siempre HTTPS, almacena los tokens en variables de entorno o gestores de secretos, y rótalos periódicamente. Nunca expongas credenciales en el frontend.

boltTiempo real (WebSocket)

En lugar de consultar repetidamente el endpoint de posiciones, conéctate al canal WebSocket para recibir actualizaciones apenas el equipo las reporta. Es la forma recomendada para mapas y paneles en vivo.

const socket = new WebSocket('wss://gps.liot.cl/api/socket');

socket.onmessage = (event) => {
  const data = JSON.parse(event.data);
  // data.positions -> últimas posiciones
  // data.events    -> eventos recientes
  console.log(data);
};

socket.onopen = () => socket.send(JSON.stringify({ devices: [1234] }));
info
La conexión WebSocket reutiliza la sesión autenticada (cookie). Primero inicia sesión con POST /session y luego abre el socket.

apiEndpoints

117 operaciones sobre 23 módulos. Usa el buscador de la barra lateral para encontrar un endpoint.

key

Sesión y autenticación

Inicia sesión, obtén tokens de acceso y gestiona la sesión activa.

8
GET/session#

Obtener información de la sesión

Público · sin autenticaciónkeySesión y autenticación
ParámetroUbicaciónTipoObligatorioDescripción
tokenquerystringno—
Respuestas
200OK
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/session"
POST/session#

Iniciar sesión

Público · sin autenticaciónkeySesión y autenticación
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/session" \
  -d "email=usuario@empresa.cl" -d "password=CLAVE"
DELETE/session#

Cerrar la sesión

keyRequiere autenticaciónkeySesión y autenticación
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/session" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/session/{id}#

Abrir sesión como otro usuario

Solo administradores o gerentes. Abre una sesión suplantando al usuario indicado.

keyRequiere autenticaciónkeySesión y autenticación
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/session/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/session/token#

Generar token de acceso

keyRequiere autenticaciónkeySesión y autenticación
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200Token string
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/session/token" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -d "campo=valor"
POST/session/token/revoke#

Revocar token de acceso

keyRequiere autenticaciónkeySesión y autenticación
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
204No Content
400Bad request
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/session/token/revoke" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -d "token=TOKEN_DE_RESET" -d "password=NUEVA_CLAVE"
GET/session/openid/auth#

Iniciar autenticación OpenID Connect

keyRequiere autenticaciónkeySesión y autenticación
Respuestas
303Redirect to OpenID Connect identity provider
400OpenID Connect is not configured
defaultUnexpected error
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/session/openid/auth" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/session/openid/callback#

Callback de OpenID Connect

keyRequiere autenticaciónkeySesión y autenticación
Respuestas
303Successful authentication, redirect to homepage
400Invalid or expired callback parameters
defaultUnexpected error
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/session/openid/callback" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
devices_other

Dispositivos

Alta, consulta, edición y baja de los equipos GPS de tu flota.

7
GET/devices#

Listar dispositivos

Sin parámetros, devuelve los dispositivos del usuario.

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
idqueryintegernoPara obtener uno o varios dispositivos. Se pueden pasar varios parámetros como `id=31&id=42`.
uniqueIdquerystringnoPara obtener uno o varios dispositivos. Se pueden pasar varios parámetros como `uniqueId=333331&uniqueId=44442`.
excludeAttributesquerybooleannoExcluye el campo de atributos de la respuesta.
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave (busca en nombre, uniqueId, teléfono, modelo y contacto).
Respuestas
200OK
400No permission
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/devices" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/devices#

Crear un dispositivo

keyRequiere autenticacióndevices_otherDispositivos
Cuerpo de la petición application/json

Esquema: Device

{
  "id": 0,
  "name": "",
  "uniqueId": "",
  "status": "",
  "disabled": false,
  "lastUpdate": "2026-01-01T00:00:00Z",
  "positionId": "",
  "groupId": "",
  "phone": "",
  "model": "",
  "contact": "",
  "category": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/devices" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "uniqueId": "",
    "status": "",
    "disabled": false,
    "lastUpdate": "2026-01-01T00:00:00Z",
    "positionId": "",
    "groupId": "",
    "phone": "",
    "model": "",
    "contact": "",
    "category": "",
    "attributes": {}
  }'
GET/devices/{id}#

Obtener un dispositivo

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/devices/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/devices/{id}#

Actualizar un dispositivo

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Device

{
  "id": 0,
  "name": "",
  "uniqueId": "",
  "status": "",
  "disabled": false,
  "lastUpdate": "2026-01-01T00:00:00Z",
  "positionId": "",
  "groupId": "",
  "phone": "",
  "model": "",
  "contact": "",
  "category": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/devices/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "uniqueId": "",
    "status": "",
    "disabled": false,
    "lastUpdate": "2026-01-01T00:00:00Z",
    "positionId": "",
    "groupId": "",
    "phone": "",
    "model": "",
    "contact": "",
    "category": "",
    "attributes": {}
  }'
DELETE/devices/{id}#

Eliminar un dispositivo

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/devices/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/devices/{id}/accumulators#

Actualizar la distancia y las horas totales del dispositivo

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: DeviceAccumulators

{
  "deviceId": 0,
  "totalDistance": 0,
  "hours": 0
}
Respuestas
204No Content
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/devices/1/accumulators" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "deviceId": 0,
    "totalDistance": 0,
    "hours": 0
  }'
POST/devices/{id}/image#

Subir o actualizar la imagen del dispositivo

keyRequiere autenticacióndevices_otherDispositivos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición image/*

Esquema: string

Respuestas
200OK
400Invalid image type or size
404Device not found
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/devices/1/image" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: image/*" \
  --data-binary "@/ruta/local/imagen.png"
location_on

Posiciones

Ubicación, historial, kilómetros y exportación de recorridos.

6
GET/positions#

Listar posiciones

Recomendamos usar la API WebSocket en tiempo real en lugar de consultar repetidamente este endpoint. Sin parámetros, devuelve la última posición conocida de todos los dispositivos del usuario. Los campos `from` y `to` no son obligatorios cuando se usa `id`.

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegerno`deviceId` es opcional, pero requiere los parámetros `from` y `to` cuando se usa.
fromquerystringnoEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringnoEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
idqueryintegernoPara obtener una o varias posiciones. Se pueden pasar varios parámetros como `id=31&id=42`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/positions" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
DELETE/positions#

Eliminar las posiciones de un dispositivo en un rango de tiempo

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersí—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
204No Content
400Bad request
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/positions" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
DELETE/positions/{id}#

Eliminar una posición

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
404Not found
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/positions/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/positions/kml#

Exportar posiciones en KML

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersí—
fromquerystringsí—
toquerystringsí—
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/positions/kml?deviceId=1&from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/positions/csv#

Exportar posiciones en CSV

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersí—
geofenceIdqueryintegerno—
fromquerystringsí—
toquerystringsí—
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/positions/csv?deviceId=1&from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/positions/gpx#

Exportar posiciones en GPX

keyRequiere autenticaciónlocation_onPosiciones
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersí—
fromquerystringsí—
toquerystringsí—
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/positions/gpx?deviceId=1&from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
share

Compartir

Comparte la ubicación de dispositivos o grupos mediante enlaces temporales.

2
POST/share/device#

Compartir la ubicación de un dispositivo

keyRequiere autenticaciónshareCompartir
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200OK
403Sharing is disabled or temporary user
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/share/device" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -d "campo=valor"
POST/share/group#

Compartir los dispositivos de un grupo

keyRequiere autenticaciónshareCompartir
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200OK
403Sharing is disabled or temporary user
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/share/group" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -d "campo=valor"
videocam

Video en vivo

Transmisión de video HLS desde cámaras asociadas a los dispositivos.

2
GET/stream/{deviceId}/{channel}/live.m3u8#

Obtener la lista de reproducción HLS de una cámara

keyRequiere autenticaciónvideocamVideo en vivo
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdpathintegersí—
channelpathintegersí—
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/stream/1/1/live.m3u8" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/stream/{deviceId}/{channel}/{index}.ts#

Obtener un segmento de video HLS de una cámara

keyRequiere autenticaciónvideocamVideo en vivo
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdpathintegersí—
channelpathintegersí—
indexpathintegersí—
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/stream/1/1/0.ts" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
insights

Reportes

Resúmenes, recorridos, detenciones, eventos y geocercas por período.

13
GET/reports/combined#

Reporte combinado de recorrido, eventos y posiciones

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/combined?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/route#

Recorrido de posiciones en un período

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/route?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/route/{type}#

Descargar o enviar por correo el reporte de recorrido

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/route/valor?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/events#

Eventos en un período

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
typequeryarraynoSe puede usar `%` para devolver eventos de todos los tipos.
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/events?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/events/{type}#

Descargar o enviar por correo el reporte de eventos

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
deviceIdqueryarrayno—
groupIdqueryarrayno—
typequeryarraynoTipos de evento a incluir; `%` incluye todos.
alarmqueryarraynoTipos de alarma a incluir.
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/events/valor?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/geofences#

Intervalos de entrada y salida de geocercas

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
geofenceIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/geofences?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/summary#

Resumen de actividad en un período

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/summary?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/summary/{type}#

Descargar o enviar por correo el reporte de resumen

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
dailyquerybooleannoAgrega los valores por día en lugar de todo el período.
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/summary/valor?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/trips#

Viajes en un período

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/trips?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/trips/{type}#

Descargar o enviar por correo el reporte de viajes

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/trips/valor?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/stops#

Detenciones en un período

Se debe indicar al menos un `deviceId` o un `groupId`.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/stops?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/stops/{type}#

Descargar o enviar por correo el reporte de detenciones

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
deviceIdqueryarrayno—
groupIdqueryarrayno—
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/stops/valor?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/reports/devices/{type}#

Descargar o enviar por correo el reporte de dispositivos

Usa `type=xlsx` para descargar el reporte o `type=mail` para enviarlo por correo de forma asíncrona.

keyRequiere autenticacióninsightsReportes
ParámetroUbicaciónTipoObligatorioDescripción
typepathstring xlsx · mailsí—
Respuestas
200Spreadsheet attachment
204Report queued for email delivery
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/reports/devices/valor" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
bolt

Eventos

Eventos generados por los dispositivos (encendido, alarmas, excesos de velocidad, etc.).

1
GET/events/{id}#

Obtener un evento

Devuelve un evento con todo su contexto para el identificador indicado.

keyRequiere autenticaciónboltEventos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/events/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
fence

Geocercas

Zonas geográficas para alertas de entrada y salida.

5
GET/geofences#

Listar geocercas

Sin parámetros, devuelve las geocercas a las que el usuario tiene acceso.

keyRequiere autenticaciónfenceGeocercas
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/geofences" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/geofences#

Crear una geocerca

keyRequiere autenticaciónfenceGeocercas
Cuerpo de la petición application/json

Esquema: Geofence

{
  "id": 0,
  "name": "",
  "description": "",
  "area": "",
  "calendarId": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/geofences" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "description": "",
    "area": "",
    "calendarId": 0,
    "attributes": {}
  }'
GET/geofences/{id}#

Obtener una geocerca

keyRequiere autenticaciónfenceGeocercas
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/geofences/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/geofences/{id}#

Actualizar una geocerca

keyRequiere autenticaciónfenceGeocercas
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Geofence

{
  "id": 0,
  "name": "",
  "description": "",
  "area": "",
  "calendarId": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/geofences/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "description": "",
    "area": "",
    "calendarId": 0,
    "attributes": {}
  }'
DELETE/geofences/{id}#

Eliminar una geocerca

keyRequiere autenticaciónfenceGeocercas
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/geofences/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
workspaces

Grupos

Agrupación de dispositivos y usuarios.

5
GET/groups#

Listar grupos

Sin parámetros, devuelve los grupos a los que pertenece el usuario.

keyRequiere autenticaciónworkspacesGrupos
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/groups" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/groups#

Crear un grupo

keyRequiere autenticaciónworkspacesGrupos
Cuerpo de la petición application/json

Esquema: Group

{
  "id": 0,
  "name": "",
  "groupId": 0,
  "attributes": {}
}
Respuestas
200OK
400No permission
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/groups" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "groupId": 0,
    "attributes": {}
  }'
GET/groups/{id}#

Obtener un grupo

keyRequiere autenticaciónworkspacesGrupos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/groups/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/groups/{id}#

Actualizar un grupo

keyRequiere autenticaciónworkspacesGrupos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Group

{
  "id": 0,
  "name": "",
  "groupId": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/groups/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "groupId": 0,
    "attributes": {}
  }'
DELETE/groups/{id}#

Eliminar un grupo

keyRequiere autenticaciónworkspacesGrupos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/groups/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
notifications

Notificaciones

Reglas de alerta por evento y canales de envío.

10
GET/notifications#

Listar notificaciones

Sin parámetros, devuelve las notificaciones a las que el usuario tiene acceso.

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/notifications" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/notifications#

Crear una notificación

keyRequiere autenticaciónnotificationsNotificaciones
Cuerpo de la petición application/json

Esquema: Notification

{
  "id": 0,
  "type": "",
  "description": "",
  "always": false,
  "commandId": 0,
  "notificators": "",
  "calendarId": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/notifications" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "type": "",
    "description": "",
    "always": false,
    "commandId": 0,
    "notificators": "",
    "calendarId": 0,
    "attributes": {}
  }'
GET/notifications/{id}#

Obtener una notificación

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/notifications/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/notifications/{id}#

Actualizar una notificación

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Notification

{
  "id": 0,
  "type": "",
  "description": "",
  "always": false,
  "commandId": 0,
  "notificators": "",
  "calendarId": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/notifications/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "type": "",
    "description": "",
    "always": false,
    "commandId": 0,
    "notificators": "",
    "calendarId": 0,
    "attributes": {}
  }'
DELETE/notifications/{id}#

Eliminar una notificación

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/notifications/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/notifications/types#

Listar los tipos de notificación disponibles

keyRequiere autenticaciónnotificationsNotificaciones
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/notifications/types" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/notifications/notificators#

Listar los canales de notificación disponibles

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
announcementquerybooleannoCon `true`, excluye los canales que no pueden entregar anuncios.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/notifications/notificators" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/notifications/test#

Enviar una notificación de prueba al usuario por correo y SMS

keyRequiere autenticaciónnotificationsNotificaciones
Respuestas
204Successful sending
400Could happen if sending has failed
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/notifications/test" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/notifications/test/{notificator}#

Enviar una notificación de prueba por un canal específico

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
notificatorpathstringsí—
Respuestas
204Successful sending
400Could happen if sending has failed
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/notifications/test/valor" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/notifications/send/{notificator}#

Enviar una notificación personalizada a usuarios seleccionados

keyRequiere autenticaciónnotificationsNotificaciones
ParámetroUbicaciónTipoObligatorioDescripción
notificatorpathstringsí—
userIdqueryarraynoLista opcional de ids de usuario destino; si se omite, envía a todos los usuarios permitidos.
Cuerpo de la petición application/json

Esquema: NotificationMessage

{
  "subject": "",
  "digest": "",
  "body": "",
  "priority": false
}
Respuestas
204Successful sending
400Could happen if sending has failed
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/notifications/send/valor" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "",
    "digest": "",
    "body": "",
    "priority": false
  }'
terminal

Comandos

Comandos guardados y envío de instrucciones a los equipos.

8
GET/commands#

Listar comandos guardados

Sin parámetros, devuelve los comandos guardados a los que el usuario tiene acceso.

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/commands" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/commands#

Crear un comando guardado

keyRequiere autenticaciónterminalComandos
Cuerpo de la petición application/json

Esquema: Command

{
  "id": 0,
  "deviceId": 0,
  "description": "",
  "type": "",
  "textChannel": false,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/commands" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "deviceId": 0,
    "description": "",
    "type": "",
    "textChannel": false,
    "attributes": {}
  }'
GET/commands/{id}#

Obtener un comando guardado

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/commands/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/commands/{id}#

Actualizar un comando guardado

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Command

{
  "id": 0,
  "deviceId": 0,
  "description": "",
  "type": "",
  "textChannel": false,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/commands/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "deviceId": 0,
    "description": "",
    "type": "",
    "textChannel": false,
    "attributes": {}
  }'
DELETE/commands/{id}#

Eliminar un comando guardado

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/commands/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/commands/send#

Listar los comandos soportados por el dispositivo en este momento

Devuelve los comandos guardados vinculados al dispositivo y sus grupos, según el protocolo soportado.

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersíLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
Respuestas
200OK
400Could happen when the user doesn't have permission for the device
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/commands/send?deviceId=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/commands/send#

Enviar comandos al dispositivo

Envía un comando nuevo, o uno guardado si se define `body.id`.

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
groupIdqueryintegernoEnvía el comando a todos los dispositivos del grupo.
Cuerpo de la petición application/json

Esquema: Command

{
  "id": 0,
  "deviceId": 0,
  "description": "",
  "type": "",
  "textChannel": false,
  "attributes": {}
}
Respuestas
200Command sent
202Command queued
400Could happen when the user doesn't have permission or an incorrect command _type_ for the device
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/commands/send" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "deviceId": 0,
    "description": "",
    "type": "",
    "textChannel": false,
    "attributes": {}
  }'
GET/commands/types#

Listar los comandos disponibles para el dispositivo

keyRequiere autenticaciónterminalComandos
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegernoIdentificador interno del dispositivo. Solo funciona si el dispositivo ya reportó ubicaciones.
textChannelquerybooleannoCon `true` devuelve comandos SMS; en otro caso devuelve comandos de datos.
Respuestas
200OK
400Could happen when trying to fetch from a device the user does not have permission
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/commands/types" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
badge

Conductores

Registro de conductores y asignación a vehículos.

5
GET/drivers#

Listar conductores

Sin parámetros, devuelve los conductores a los que el usuario tiene acceso.

keyRequiere autenticaciónbadgeConductores
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/drivers" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/drivers#

Crear un conductor

keyRequiere autenticaciónbadgeConductores
Cuerpo de la petición application/json

Esquema: Driver

{
  "id": 0,
  "name": "",
  "uniqueId": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/drivers" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "uniqueId": "",
    "attributes": {}
  }'
GET/drivers/{id}#

Obtener un conductor

keyRequiere autenticaciónbadgeConductores
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/drivers/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/drivers/{id}#

Actualizar un conductor

keyRequiere autenticaciónbadgeConductores
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Driver

{
  "id": 0,
  "name": "",
  "uniqueId": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/drivers/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "uniqueId": "",
    "attributes": {}
  }'
DELETE/drivers/{id}#

Eliminar un conductor

keyRequiere autenticaciónbadgeConductores
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/drivers/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
build

Mantenimiento

Planes de mantenimiento y control por kilometraje u horas.

5
GET/maintenance#

Listar tareas de mantenimiento

Sin parámetros, devuelve las tareas de mantenimiento a las que el usuario tiene acceso.

keyRequiere autenticaciónbuildMantenimiento
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/maintenance" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/maintenance#

Crear una tarea de mantenimiento

keyRequiere autenticaciónbuildMantenimiento
Cuerpo de la petición application/json

Esquema: Maintenance

{
  "id": 0,
  "name": "",
  "type": "",
  "start": 0,
  "period": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/maintenance" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "type": "",
    "start": 0,
    "period": 0,
    "attributes": {}
  }'
GET/maintenance/{id}#

Obtener una tarea de mantenimiento

keyRequiere autenticaciónbuildMantenimiento
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/maintenance/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/maintenance/{id}#

Actualizar una tarea de mantenimiento

keyRequiere autenticaciónbuildMantenimiento
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Maintenance

{
  "id": 0,
  "name": "",
  "type": "",
  "start": 0,
  "period": 0,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/maintenance/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "type": "",
    "start": 0,
    "period": 0,
    "attributes": {}
  }'
DELETE/maintenance/{id}#

Eliminar una tarea de mantenimiento

keyRequiere autenticaciónbuildMantenimiento
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/maintenance/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
calendar_month

Calendarios

Horarios y ventanas de tiempo para notificaciones.

5
GET/calendars#

Listar calendarios

Sin parámetros, devuelve los calendarios a los que el usuario tiene acceso.

keyRequiere autenticacióncalendar_monthCalendarios
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/calendars" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/calendars#

Crear un calendario

keyRequiere autenticacióncalendar_monthCalendarios
Cuerpo de la petición application/json

Esquema: Calendar

{
  "id": 0,
  "name": "",
  "data": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/calendars" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "data": "",
    "attributes": {}
  }'
GET/calendars/{id}#

Obtener un calendario

keyRequiere autenticacióncalendar_monthCalendarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/calendars/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/calendars/{id}#

Actualizar un calendario

keyRequiere autenticacióncalendar_monthCalendarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Calendar

{
  "id": 0,
  "name": "",
  "data": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/calendars/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "data": "",
    "attributes": {}
  }'
DELETE/calendars/{id}#

Eliminar un calendario

keyRequiere autenticacióncalendar_monthCalendarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/calendars/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
receipt_long

Órdenes

Órdenes y servicios asociados a los vehículos.

5
GET/orders#

Listar órdenes

Sin parámetros, devuelve las órdenes a las que el usuario tiene acceso.

keyRequiere autenticaciónreceipt_longÓrdenes
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
excludeAttributesquerybooleannoOmite el mapa de atributos en la respuesta.
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/orders" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/orders#

Crear una orden

keyRequiere autenticaciónreceipt_longÓrdenes
Cuerpo de la petición application/json

Esquema: Order

{
  "id": 0,
  "uniqueId": "",
  "description": "",
  "fromAddress": "",
  "toAddress": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/orders" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "uniqueId": "",
    "description": "",
    "fromAddress": "",
    "toAddress": "",
    "attributes": {}
  }'
GET/orders/{id}#

Obtener una orden

keyRequiere autenticaciónreceipt_longÓrdenes
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/orders/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/orders/{id}#

Actualizar una orden

keyRequiere autenticaciónreceipt_longÓrdenes
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Order

{
  "id": 0,
  "uniqueId": "",
  "description": "",
  "fromAddress": "",
  "toAddress": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/orders/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "uniqueId": "",
    "description": "",
    "fromAddress": "",
    "toAddress": "",
    "attributes": {}
  }'
DELETE/orders/{id}#

Eliminar una orden

keyRequiere autenticaciónreceipt_longÓrdenes
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/orders/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
tune

Atributos calculados

Atributos derivados y personalizados de los dispositivos.

6
GET/attributes/computed#

Listar atributos

Sin parámetros, devuelve los atributos a los que el usuario tiene acceso.

keyRequiere autenticacióntuneAtributos calculados
ParámetroUbicaciónTipoObligatorioDescripción
allquerybooleannoSolo administradores o gerentes pueden consultar todas las entidades.
userIdqueryintegernoLos usuarios estándar solo pueden usarlo con su propio `userId`.
deviceIdqueryintegernoLos usuarios estándar solo pueden usarlo con dispositivos a los que tengan acceso.
groupIdqueryintegernoLos usuarios estándar solo pueden usarlo con grupos a los que tengan acceso.
refreshquerybooleanno—
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/attributes/computed" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/attributes/computed#

Crear un atributo

keyRequiere autenticacióntuneAtributos calculados
Cuerpo de la petición application/json

Esquema: Attribute

{
  "id": 0,
  "description": "",
  "attribute": "",
  "expression": "",
  "type": ""
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/attributes/computed" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "description": "",
    "attribute": "",
    "expression": "",
    "type": ""
  }'
POST/attributes/computed/test#

Evaluar un atributo calculado con la última posición

Solo administradores. Devuelve el valor calculado sin guardar el atributo.

keyRequiere autenticacióntuneAtributos calculados
ParámetroUbicaciónTipoObligatorioDescripción
deviceIdqueryintegersí—
Cuerpo de la petición application/json

Esquema: Attribute

{
  "id": 0,
  "description": "",
  "attribute": "",
  "expression": "",
  "type": ""
}
Respuestas
200OK
204Computation produced no value
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/attributes/computed/test" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "description": "",
    "attribute": "",
    "expression": "",
    "type": ""
  }'
GET/attributes/computed/{id}#

Obtener un atributo

keyRequiere autenticacióntuneAtributos calculados
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/attributes/computed/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/attributes/computed/{id}#

Actualizar un atributo

keyRequiere autenticacióntuneAtributos calculados
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: Attribute

{
  "id": 0,
  "description": "",
  "attribute": "",
  "expression": "",
  "type": ""
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/attributes/computed/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "description": "",
    "attribute": "",
    "expression": "",
    "type": ""
  }'
DELETE/attributes/computed/{id}#

Eliminar un atributo

keyRequiere autenticacióntuneAtributos calculados
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/attributes/computed/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
group

Usuarios

Gestión de usuarios, roles y permisos de la plataforma.

6
GET/users#

Listar usuarios

keyRequiere autenticacióngroupUsuarios
ParámetroUbicaciónTipoObligatorioDescripción
userIdquerystringnoSolo disponible para usuarios administradores o gerentes.
limitqueryintegernoLimita la cantidad de resultados devueltos.
offsetqueryintegernoDesplazamiento para paginación.
keywordquerystringnoFiltro por palabra clave (busca en nombre y correo).
Respuestas
200OK
400No Permission
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/users" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/users#

Crear un usuario

keyRequiere autenticacióngroupUsuarios
Cuerpo de la petición application/json

Esquema: User

{
  "id": 0,
  "name": "",
  "email": "",
  "phone": "",
  "readonly": false,
  "administrator": false,
  "map": "",
  "latitude": 0,
  "longitude": 0,
  "zoom": 0,
  "password": "",
  "coordinateFormat": "",
  "disabled": false,
  "expirationTime": "2026-01-01T00:00:00Z",
  "deviceLimit": 0,
  "userLimit": 0,
  "deviceReadonly": false,
  "limitCommands": false,
  "fixedEmail": false,
  "poiLayer": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/users" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "email": "",
    "phone": "",
    "readonly": false,
    "administrator": false,
    "map": "",
    "latitude": 0,
    "longitude": 0,
    "zoom": 0,
    "password": "",
    "coordinateFormat": "",
    "disabled": false,
    "expirationTime": "2026-01-01T00:00:00Z",
    "deviceLimit": 0,
    "userLimit": 0,
    "deviceReadonly": false,
    "limitCommands": false,
    "fixedEmail": false,
    "poiLayer": "",
    "attributes": {}
  }'
POST/users/totp#

Generar secreto TOTP

Público · sin autenticacióngroupUsuarios
Respuestas
200OK
400Bad request
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/users/totp"
GET/users/{id}#

Obtener un usuario

keyRequiere autenticacióngroupUsuarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
200OK
401Unauthorized
404Not found
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/users/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
PUT/users/{id}#

Actualizar un usuario

keyRequiere autenticacióngroupUsuarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Cuerpo de la petición application/json

Esquema: User

{
  "id": 0,
  "name": "",
  "email": "",
  "phone": "",
  "readonly": false,
  "administrator": false,
  "map": "",
  "latitude": 0,
  "longitude": 0,
  "zoom": 0,
  "password": "",
  "coordinateFormat": "",
  "disabled": false,
  "expirationTime": "2026-01-01T00:00:00Z",
  "deviceLimit": 0,
  "userLimit": 0,
  "deviceReadonly": false,
  "limitCommands": false,
  "fixedEmail": false,
  "poiLayer": "",
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/users/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "name": "",
    "email": "",
    "phone": "",
    "readonly": false,
    "administrator": false,
    "map": "",
    "latitude": 0,
    "longitude": 0,
    "zoom": 0,
    "password": "",
    "coordinateFormat": "",
    "disabled": false,
    "expirationTime": "2026-01-01T00:00:00Z",
    "deviceLimit": 0,
    "userLimit": 0,
    "deviceReadonly": false,
    "limitCommands": false,
    "fixedEmail": false,
    "poiLayer": "",
    "attributes": {}
  }'
DELETE/users/{id}#

Eliminar un usuario

keyRequiere autenticacióngroupUsuarios
ParámetroUbicaciónTipoObligatorioDescripción
idpathintegersí—
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/users/1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
admin_panel_settings

Permisos

Vinculación de dispositivos, grupos y usuarios.

5
GET/permissions#

Consultar vínculos de permisos entre objetos

Debes indicar exactamente dos parámetros de consulta `*Id` (por ejemplo `reportId` y `deviceId`). Usa `0` en un lado para indicar "cualquiera", por ejemplo `?reportId=5&deviceId=0` lista todos los dispositivos vinculados al reporte 5. Al menos un lado debe ser distinto de cero.

keyRequiere autenticaciónadmin_panel_settingsPermisos
Respuestas
200OK
400Bad request
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/permissions" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/permissions#

Vincular un objeto con otro

keyRequiere autenticaciónadmin_panel_settingsPermisos
Cuerpo de la petición application/json

Esquema: Permission

{
  "userId": 0,
  "deviceId": 0,
  "groupId": 0,
  "geofenceId": 0,
  "notificationId": 0,
  "calendarId": 0,
  "attributeId": 0,
  "driverId": 0,
  "managedUserId": 0,
  "commandId": 0
}
Respuestas
204No Content
400No permission
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/permissions" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": 0,
    "deviceId": 0,
    "groupId": 0,
    "geofenceId": 0,
    "notificationId": 0,
    "calendarId": 0,
    "attributeId": 0,
    "driverId": 0,
    "managedUserId": 0,
    "commandId": 0
  }'
DELETE/permissions#

Desvincular un objeto de otro

keyRequiere autenticaciónadmin_panel_settingsPermisos
Cuerpo de la petición application/json

Esquema: Permission

{
  "userId": 0,
  "deviceId": 0,
  "groupId": 0,
  "geofenceId": 0,
  "notificationId": 0,
  "calendarId": 0,
  "attributeId": 0,
  "driverId": 0,
  "managedUserId": 0,
  "commandId": 0
}
Respuestas
204No Content
401Unauthorized
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/permissions" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": 0,
    "deviceId": 0,
    "groupId": 0,
    "geofenceId": 0,
    "notificationId": 0,
    "calendarId": 0,
    "attributeId": 0,
    "driverId": 0,
    "managedUserId": 0,
    "commandId": 0
  }'
POST/permissions/bulk#

Vincular varios objetos en una sola petición

keyRequiere autenticaciónadmin_panel_settingsPermisos
Cuerpo de la petición application/json

Esquema: array

Respuestas
204No Content
400Bad request
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/permissions/bulk" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/permissions/bulk#

Desvincular varios objetos en una sola petición

keyRequiere autenticaciónadmin_panel_settingsPermisos
Cuerpo de la petición application/json

Esquema: array

Respuestas
204No Content
400Bad request
terminalEjemplo cURL
curl -X DELETE "https://gps.liot.cl/api/permissions/bulk" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
bar_chart

Estadísticas

Métricas agregadas del uso de la plataforma.

1
GET/statistics#

Obtener estadísticas del servidor

keyRequiere autenticaciónbar_chartEstadísticas
ParámetroUbicaciónTipoObligatorioDescripción
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/statistics?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
history

Auditoría

Registro de acciones realizadas en la plataforma.

1
GET/audit#

Consultar el registro de auditoría

Solo administradores. Devuelve las acciones realizadas en el rango de tiempo indicado.

keyRequiere autenticaciónhistoryAuditoría
ParámetroUbicaciónTipoObligatorioDescripción
fromquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
toquerystringsíEn formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/audit?from=1&to=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
lock_reset

Contraseña

Flujo de recuperación y restablecimiento de contraseña.

2
POST/password/reset#

Enviar correo de restablecimiento de contraseña

Siempre responde `200`, exista o no el correo.

Público · sin autenticaciónlock_resetContraseña
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200OK
400Bad request
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/password/reset" \
  -d "email=usuario@empresa.cl" -d "password=CLAVE"
POST/password/update#

Definir una nueva contraseña con el token de restablecimiento

Público · sin autenticaciónlock_resetContraseña
Cuerpo de la petición application/x-www-form-urlencoded

Esquema: object

Respuestas
200OK
404User not found
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/password/update" \
  -d "token=TOKEN_DE_RESET" -d "password=NUEVA_CLAVE"
dns

Servidor

Información, geocodificación, zonas horarias y utilidades del servicio.

8
GET/server#

Obtener información del servidor

Público · sin autenticacióndnsServidor
Respuestas
200OK
400Bad request
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/server"
PUT/server#

Actualizar la información del servidor

keyRequiere autenticacióndnsServidor
Cuerpo de la petición application/json

Esquema: Server

{
  "id": 0,
  "registration": false,
  "readonly": false,
  "deviceReadonly": false,
  "limitCommands": false,
  "map": "",
  "bingKey": "",
  "mapUrl": "",
  "poiLayer": "",
  "announcement": "",
  "latitude": 0,
  "longitude": 0,
  "zoom": 0,
  "version": "",
  "forceSettings": false,
  "coordinateFormat": "",
  "openIdEnabled": false,
  "openIdForce": false,
  "attributes": {}
}
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X PUT "https://gps.liot.cl/api/server" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "registration": false,
    "readonly": false,
    "deviceReadonly": false,
    "limitCommands": false,
    "map": "",
    "bingKey": "",
    "mapUrl": "",
    "poiLayer": "",
    "announcement": "",
    "latitude": 0,
    "longitude": 0,
    "zoom": 0,
    "version": "",
    "forceSettings": false,
    "coordinateFormat": "",
    "openIdEnabled": false,
    "openIdForce": false,
    "attributes": {}
  }'
GET/server/geocode#

Geocodificación inversa de coordenadas

keyRequiere autenticacióndnsServidor
ParámetroUbicaciónTipoObligatorioDescripción
latitudequerynumbersí—
longitudequerynumbersí—
Respuestas
200OK
401Unauthorized
500Reverse geocoding is not enabled
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/server/geocode?latitude=1&longitude=1" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/server/timezones#

Listar zonas horarias disponibles

keyRequiere autenticacióndnsServidor
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/server/timezones" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/server/file/{path}#

Subir un archivo al servidor

keyRequiere autenticacióndnsServidor
ParámetroUbicaciónTipoObligatorioDescripción
pathpathstringsí—
Cuerpo de la petición application/octet-stream

Esquema: string

Respuestas
200OK
400Bad request
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/server/file/archivo" \
  -H "Authorization: Bearer $LIOT_API_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@/ruta/local/archivo.bin"
GET/server/gc#

Ejecutar recolección de basura

keyRequiere autenticacióndnsServidor
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/server/gc" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
GET/server/cache#

Consultar el diagnóstico de caché

keyRequiere autenticacióndnsServidor
Respuestas
200OK
401Unauthorized
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/server/cache" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
POST/server/reboot#

Reiniciar el proceso del servidor

keyRequiere autenticacióndnsServidor
Respuestas
200OK
400Bad request
401Unauthorized
terminalEjemplo cURL
curl -X POST "https://gps.liot.cl/api/server/reboot" \
  -H "Authorization: Bearer $LIOT_API_TOKEN"
monitor_heart

Estado del servicio

Verificación de disponibilidad para monitoreo.

1
GET/health#

Verificar el estado del servicio

Devuelve texto plano con el estado para monitoreo de disponibilidad.

Público · sin autenticaciónmonitor_heartEstado del servicio
Respuestas
200Service is healthy
400Bad request
500Service is unavailable
terminalEjemplo cURL
curl -X GET "https://gps.liot.cl/api/health"

databaseModelos de datos

Estructura de los objetos que devuelve la API.

Action9 campos
CampoTipoDescripción
idintegerUnique action identifier
actionTimestring (date-time)When the action was recorded
addressstringClient address that initiated the action
userIdintegerIdentifier of the User who performed the action
userEmailstringEmail of the User who performed the action
actionTypestringAction category (e.g. login, edit, link)
objectTypestringType of object affected by the action
objectIdintegerIdentifier of the affected object
attributesobjectAdditional action attributes
Attribute5 campos
CampoTipoDescripción
idintegerUnique computed attribute identifier
descriptionstringHuman readable name of the attribute
attributestringAttribute name used in expressions
expressionstringExpression that defines how the attribute is calculated
typestringString|Number|Boolean
Calendar4 campos
CampoTipoDescripción
idintegerUnique calendar identifier
namestringCalendar display name
datastringbase64 encoded in iCalendar format
attributesobjectCustom calendar attributes
CombinedReportItem4 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the report item
routearraySimplified route as `[longitude, latitude]` pairs
eventsarray—
positionsarray—
Command6 campos
CampoTipoDescripción
idintegerUnique saved command identifier
deviceIdintegerTarget device identifier when the command is bound to one device
descriptionstringUser friendly label displayed in the UI
typestringCommand type as defined by the device protocol
textChannelbooleanWhether to send the command using the SMS channel
attributesobjectAdditional parameters required by the command type
CommandType1 campos
CampoTipoDescripción
typestringCommand type identifier
Device13 campos
CampoTipoDescripción
idintegerUnique identifier assigned by LIOT
namestringHuman friendly device label
uniqueIdstringHardware or protocol specific unique identifier
statusstringCurrent connection status such as `online`, `offline`, or `unknown`
disabledbooleanWhether the device is disabled by an administrator
lastUpdatestring,null (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
positionIdinteger,nullIdentifier of the last known position
groupIdinteger,nullParent group identifier when the device is assigned to a group
phonestring,nullContact phone number used for SMS commands
modelstring,nullDevice model or hardware revision
contactstring,nullResponsible person's contact information
categorystring,nullFree form category used for grouping devices in the UI
attributesobjectCustom attributes for protocol or business specific data
DeviceAccumulators3 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the accumulator entry
totalDistancenumberin meters
hoursnumberTotal engine hours recorded by the device
Driver4 campos
CampoTipoDescripción
idintegerUnique driver identifier
namestringDriver full name
uniqueIdstringUnique external identifier for the driver
attributesobjectCustom driver attributes
Event8 campos
CampoTipoDescripción
idintegerUnique event identifier
typestringEvent type name
eventTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
deviceIdintegerDevice associated with the event
positionIdintegerPosition record linked to the event when applicable
geofenceIdintegerGeofence referenced by the event if any
maintenanceIdintegerMaintenance record tied to the event
attributesobjectAdditional event-specific attributes
Geofence6 campos
CampoTipoDescripción
idintegerUnique identifier for the geofence
namestringHuman-readable name shown in lists and maps
descriptionstringDetails about the geofence for display in the UI
areastringGeofence area definition encoded as a WKT string
calendarIdintegerCalendar identifier limiting when the geofence is active
attributesobjectCustom key-value pairs for integrations or UI overrides
Group4 campos
CampoTipoDescripción
idintegerUnique group identifier
namestringGroup display name
groupIdintegerParent group identifier for nested grouping
attributesobjectArbitrary metadata attached to the group
Maintenance6 campos
CampoTipoDescripción
idintegerUnique maintenance item identifier
namestringMaintenance task name
typestringMetric the maintenance is based on
startnumberCurrent accumulated value when maintenance tracking starts
periodnumberThreshold value after which maintenance is due
attributesobjectCustom maintenance attributes
Notification8 campos
CampoTipoDescripción
idintegerUnique identifier for the notification
typestringNotification category such as geofenceEnter or ignitionOn
descriptionstring,nullUser-defined text describing the notification
alwaysbooleanWhether the notification triggers regardless of schedule
commandIdintegerIdentifier of the command to send when the notification triggers
notificatorsstringComma-separated delivery channels (for example, web, mail)
calendarIdintegerCalendar identifier restricting when the notification is active
attributesobjectAdditional custom attributes used by notificators or templates
NotificationMessage4 campos
CampoTipoDescripción
subjectstringSubject or title of the notification
digeststringShort summary shown in compact contexts; defaults to the body when omitted
body ·stringFull notification text
prioritybooleanWhether the message should be treated as high priority
NotificationType1 campos
CampoTipoDescripción
typestringNotification type identifier
Order6 campos
CampoTipoDescripción
idintegerUnique order identifier
uniqueIdstringExternal order identifier used by clients
descriptionstringAdditional details about the order assignment
fromAddressstringPickup location address
toAddressstringDestination address
attributesobjectCustom order attributes
Permission10 campos
CampoTipoDescripción
userIdintegerUser id, can be only first parameter
deviceIdintegerDevice id, can be first parameter or second only in combination with userId
groupIdintegerGroup id, can be first parameter or second only in combination with userId
geofenceIdintegerGeofence id, can be second parameter only
notificationIdintegerNotification id, can be second parameter only
calendarIdintegerCalendar id, can be second parameter only and only in combination with userId
attributeIdintegerComputed attribute id, can be second parameter only
driverIdintegerDriver id, can be second parameter only
managedUserIdintegerUser id, can be second parameter only and only in combination with userId
commandIdintegerSaved command id, can be second parameter only
Position17 campos
CampoTipoDescripción
idintegerUnique position record identifier
deviceIdintegerIdentifier of the device that reported this position
protocolstringDevice protocol name that produced the message
deviceTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
fixTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
serverTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
validbooleanIndicates whether the position was marked as valid by the device
latitudenumberLatitude in decimal degrees
longitudenumberLongitude in decimal degrees
altitudenumberAltitude above sea level in meters
speednumberin knots
coursenumberHeading in degrees (0-360) where 0 is true north
addressstringResolved reverse-geocoded address if available
accuracynumberEstimated positional accuracy in meters when provided
networkobjectNetwork metadata (e.g. cell or Wi‑Fi data) supplied by the device
geofenceIdsarrayList of geofence ids applicable to this position
attributesobjectCustom key-value attributes sent by the device or enrichments
QueuedCommand5 campos
CampoTipoDescripción
idintegerIdentifier of the queued command job
deviceIdintegerDevice identifier the queued command will be delivered to
typestringCommand type that will be executed
textChannelbooleanIndicates whether the queued command uses SMS delivery
attributesobjectStored parameters for the queued command
ReportGeofences5 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the geofence interval
deviceNamestringHuman readable device name
geofenceIdintegerGeofence identifier
startTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
endTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
ReportStops10 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the stop
deviceNamestringHuman readable device name
durationintegerStop duration in seconds
startTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
addressstringAddress where the stop occurred
latnumberStop latitude in decimal degrees
lonnumberStop longitude in decimal degrees
endTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
spentFuelnumberin liters
engineHoursintegerEngine hours accumulated during the stop
ReportSummary7 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the summary row
deviceNamestringHuman readable device name
maxSpeednumberin knots
averageSpeednumberin knots
distancenumberin meters
spentFuelnumberin liters
engineHoursintegerEngine hours accumulated for the report period
ReportTrips17 campos
CampoTipoDescripción
deviceIdintegerDevice identifier for the trip
deviceNamestringHuman readable device name
maxSpeednumberin knots
averageSpeednumberin knots
distancenumberin meters
spentFuelnumberin liters
durationintegerTrip duration in seconds
startTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
startAddressstringAddress where the trip started
startLatnumberStarting latitude in decimal degrees
startLonnumberStarting longitude in decimal degrees
endTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
endAddressstringAddress where the trip ended
endLatnumberEnding latitude in decimal degrees
endLonnumberEnding longitude in decimal degrees
driverUniqueIdstringUnique identifier of the driver assigned to the trip
driverNamestringName of the driver assigned to the trip
Server19 campos
CampoTipoDescripción
idintegerUnique server configuration identifier
registrationbooleanWhether new user registrations are allowed
readonlybooleanWhen true only administrators can modify server-wide settings
deviceReadonlybooleanDisallow device attribute changes for non-admins
limitCommandsbooleanRestrict command execution to supported protocol commands
mapstringDefault map layer identifier
bingKeystringBing Maps API key used when Bing is selected as a provider
mapUrlstringCustom tile server URL template if configured
poiLayerstringExternal point-of-interest layer configuration
announcementstringMessage displayed to all users in the web application
latitudenumberDefault map center latitude
longitudenumberDefault map center longitude
zoomintegerDefault map zoom level
versionstringLIOT server version string
forceSettingsbooleanForces users to use the server-wide settings instead of their own
coordinateFormatstringDefault coordinate format for displaying positions
openIdEnabledbooleanIndicates whether OpenID authentication is available
openIdForcebooleanRequire OpenID authentication for all users when enabled
attributesobjectAdditional server-level configuration values
Statistics6 campos
CampoTipoDescripción
captureTimestring (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
activeUsersintegerNumber of active users in the capture period
activeDevicesintegerNumber of active devices in the capture period
requestsintegerTotal API requests processed
messagesReceivedintegerNumber of device messages received
messagesStoredintegerNumber of device messages stored to the database
User21 campos
CampoTipoDescripción
idintegerUnique user identifier
namestringUser display name
emailstringEmail address used for login and notifications
phonestring,nullContact phone number for alerts
readonlybooleanWhen true, the user cannot change settings
administratorbooleanGrants full administrative privileges when enabled
mapstring,nullPreferred default map layer for the user
latitudenumberDefault map center latitude for this user
longitudenumberDefault map center longitude for this user
zoomintegerDefault map zoom level on login
passwordstringPassword for user authentication
coordinateFormatstring,nullPreferred coordinate display format
disabledbooleanIndicates whether the user account is disabled
expirationTimestring,null (date-time)En formato ISO 8601, por ejemplo `1963-11-22T18:30:00Z`.
deviceLimitintegerMaximum number of devices the user can manage
userLimitintegerMaximum number of subordinate users
deviceReadonlybooleanRestricts user from modifying device attributes
limitCommandsbooleanPrevents user from sending unsupported commands
fixedEmailbooleanLocks the email field to avoid changes
poiLayerstring,nullExternal POI layer configured for the user
attributesobjectAdditional custom user attributes

infoCódigos de estado

CódigoNombreDescripción
200OKLa petición se completó correctamente.
202AcceptedLa operación quedó en cola (por ejemplo, comandos).
204No ContentOperación exitosa sin cuerpo de respuesta.
400Bad RequestParámetros inválidos o faltantes.
401UnauthorizedCredenciales ausentes o inválidas.
403ForbiddenAutenticado, pero sin permisos suficientes.
404Not FoundEl recurso no existe.
405Method Not AllowedMétodo HTTP no soportado en la ruta.
415Unsupported Media TypeTipo de contenido no soportado.
500Server ErrorError interno del servicio.