Tutorial passo a passo para desenvolvedores: autenticação, endpoints de posições em tempo real, webhooks de eventos e exemplos de código em Node.js e Python.
A API REST do DN Tracker permite integrar dados de rastreamento diretamente ao seu ERP, TMS ou sistema de despacho. Este tutorial cobre os casos de uso mais comuns com exemplos de código prontos para uso.
Autenticação
A API usa tokens Bearer. Gere seu token em Configurações → API → Novo token. Tokens têm escopo configurável (leitura, escrita, webhooks) e podem ser rotacionados sem downtime.
curl https://api.dntracker.com.br/v1/vehicles \
-H "Authorization: Bearer SEU_TOKEN"Listando veículos
const res = await fetch("https://api.dntracker.com.br/v1/vehicles", {
headers: { Authorization: `Bearer ${process.env.DNTRACKER_TOKEN}` },
})
const { vehicles } = await res.json()
// [{ id, name, plate, deviceId, ... }]Posições em tempo real
Para posições em tempo real, use o endpoint SSE (Server-Sent Events). A conexão é mantida aberta e eventos chegam em menos de 2 segundos após a transmissão do dispositivo.
const evtSource = new EventSource(
"https://api.dntracker.com.br/v1/stream?orgId=ORG_ID&token=SEU_TOKEN"
)
evtSource.addEventListener("position", (e) => {
const { deviceId, lat, lng, speed, timestamp } = JSON.parse(e.data)
updateMap(deviceId, lat, lng)
})Webhooks
Webhooks são ideais para eventos discretos: entrada/saída de geofence, ignição ligada/desligada, excesso de velocidade. Configure a URL de destino no painel e o DN Tracker fará um POST com o payload do evento.
// Payload de evento de geofence
{
"event": "geofence.enter",
"vehicleId": "veh_abc123",
"geofenceId": "geo_xyz789",
"geofenceName": "Depósito Central",
"position": { "lat": -23.5505, "lng": -46.6333 },
"timestamp": "2026-02-20T14:32:00Z"
}Histórico de posições
import httpx
token = "SEU_TOKEN"
device_id = "dev_abc123"
res = httpx.get(
f"https://api.dntracker.com.br/v1/devices/{device_id}/history",
headers={"Authorization": f"Bearer {token}"},
params={"from": "2026-02-01T00:00:00Z", "to": "2026-02-02T00:00:00Z"},
)
positions = res.json()["positions"]Rate limits
- Endpoints REST: 60 req/min por token
- Stream SSE: 1 conexão por organização no plano Starter, ilimitado nos planos Pro e Enterprise
- Webhooks: sem limite de eventos recebidos
Escrito por Diego Nunes
Engineering · DN Tracker