Position history
Paginated historical position records for a vehicle within a date range.
Overview
Returns position records for a vehicle betweenfrom and to (both treated as UTC), ordered oldest first.
Endpoint
GET /api/v2/vehicles/{id}/positions
Path parameters
Query parameters
Response
200 OK —PagedListResult<MinPositionDto>
MinPositionDto is a compact position record:
| Field | Type | Description |
|---|---|---|
| utcTime | datetime | Record timestamp (UTC) |
| userTime | datetime | Record timestamp in user’s timezone |
lat / lng | number | GPS coordinates |
| speed | number | Speed (km/h) |
| ignition | boolean | Ignition state |
| odometer | number | null | GPS odometer (km) |
| voltage | number | null | Battery voltage (V) |
| deviceId | integer | Legacy vehicle ID |
| deviceName | string | Vehicle display name |
| fuelLevel | integer | Fuel level (%) |
| fuelVolume | number | null | Fuel volume (litres) |
Error responses
| Status | Meaning |
|---|---|
| 401 | Token does not have access to this vehicle |
| 404 | Vehicle not found |
| 422 | Invalid date range (e.g. from after to) |
Authorizations
JWT Bearer token obtained from POST /api/v2/authentication/token/api-key.
Lifetime: ~24 hours (86,399 seconds). Cache the token and reuse it. Re-authenticate 5 minutes before expiry.
Scoping: API key tokens are scoped to the company the key belongs to and may restrict access to a vehicle allowlist and/or action set (see token claims).
No refresh endpoint — re-authenticate with your API key when the token expires.
Path Parameters
Query Parameters
Start of the date range (inclusive). Required — returns 422 if missing.
End of the date range (inclusive). Required — returns 422 if missing.
Response
Successful response