Desarrolladores
Dos formas de recibir los datos
PULZ te empuja cada evento a tu endpoint, o tu sistema los pide a la API cuando quiere. Las dos entregan el mismo evento JSON versionado.
{
"event_id": "ca978112ca1bbdcafac231b39a23dc4d…",
"schema_version": 1,
"event_type": "telemetry",
"device_id": "350000000000001",
"event_time": "2026-10-20T15:42:10.000Z",
"received_at": "2026-10-20T15:42:11.000Z",
"data": {
"speed_kmh": 12,
"ignition": true,
"ext_v_mv": 13800,
"position": { "lat": -34.17021, "lon": -70.74063, "alt_m": 520, "heading": 90, "sats": 11 },
"avl": { "239": 1 }
}
}Push
Webhook: un POST por evento
Tu sistema expone una URL HTTPS pública y PULZ le manda cada evento de los equipos que elegiste.
Cuerpo
Un evento por request, como objeto JSON. Sin arreglos ni sobres.
Autenticación
La clave de recepción en X-TCIT-Api-Key, que genera PULZ y se muestra una sola vez; o Authorization: Bearer con un token OAuth de tu proveedor de identidad.
Respuesta
Cualquier 2xx en menos de 5 segundos acepta el evento. Lo demás se reintenta durante 24 horas.
Semántica
Al menos una vez y sin orden garantizado: deduplica por event_id y ordena por event_time.
POST /tu/endpoint HTTP/1.1
Content-Type: application/json; charset=utf-8
X-TCIT-Destination-Id: erp-a1b2c3
X-TCIT-Api-Key: tcit_whk_…Hay receptores de referencia en TypeScript y Ruby que validan la clave en tiempo constante y deduplican. Ver los receptores.
Pull
API de lectura
REST, solo lectura, con la misma información que ves en el portal. Tu sistema no necesita exponer nada a internet.
| GET /devices | Los dispositivos de tu empresa, paginados. |
|---|---|
| GET /devices/{imei} | Un dispositivo: destinos, entrega pausada, última conexión. |
| GET /devices/{imei}/state | Los últimos valores conocidos del dispositivo. |
| GET /devices/{imei}/telemetry | Las lecturas en una ventana de tiempo, paginadas. |
| GET /events | Todas las lecturas de tu empresa en orden de llegada, con cursor, para sincronizar de forma continua. |
Las claves de API las crea un administrador en el portal. Se muestran una sola vez, dan solo lectura sobre los datos de tu empresa y puedes tener hasta 10 activas. Revocar una la desactiva de inmediato.
curl -sS "https://app.pulz.cl/api/v1/public/devices?limit=100" \
-H "Authorization: Bearer $PULZ_API_KEY"Preguntas frecuentes
¿Tengo que exponer un endpoint para recibir datos?
Solo si quieres que te los empujemos. La alternativa es la API de lectura: tu sistema pide los eventos con un cursor, a su ritmo, y no necesitas abrir nada hacia internet.
¿Los eventos llegan en orden y una sola vez?
No, y conviene diseñar para eso. La entrega es «al menos una vez» y sin orden garantizado: deduplica por event_id y ordena por event_time, que es la hora del equipo y no la de llegada.
¿Cuánto tiempo tengo para responder?
5 segundos. Cualquier 2xx acepta el evento; cualquier otra respuesta, o el silencio, se reintenta durante 24 horas. Para descartar un evento que no te interesa, responde 2xx.
¿Cómo autentico las llamadas a la API?
Con una clave de API que crea un administrador en el portal, en el encabezado Authorization: Bearer o X-Api-Key. Se muestra una sola vez, da solo lectura y tu empresa puede tener hasta 10 activas.
¿Cuánta historia guardan?
La telemetría se guarda 400 días y se puede consultar por ventana de tiempo en la API.
¿Quieres probarlo con tus sistemas?
Cuéntanos qué sistema va a recibir los datos y te mostramos la integración funcionando.