Last position (V2)
Vehicles
Last position
Returns the last known position for a single vehicle.
GET
Last position (V2)
Overview
Returns the most recent position record for the specified vehicle.The V1 version of this endpoint is Vehicle Position.
Rate limit: 120 requests per 60 seconds per token.
Endpoint
GET /api/v2/vehicles/{id}/last-position
Path parameters
Legacy vehicle ID.
Response
200 OK —PositionDto or null if no data exists yet.
Record & timestamps
| Field | Type | Description |
|---|---|---|
| id | integer | Synthetic record ID (derived from UTC time + vehicle ID) |
| utcTime | datetime | Record timestamp (UTC, no fractional seconds) |
| userTime | datetime | Record timestamp in the user’s timezone |
| userTimeFormatted | string | Record timestamp formatted per the user’s date format |
| Field | Type | Description |
|---|---|---|
| lat | number | Latitude |
| lng | number | Longitude |
| speed | number | Speed (km/h) |
| course | integer | Compass direction in degrees (N=0, E=90, S=180, W=270) |
| Field | Type | Description |
|---|---|---|
| ignition | boolean | Ignition state |
| odometer | number | null | GPS odometer (km) |
| voltage | number | null | Internal battery voltage (V) |
| fatigue | string | ISO 8601 duration — time since last rest |
| engineHours | number | Cumulative engine hours |
| Field | Type | Description |
|---|---|---|
| satSignal | string | Satellite signal status label |
| satellites | integer | Number of GNSS satellites in use |
| connectionStrength | string | Cellular connection strength label |
| Field | Type | Description |
|---|---|---|
| deviceId | integer | Legacy vehicle ID |
| ignitionTime | number | null | Cumulative ignition-on time (seconds) |
| deviceName | string | Vehicle display name |
| imei | string | Device IMEI |
| vin | string | null | Vehicle Identification Number |
| Field | Type | Description |
|---|---|---|
| startMovingTime | datetime | null | When the vehicle started moving (UTC) |
| startMovingTimeUser | datetime | null | When the vehicle started moving (user timezone) |
| lastMovementTime | datetime | null | When the vehicle last stopped (UTC) |
| lastMovementTimeUser | datetime | null | When the vehicle last stopped (user timezone) |
| lastMovementTimeUserFormatted | string | null | Last movement time formatted |
| Field | Type | Description |
|---|---|---|
| drivingTime | integer | Driving time within current trip (seconds) |
| Field | Type | Description |
|---|---|---|
| fuelLevel | integer | Fuel level (%) |
| fuelVolume | number | null | Fuel volume (litres) |
| Field | Type | Description |
|---|---|---|
| address | string | Reverse-geocoded street address |
| engineEnabled | boolean | Whether engine output is enabled |
| Field | Type | Description |
|---|---|---|
| isOnline | boolean | Whether the device is currently online |
| Field | Type | Description |
|---|---|---|
| timeElapsed | number | Request processing time elapsed (seconds) |
| startedTime | datetime | Request processing start timestamp |
| endTime | datetime | Request processing end timestamp |
Error responses
| Status | Meaning |
|---|---|
| 401 | Token does not have access to this vehicle |
| 404 | Vehicle not found |
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
Response
Successful response