1. Generar un API token
En el dashboard ve a configuración → API tokens y crea uno con los scopes que necesites:
read— listar unidades, posiciones, alertaswrite— crear/modificar geocercas, conductorescommands— enviar comandos al GPS (locate, restart)
El token se ve solo una vez al crearlo. Guárdalo.
2. Hacer una petición
Manda Bearer token en el header Authorization:
curl https://systecgps.mx/api/public/v1/devices \ -H "Authorization: Bearer sk_live_..."
Respuesta:
{
"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-09T14:23:45Z"
}
]
}3. Endpoints principales
GET /api/public/v1/devices— lista flotaGET /api/public/v1/devices/{id}/positions?from=&to=— históricoPOST /api/public/v1/devices/{id}/locate— solicitar geolocalizaciónGET /api/public/v1/alerts?status=open— alertas activas
Lista completa en /api-docs.
4. Rate limits
- 60 req/min para GET endpoints
- 10 req/min para POST commands
- Sobre el límite → HTTP 429 con header
Retry-After
5. Webhooks (mejor que polling)
En vez de pollear, configura webhooks. SystecGPS te POSTea cuando algo pasa:
fuel_alert_critical— caída de combustible > 8L en 60ssos— botón emergencia presionadogeofence_enter/geofence_exitspeeding/device_offline/device_onlinemaintenance_due/custom_rule_triggered
Configura URLs en /dashboard/configuracion/webhooks. Cada payload viene firmado con HMAC-SHA256 en header X-Systec-Signature. Compatible con Slack y Discord (auto-formato Block Kit).
6. Webhooks entrantes (Zapier / n8n)
Permite que tu ERP/Stripe/email cree registros en SystecGPS. Ve a webhooks entrantes y crea uno con la acción que necesites:
create_incidentcreate_expensecreate_work_ordercreate_unit_notelog_only
Te da una URL única tipo /api/inbound/wh-abc123?secret=... que aceptan POST con JSON.
curl -X POST https://systecgps.mx/api/inbound/wh-abc123?secret=XXX \
-H "Content-Type: application/json" \
-d '{"deviceId":"12","amount":1500,"category":"combustible","liters":50}'7. Errores comunes
- 401 — token ausente o inválido
- 403 — token sin scope para la acción
- 429 — rate limit excedido (espera
Retry-Aftersegundos) - 502 — backend Traccar no responde