Arvetrak API Documentation
A practical, secure reference for integrating licensed vehicle data into your own systems.
https://api-docs.arvetrak.com/api/customer/v1Getting started
Connect your backend to your company’s licensed fleet. Start with the status request, then list vehicles and query their data.
- Add your server’s fixed outbound IP to the allowlist.
- Generate an API key and secret in the management panel.
- Call the status endpoint with both authentication headers.
Authentication & IP allowlist
Every REST request needs the key ID and secret in separate headers. Requests from unapproved IP addresses are rejected before fleet data is read.
X-Arvetrak-Key | Public key identifier |
|---|---|
X-Arvetrak-Secret | Secret value shown only at creation |
Accept | application/json |
Vehicle access & license periods
Only vehicles explicitly granted to this API client are returned. Real-time values are hidden after the license or grant expires. Historical queries are restricted to the intersection of granted and licensed periods.
Service status
https://api-docs.arvetrak.com/api/customer/v1/statusCheck credentials, client identity, active scopes and limits.
Required scope: status:read
Response · JSON
{
"data": {
"service": "Arvetrak Customer Fleet API",
"version": "v1",
"status": "ok",
"client": {
"code": "YOUR_CLIENT_CODE",
"name": "Integration",
"company": "Example",
"abilities": [
"status:read",
"vehicles:read",
"locations:read",
"realtime:read"
]
},
"limits": {
"requests_per_minute": 60,
"history_requests_per_minute": 15,
"max_page_size": 100,
"max_history_days": 7,
"max_history_points": 2000
},
"server_time": "2026-09-25T12:00:00Z"
}
} List vehicles
https://api-docs.arvetrak.com/api/customer/v1/vehiclesPaginated vehicles granted to this client. Expired vehicles remain listed without live values.
Required scope: vehicles:read
Parameters
| Name | Type | Description |
|---|---|---|
page | integer | Page number, starting at 1 |
per_page | integer | Up to the client max_page_size limit |
search | string | Plate, vehicle name or IMEI |
license_status | enum | active | expired | all |
Response · JSON
{
"data": [
{
"id": 42,
"imei": "353742378000001",
"plate": "34 ABC 123",
"license": {
"status": "active"
},
"live_data_available": true,
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 0,
"ignition": false,
"online": true
}
],
"meta": {
"current_page": 1,
"per_page": 100,
"total": 1,
"last_page": 1
},
"links": {
"previous": null,
"next": null
}
} Vehicle details
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}Get one granted vehicle and its current snapshot. An unknown or ungranted IMEI returns 404.
Required scope: vehicles:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | 14–17 digit device IMEI |
Response · JSON
{
"data": {
"imei": "353742378000001",
"plate": "34 ABC 123",
"location_valid": true,
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 0,
"ignition": false,
"last_seen_at": "2026-09-25T12:00:00Z"
},
"meta": {
"generated_at": "2026-09-25T12:00:01Z"
}
} Location history
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/locationsRead GPS history within granted license periods. The newest points in the selected window are returned in ascending time order. If has_more is true, query an earlier window to continue.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted device IMEI |
from | ISO 8601 · required | UTC start, inclusive |
to | ISO 8601 · required | UTC end, inclusive |
limit | integer | Maximum returned points; client limit applies |
Response · JSON
{
"data": [
{
"recorded_at": "2026-09-25T11:59:00Z",
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 31.2,
"heading_deg": 90,
"ignition": true
}
],
"meta": {
"count": 1,
"has_more": false,
"order": "ascending"
}
} Report endpoints
https://api-docs.arvetrak.com/api/customer/v1/reportsEvery report card on the web Reports screen is listed below individually. Animation endpoints return their underlying data, not rendered video. Each endpoint uses a granted vehicle and paginated rows.
Required scope: locations:read
Response · JSON
{
"data": [
{
"type": "ignition",
"label": "Kontak Açma/Kapatma",
"endpoint": "/vehicles/{imei}/reports/ignition"
},
{
"type": "alarms",
"label": "Alarm Raporu",
"endpoint": "/vehicles/{imei}/reports/alarms"
},
{
"type": "detail",
"label": "Detay Raporu",
"endpoint": "/vehicles/{imei}/reports/detail"
},
{
"type": "trips",
"label": "Seyahat Raporu",
"endpoint": "/vehicles/{imei}/reports/trips"
},
{
"type": "canbus",
"label": "CAN Bus / OBD-II",
"endpoint": "/vehicles/{imei}/reports/canbus"
},
{
"type": "current-location",
"label": "Anlık Konum",
"endpoint": "/vehicles/{imei}/reports/current-location"
},
{
"type": "vehicles",
"label": "Araç Listesi",
"endpoint": "/vehicles/{imei}/reports/vehicles"
},
{
"type": "vehicle-score",
"label": "Araç Skoru",
"endpoint": "/vehicles/{imei}/reports/vehicle-score"
},
{
"type": "vehicle-summary",
"label": "Araç Performans Özeti",
"endpoint": "/vehicles/{imei}/reports/vehicle-summary"
},
{
"type": "blockage",
"label": "Motor Blokajı",
"endpoint": "/vehicles/{imei}/reports/blockage"
},
{
"type": "trailer",
"label": "Dorse",
"endpoint": "/vehicles/{imei}/reports/trailer"
},
{
"type": "stops",
"label": "Durak / Rölanti",
"endpoint": "/vehicles/{imei}/reports/stops"
},
{
"type": "geofence",
"label": "Bölge Giriş / Çıkış",
"endpoint": "/vehicles/{imei}/reports/geofence"
},
{
"type": "day-end",
"label": "Gün Sonu",
"endpoint": "/vehicles/{imei}/reports/day-end"
},
{
"type": "daily-km",
"label": "Günlük KM",
"endpoint": "/vehicles/{imei}/reports/daily-km"
},
{
"type": "speed",
"label": "Hız",
"endpoint": "/vehicles/{imei}/reports/speed"
},
{
"type": "km-limit",
"label": "Kilometre Aşımı",
"endpoint": "/vehicles/{imei}/reports/km-limit"
},
{
"type": "distance",
"label": "Mesafe",
"endpoint": "/vehicles/{imei}/reports/distance"
},
{
"type": "off-hours",
"label": "Mesai Dışı Kullanım",
"endpoint": "/vehicles/{imei}/reports/off-hours"
},
{
"type": "trip-summary",
"label": "Seyahat Özeti",
"endpoint": "/vehicles/{imei}/reports/trip-summary"
},
{
"type": "drivers",
"label": "Sürücü Performansı",
"endpoint": "/vehicles/{imei}/reports/drivers"
},
{
"type": "driver-list",
"label": "Sürücü Listesi",
"endpoint": "/vehicles/{imei}/reports/driver-list"
},
{
"type": "driving-dynamics",
"label": "Sürüş Dinamikleri",
"endpoint": "/vehicles/{imei}/reports/driving-dynamics"
},
{
"type": "gsensor-cockpit",
"label": "G-Sensör Araç İçi Animasyon Verisi",
"endpoint": "/vehicles/{imei}/reports/gsensor-cockpit"
},
{
"type": "gsensor-motion",
"label": "G-Sensör Hareket Animasyon Verisi",
"endpoint": "/vehicles/{imei}/reports/gsensor-motion"
},
{
"type": "total-km",
"label": "Toplam KM",
"endpoint": "/vehicles/{imei}/reports/total-km"
},
{
"type": "fuel",
"label": "Yakıt",
"endpoint": "/vehicles/{imei}/reports/fuel"
},
{
"type": "fuel-prices",
"label": "Yakıt Fiyatları",
"endpoint": "/vehicles/{imei}/reports/fuel-prices"
},
{
"type": "temperature-overview",
"label": "Soğuk Zincir Uyum Özeti",
"endpoint": "/vehicles/{imei}/reports/temperature-overview"
},
{
"type": "temperature-violations",
"label": "Sıcaklık İhlalleri",
"endpoint": "/vehicles/{imei}/reports/temperature-violations"
},
{
"type": "temperature-proof",
"label": "Sefer Bazlı Isı Kanıtı",
"endpoint": "/vehicles/{imei}/reports/temperature-proof"
},
{
"type": "temperature-readings",
"label": "Ölçüm Günlüğü",
"endpoint": "/vehicles/{imei}/reports/temperature-readings"
},
{
"type": "auto-service-areas",
"label": "Oto Sanayi Bölgeleri",
"endpoint": "/vehicles/{imei}/reports/auto-service-areas"
},
{
"type": "fleet-executive",
"label": "Filo Yönetici Özeti",
"endpoint": "/vehicles/{imei}/reports/fleet-executive"
},
{
"type": "fleet-utilization",
"label": "Filo Kullanım ve Atıl Araç",
"endpoint": "/vehicles/{imei}/reports/fleet-utilization"
},
{
"type": "fleet-tco",
"label": "Filo Maliyet ve TCO",
"endpoint": "/vehicles/{imei}/reports/fleet-tco"
},
{
"type": "fleet-maintenance",
"label": "Filo Bakım ve Arıza",
"endpoint": "/vehicles/{imei}/reports/fleet-maintenance"
},
{
"type": "fleet-availability",
"label": "Filo Kullanılabilirlik",
"endpoint": "/vehicles/{imei}/reports/fleet-availability"
},
{
"type": "fleet-groups",
"label": "Şube ve Filo Grubu",
"endpoint": "/vehicles/{imei}/reports/fleet-groups"
},
{
"type": "fleet-contracts",
"label": "Kontrat ve KM Tahmini",
"endpoint": "/vehicles/{imei}/reports/fleet-contracts"
},
{
"type": "fleet-renewal",
"label": "Filo Yenileme Kararı",
"endpoint": "/vehicles/{imei}/reports/fleet-renewal"
}
]
} Ignition events
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/ignitionReturns observed ignition state changes for one permitted vehicle within licensed periods. The first sample in each licensed interval is a baseline, not an event. Use page/per_page for the complete result.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted 14–17 digit IMEI |
from / to | ISO 8601 · required | UTC interval; maximum max_history_days |
page / per_page | integer | Page number and page size, up to the client limit |
order | asc | desc | Event time order; default desc |
Response · JSON
{
"data": [
{
"recorded_at": "2026-09-25T07:13:00Z",
"event": "opened",
"ignition": true,
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 0
}
],
"meta": {
"report": "ignition",
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1,
"has_more": false
}
} Alarm events
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/alarmsLists alarm records for one permitted vehicle, within its licensed periods and company ownership snapshot.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted 14–17 digit IMEI |
from / to | ISO 8601 · required | UTC interval; maximum max_history_days |
page / per_page | integer | Page number and size, subject to the client limit |
category | string | Optional exact alarm category |
is_active | boolean | Optional active/inactive state |
order | asc | desc | Event time order; default desc |
Response · JSON
{
"data": [
{
"recorded_at": "2026-09-25T07:13:00Z",
"code": "T_MOVEMENT",
"description": "Araç hareket ettirildi",
"category": "alarm",
"is_active": true,
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 0
}
],
"meta": {
"report": "alarms",
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1,
"has_more": false
}
} Detailed packet report
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/detailPaginated device packets from licensed periods, with position, speed and ignition. Missing telemetry is null.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted IMEI |
from / to | ISO 8601 · required | UTC interval |
page / per_page | integer | Pagination, default 1/100 |
order | asc | desc | Packet time order |
Response · JSON
{
"data": [
{
"recorded_at": "2026-09-25T07:13:00Z",
"latitude": 41.01,
"longitude": 28.97,
"speed_kmh": 31.2,
"ignition": true
}
],
"meta": {
"report": "detail",
"current_page": 1,
"per_page": 50,
"total": 1,
"has_more": false
}
} Trips
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/tripsCompleted trips wholly within licensed intervals; trips crossing a license boundary are intentionally omitted.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted IMEI |
from / to | ISO 8601 · required | UTC interval |
page / per_page | integer | Pagination, default 1/100 |
order | asc | desc | Trip start order |
Response · JSON
{
"data": [
{
"started_at": "2026-09-25T07:13:00Z",
"ended_at": "2026-09-25T08:00:00Z",
"distance_km": 12.4,
"duration_sec": 2820,
"idle_sec": 120,
"max_speed_kmh": 72
}
],
"meta": {
"report": "trips",
"current_page": 1,
"per_page": 50,
"total": 1,
"has_more": false
}
} CAN Bus / OBD-II packets
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/canbusOnly packets containing observed CAN/OBD data are returned. This endpoint does not invent unreported fields.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted IMEI |
from / to | ISO 8601 · required | UTC interval |
page / per_page | integer | Pagination, default 1/100 |
order | asc | desc | Packet time order |
Response · JSON
{
"data": [
{
"recorded_at": "2026-09-25T07:13:00Z",
"speed_kmh": 30,
"telemetry": {
"io_36": 860
}
}
],
"meta": {
"report": "canbus",
"current_page": 1,
"per_page": 50,
"total": 1,
"has_more": false
}
} Current location
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/current-locationLatest position, speed and ignition snapshot; an active license is required.
- This is the latest known device snapshot, not a guaranteed current GPS fix. Check the packet timestamp before treating the vehicle as online. Historical snapshots are not returned.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "current-location",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Vehicle list
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/vehiclesVehicle, device and latest signal details; an active license is required.
- This is the latest known device snapshot, not a guaranteed current GPS fix. Check the packet timestamp before treating the vehicle as online. Historical snapshots are not returned.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "vehicles",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Vehicle score
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/vehicle-scoreSafety, efficiency and utilization score for this vehicle.
- Scores and comparisons are calculated from recorded activity. Missing source data can leave a score empty; do not interpret a missing score as zero.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "vehicle-score",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Vehicle performance summary
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/vehicle-summaryDistance, driving, idle time and alarm metrics.
- Scores and comparisons are calculated from recorded activity. Missing source data can leave a score empty; do not interpret a missing score as zero.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "vehicle-summary",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Engine immobilizer
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/blockageImmobilizer feature and current vehicle state; an active license is required.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- Read-only report: requesting it never sends an immobilizer command.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "blockage",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Trailer
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/trailerTrailer linkage and tracking records where the module is enabled.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- If the optional trailer module is not configured, an empty result is expected.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "trailer",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Stops and idling
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/stopsStop counts and idling duration from completed trips.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "stops",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Geofence entry and exit
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/geofenceEntry and exit alarm events for defined zones.
- Only recorded entry/exit alarm events are listed. This endpoint does not reconstruct a dwell interval when a device did not report an event.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
geofence_id | integer | Zone identifier |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "geofence",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Day-end report
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/day-endDaily first/last ignition, distance and trip duration.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "day-end",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Daily mileage
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/daily-kmOdometer readings and distance by day.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "daily-km",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Speed report
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/speedAverage/maximum trip speed and overspeed counts.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "speed",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Mileage threshold
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/km-limitDays exceeding the requested mileage threshold.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- km_limit is the requested daily threshold, not the licensed total distance.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
km_limit | number | Daily mileage threshold in km |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "km-limit",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Distance report
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/distanceDaily distance derived from trips and odometer readings.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "distance",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Out-of-hours usage
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/off-hoursTrips and related alarms outside working hours.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- Classification follows the working-hours settings configured for the web report.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "off-hours",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Trip summary
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/trip-summaryDaily trip count, travel time and distance.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "trip-summary",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Driver performance
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/driversDriver safety and efficiency scores.
- Driver performance depends on recorded driver assignments. An unassigned journey cannot be attributed to a person.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
driver_code | string | Driver identifier |
sort | string | Driver score sort key |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "drivers",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Driver list
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/driver-listDriver assignments related to the vehicle.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "driver-list",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Driving dynamics
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/driving-dynamicsHarsh braking, acceleration, cornering and road events.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "driving-dynamics",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} G-sensor cockpit animation data
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/gsensor-cockpitDevice axis samples used for cockpit animation; returns data rather than a rendered video.
- Returns source events or sampled axis measurements for the animation, not an image or video. Axis points may be downsampled for performance.
- data contains axis samples for the cockpit playback.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "gsensor-cockpit",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} G-sensor motion animation data
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/gsensor-motionBump, road-surface and driving events used for the 3D animation.
- Returns source events or sampled axis measurements for the animation, not an image or video. Axis points may be downsampled for performance.
- data contains timestamped movement events for the 3D playback.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "gsensor-motion",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Total mileage
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/total-kmOdometer readings at the beginning and end of the period.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "total-km",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fuel report
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fuelEstimated fuel from trip distance and consumption profile; the estimation source is shown.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- Consumption may be estimated from distance and a configured profile; it is not necessarily measured CAN fuel flow.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
fuel_city | string | City for fuel-price comparison |
fuel_date | Y-m-d | Fuel-price date |
general_consumption_per_100km | number | Fallback consumption estimate (L/100 km) |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fuel",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fuel prices
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fuel-pricesComparison of fuel prices for the selected city and date.
- Rows follow the web report table: cells contains display values, export contains export-ready values, and summary contains period totals. Empty data means there were no matching records, not an API error.
- Prices are a comparison dataset selected by fuel_city and fuel_date, not a vehicle purchase or measured consumption.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
fuel_city | string | City for fuel-price comparison |
fuel_date | Y-m-d | Fuel-price date |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fuel-prices",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Cold-chain compliance
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/temperature-overviewTemperature compliance and risk from observed sensor readings.
- Only sensor readings actually received from the device are used. No reading is fabricated for periods with missing sensor coverage.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
beacon_key | string | Sensor identifier |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "temperature-overview",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Temperature violations
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/temperature-violationsGrouped events for sensor readings outside thresholds.
- Only sensor readings actually received from the device are used. No reading is fabricated for periods with missing sensor coverage.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
beacon_key | string | Sensor identifier |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "temperature-violations",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Trip temperature evidence
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/temperature-proofMeasured temperature range and compliance during trips.
- Only sensor readings actually received from the device are used. No reading is fabricated for periods with missing sensor coverage.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
beacon_key | string | Sensor identifier |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "temperature-proof",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Sensor readings
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/temperature-readingsRaw temperature and humidity measurements.
- Only sensor readings actually received from the device are used. No reading is fabricated for periods with missing sensor coverage.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
beacon_key | string | Sensor identifier |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "temperature-readings",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Automotive service areas
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/auto-service-areasActive map catalog of automotive service areas; not vehicle telemetry.
- This is a shared map catalog, not vehicle telemetry. A currently licensed, granted IMEI is still required for the customer API request.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
city | string | Exact city name |
source | enum | catalog, community or mine |
search | string | Search within fleet rows |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "auto-service-areas",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet executive summary
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-executiveVehicle, mileage, cost and fleet health overview. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-executive",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet utilization
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-utilizationUsed/idle days and driving-to-idling ratio. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-utilization",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet cost and TCO
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-tcoTotal ownership cost per vehicle and kilometre. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-tco",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet maintenance and faults
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-maintenanceMaintenance risk, service time and faults. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-maintenance",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet availability
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-availabilityReady, in-service, faulty and idle vehicles. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-availability",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Branches and fleet groups
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-groupsVehicle, mileage and cost comparison by group. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
group | string | Fleet group name |
search | string | Search within fleet rows |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-groups",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Contracts and mileage forecast
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-contractsContract expiry, mileage limits and projected overrun. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-contracts",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Fleet renewal decisions
https://api-docs.arvetrak.com/api/customer/v1/vehicles/{imei}/reports/fleet-renewalRenewal priority based on age, mileage, maintenance and health. The previous comparison period and current snapshot must also be licensed.
- The fleet report is restricted to the one granted IMEI in the URL, including comparison totals. The preceding comparison period and current snapshot must also be licensed.
Required scope: locations:read
Parameters
| Name | Type | Description |
|---|---|---|
imei | path · string | Granted vehicle IMEI (14–17 digits) |
start_date / end_date | Y-m-d · required | Inclusive local calendar days; entire period must be licensed and within max_history_days. |
page / per_page | integer | Page starts at 1; page size is limited by max_page_size (up to 50). |
Response · JSON
{
"data": [],
"summary": [],
"meta": {
"report": "fleet-renewal",
"vehicle": {
"imei": "353742378000001",
"plate": "34 ABC 123"
},
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1,
"has_more": false
}
} Create WebSocket ticket
https://api-docs.arvetrak.com/api/customer/v1/ws/ticketRequest a short-lived connection ticket from your backend. Do not expose the REST secret to the browser.
Required scope: realtime:read
Parameters
| Name | Type | Description |
|---|---|---|
imeis | JSON array | Granted IMEIs to subscribe to |
Response · JSON
{
"data": {
"url": "wss://gw.arvetrak.com/ws",
"token": "SHORT_LIVED_TOKEN",
"expires_in": 300,
"vehicle_count": 1,
"ping_interval": 30
}
} Data dictionary
Timestamps use ISO 8601 in UTC. Distance values are in kilometres; speed in km/h; voltage in volts. Null means the device did not provide a trusted value.
latitude / longitude | WGS84 position; null if invalid or license expired |
|---|---|
recorded_at / received_at | Device event time / server reception time |
online | True only if licensed and recently seen |
ignition / movement | Boolean when reported; otherwise null |
device_battery_v / external_voltage_v | Device battery / external power in volts |
Rate limits
The client has independent standard, history and WebSocket budgets. Inspect /status for current values. HTTP 429 means back off; never loop aggressively.
Errors
All errors are JSON with a stable error code. Never infer access from the wording of an error.
401 · invalid_credentials | Missing, wrong or expired key/secret |
|---|---|
403 · ip_not_allowed | Source IP is not allowlisted |
403 · insufficient_scope | Credential lacks the endpoint scope |
403 · outside_license_period | Requested history is outside the granted licensed period |
404 · vehicle_not_found | Vehicle is unknown or not granted |
422 · validation_error | Invalid query or body parameters |
429 | Client rate limit reached |
Response · JSON
{
"message": "Request parameters are invalid.",
"error": "validation_error",
"errors": {
"from": [
"The from field is required."
]
}
} Security
Use HTTPS/WSS, keep credentials only in server-side secrets, rotate leaked keys, restrict IP ranges and avoid logging location or secrets. The mobile API has separate authentication and is not governed by these customer API limits.