Events
GET /api/v3/events
Section titled “GET /api/v3/events”Fleet events for the key’s owner (entering/leaving an area, ignition, parking, alerts…). Permission: read_events.
| Parameter | Default | Notes |
|---|---|---|
type |
— | filter by event type — see below for the geofence values |
device |
— | filter by IMEI |
from / to |
— | time window, ISO 8601 |
limit |
50 | 1–200 |
offset |
0 |
For geofence events, type accepts:
| Value | What it filters |
|---|---|
geofence |
every geofence event (both entries and exits) |
geofence_enter / geofence_entry |
only entries |
geofence_exit |
only exits |
geofence_enter/geofence_entry/geofence_exit are aliases that filter the same geofence event,
distinguishing entry from exit.
curl -H "X-API-Key: $AITRACK_API_KEY" \ "https://api.aitrack.it/api/v3/events?type=geofence_enter&limit=50"const url = new URL('https://api.aitrack.it/api/v3/events');url.searchParams.set('type', 'geofence_enter');url.searchParams.set('limit', '50');
const res = await fetch(url, { headers: { 'X-API-Key': process.env.AITRACK_API_KEY } });const { data, meta } = await res.json();res = requests.get( "https://api.aitrack.it/api/v3/events", headers={"X-API-Key": api_key}, params={"type": "geofence_enter", "limit": 50}, timeout=10,)events = res.json()["data"]{ "data": [ { "id": 5521, "type": "geofence", "message": "Van 1 entered Warehouse", "device_imei": "352093081452312", "data": { "areaId": 12, "event": "entry" }, "read": false, "occurred_at": "2026-07-14T08:59:00.000Z" } ], "meta": { "pagination": { "limit": 50, "offset": 0, "count": 1 } }}See also Errors & limits for the shared envelope and error codes (same as v2),
and Areas for entry/exit events filtered to a single area
(GET /api/v3/areas/{id}/events).