Skip to main content
POST
/
api
/
GetLastPositionData
Get Vehicle Position
curl --request POST \
  --url https://api.telemax.com.au/api/GetLastPositionData \
  --header 'Authorization: Bearer <token>'
[
  {
    "UtcTime": "2024-01-15T10:30:00Z",
    "UserTime": "2024-01-15T12:30:00+02:00",
    "UserTimeFormated": "15/01/2024 12:30:00",
    "Lat": 40.7128,
    "Lng": -74.006,
    "Speed": 65.5,
    "Course": 90,
    "Ignition": true,
    "Odometer": 125000.5,
    "DeviceId": 12345,
    "DeviceName": "Fleet Vehicle 001",
    "Address": "123 Main St, New York, NY 10001"
  }
]

Overview

Returns the latest known position for one vehicle (legacy id), enriched via snapshot + geo services when applicable.
A V2 version of this endpoint is available: Last position. New integrations should prefer V2.

Endpoint

POST /api/GetLastPositionData

Query parameters

id
integer
required
Legacy vehicle id.

Response

200 OKPositionDto or null if no record. Major fields include Lat, Lng, UtcTime, DeviceId (legacy id), IMEI, DeviceName, Vin, Speed, Course, Ignition, Odometer, Voltage, Address, isOnline (when derived from snapshots), and legacy spellings UserTimeFormated, ConnectionStrengh, LastMovementTimeUserFormated.

Error responses

StatusMeaning
404Unknown legacy id
401Vehicle not allowed

Authorizations

Authorization
string
header
required

JWT Bearer token obtained from POST /api/authentication/token/user or POST /api/authentication/token/api-key.

Lifetime: ~24 hours (86,399 seconds). Cache the token and reuse it. Re-authenticate 5 minutes before expiry.

Scoping:

  • User tokens are scoped to a single company.
  • API key tokens may restrict access to a vehicle allowlist and/or action set (see token claims).

No refresh endpoint — re-authenticate with your credentials when the token expires.

Headers

Content-Type
string

Standard and must keep as it is.

Authorization
string
required

Bearer your_token

Query Parameters

id
integer
required

Vehicle ID.

Response

Successful response with position data

Id
integer
Example:

1305200

UtcTime
string<date-time>

Time in UTC

Example:

"2024-01-15T10:30:00Z"

UserTime
string<date-time>

Time in user timezone

Example:

"2024-01-15T12:30:00+02:00"

UserTimeFormated
string

Timestamp in the user's configured date-time format (e.g. "15/01/2024 12:30:00"). Note: The field name is intentionally misspelled (UserTimeFormated, single 't') to preserve backward compatibility.

Example:

"15/01/2024 12:30:00"

Lat
number<double>

Latitude

Example:

40.7128

Lng
number<double>

Longitude

Example:

-74.006

Speed
number<double>

Unit: km/h. Current vehicle speed.

Example:

65.5

Course
integer

Direction, degrees (N - 0, E - 90, S - 180, W - 270)

Example:

90

Ignition
boolean

Ignition status

Example:

true

Odometer
number<float> | null

Unit: km. Total distance travelled (odometer reading).

Example:

125000.5

Voltage
number<float> | null

Unit: V (volts). Vehicle battery voltage.

Example:

12.6

Fatigue
string<duration>

ISO 8601 duration string representing continuous driving time (fatigue monitoring).

Example:

"PT2H30M"

EngineHours
number<double>

Unit: hours (decimal). Cumulative engine-on time. This is a plain number, not an ISO 8601 duration.

Example:

30.5

SatSignal
string

Satellite signal status

Example:

"Good"

Satellites
integer

Number of satellites

Example:

8

ConnectionStrengh
string

Connection strength category (e.g. "Excellent", "Good", "Poor"). Note: The field name is intentionally misspelled (ConnectionStrengh, missing 'd') to preserve backward compatibility with the legacy API. Use this exact spelling in your integration.

Example:

"Excellent"

DeviceId
integer

Vehicle ID

Example:

12345

IgnitionTime
number<double> | null

Unit: seconds. Elapsed time since ignition turned on (trip duration).

Example:

3600.5

DeviceName
string

Name of the vehicle

Example:

"Fleet Vehicle 001"

IMEI
string

IMEI of the tracker

Example:

"123456789012345"

Vin
string | null

VIN of the vehicle

Example:

"1HGBH41JXMN109186"

StartMovingTime
string<date-time> | null

Time when vehicle started to move, UTC

Example:

"2024-01-15T08:00:00Z"

StartMovingTimeUser
string<date-time> | null

Time when vehicle started to move, user timezone

Example:

"2024-01-15T10:00:00+02:00"

LastMovementTime
string<date-time> | null

Time when vehicle stopped, UTC

Example:

"2024-01-15T16:00:00Z"

LastMovementTimeUser
string<date-time> | null

Time when vehicle stopped, user timezone

Example:

"2024-01-15T18:00:00+02:00"

LastMovementTimeUserFormated
string | null

Time when vehicle stopped, in the user's timezone and date-time format. Note: The field name is intentionally misspelled (LastMovementTimeUserFormated, single 't') to preserve backward compatibility.

Example:

"15/01/2024 18:00:00"

DrivingTime
integer

Unit: seconds. Total driving time within the current trip.

Example:

3000

Driver
string | null

Driver name if any

Example:

"John Smith"

FuelLevel
integer

Fuel level, %

Required range: 0 <= x <= 100
Example:

75

DTC
string | null

DTC code

Example:

"P0301"

IsDoorLocked
boolean
deprecated

Is the door locked (Deprecated)

Example:

true

Address
string

Address of the vehicle

Example:

"123 Main St, New York, NY 10001"

EngineEnabled
boolean

Whether the engine is enabled

Example:

true

timeElapsed
number<double>

Unit: seconds. Server-side time taken to process this request. Note: This field uses camelCase (intentional) while most other fields use PascalCase.

Example:

0.125

startedTime
string<date-time>

UTC timestamp when this request was received by the server. Note: This field uses camelCase (intentional) while most other fields use PascalCase.

Example:

"2024-01-15T10:30:00Z"

endTime
string<date-time>

UTC timestamp when this request completed. Note: This field uses camelCase (intentional) while most other fields use PascalCase.

Example:

"2024-01-15T10:30:01Z"