API REST Integra el tracking GPS de tu flota a tu propia plataforma, ERP o app móvil. Bearer auth, rate-limit 60 req/min, scopes granulares.
Latencia < 200ms HTTPS · TLS 1.3 JSON · REST Quick start1 Genera un token. Entra a tu dashboard → /dashboard/configuracion/api-tokens y crea uno con los scopes que necesites.
2 Manda el token en el header Authorization: curl https://systecgps.mx/api/public/v1/devices \
-H "Authorization: Bearer sk_live_..." 3 Listo. Las respuestas son JSON. Errores siguen formato { error: "..." } con HTTP status apropiado.
Autenticación Toda petición lleva un header Authorization: Bearer <TOKEN>. Los tokens NO expiran salvo que los revoques desde el dashboard. Cada token tiene un set de scopes :
read
Listar unidades, posiciones, alertas, eventos.
write
Crear/modificar metadatos (geocercas, conductores).
commands
Enviar comandos al GPS (locate, restart, etc).
Rate limits Endpoint Límite Headers GET /devices, /devices/.../positions, /alerts 60 req/min X-RateLimit-Remaining POST /devices/.../locate 10 req/min X-RateLimit-Remaining
Sobre el límite → HTTP 429 con header Retry-After en segundos.
Endpoints GET /api/public/v1/devicesscope: read Lista las unidades visibles con telemetría básica (lat, lng, speed, status, lastUpdate).
Respuesta ejemplo
{
"data": [
{
"id": "12",
"name": "SAVEIRO YN-310-A",
"plate": "YN-310-A",
"imei": "352093080123456",
"status": "online",
"speed": 45.2,
"position": { "lat": 19.4326, "lng": -99.1332 },
"lastUpdate": "2026-05-08T14:23:45Z"
}
]
} GET /api/public/v1/devices/{id}/positionsscope: read Histórico de posiciones de una unidad. Query params: from, to (ISO 8601). Máx 90 días.
Respuesta ejemplo
{
"data": [
{
"lat": 19.4326,
"lng": -99.1332,
"speed": 45.2,
"heading": 180,
"timestamp": "2026-05-08T14:23:45Z"
}
]
} POST /api/public/v1/devices/{id}/locatescope: commands Solicita geolocalización inmediata de la unidad (envía comando al GPS por TCP).
Respuesta ejemplo
{
"ok": true,
"queued": true,
"commandId": "abc-123"
} GET /api/public/v1/alertsscope: read Lista las alertas activas. Query: status (open|acknowledged), since (ISO).
Respuesta ejemplo
{
"data": [
{
"id": 42,
"type": "fuel_drop",
"severity": "critical",
"deviceId": "12",
"message": "Caída de 15L en 2 min",
"createdAt": "2026-05-08T13:50:11Z"
}
]
} Webhooks Recibe eventos en tu propio servidor en lugar de hacer polling. Configura URLs en /dashboard/configuracion/webhooks. Eventos disponibles:
fuel_alert fuel_alert_critical sos geofence_enter geofence_exit speeding device_offline device_online custom_rule_triggered maintenance_due Cada payload se firma con HMAC-SHA256 en header X-Systec-Signature. Compatible con Slack y Discord (auto-formato Block Kit / embeds).
Códigos de estado 200 OK 400 Bad request — body o params inválidos 401 Unauthorized — token ausente o inválido 403 Forbidden — token no tiene el scope requerido 404 Not found 429 Rate limit excedido 500 Error interno 502 Backend Traccar no responde
¿Preguntas o necesitas algo que no aparece?
Hablar con soporte