List vehicles (V2)
curl --request POST \
--url https://api.telemax.com.au/v2/api/vehicles/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"vehicleIds": [
88421,
88422
]
}
'import requests
url = "https://api.telemax.com.au/v2/api/vehicles/list"
payload = { "vehicleIds": [88421, 88422] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({vehicleIds: [88421, 88422]})
};
fetch('https://api.telemax.com.au/v2/api/vehicles/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.telemax.com.au/v2/api/vehicles/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vehicleIds' => [
88421,
88422
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.telemax.com.au/v2/api/vehicles/list"
payload := strings.NewReader("{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telemax.com.au/v2/api/vehicles/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/vehicles/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"utcTime": "2026-04-28T06:14:19",
"userTime": "2026-04-28T16:14:19",
"userTimeFormatted": "28/04/2026 04:14:19 PM",
"lat": -33.8712,
"lng": 151.2065,
"speed": 0,
"course": 142,
"ignition": false,
"odometer": 45321.2,
"voltage": 12.6,
"fatigue": "00:26:11.5268750",
"engineHours": 0,
"satelliteCoverage": "Excellent",
"satelliteCoverageRawValue": 12,
"networkCoverage": "Fair",
"networkCoverageRawValue": 18,
"deviceId": 88421,
"ignitionTime": 1590,
"deviceName": "Delivery Van 07",
"imei": "353148090123456",
"vin": "1HGBH41JXMN109186",
"startMovingTime": "2026-04-28T05:22:31",
"startMovingTimeUser": "2026-04-28T15:22:31",
"lastMovementTime": "2026-04-28T05:48:05",
"lastMovementTimeUser": "2026-04-28T15:48:05",
"lastMovementTimeUserFormatted": "28/04/2026 03:48:05 PM",
"drivingTime": 3108,
"fuelLevel": 64,
"fuelVolume": 51.2,
"batteryLevel": null,
"chargerPower": null,
"chargingEnergy": null,
"batteryRange": null,
"isDoorLocked": true,
"address": "14, George St, Haymarket, Sydney, NSW, AUS",
"engineEnabled": true,
"timeElapsed": 245.12,
"startedTime": "2026-04-28T06:14:22",
"endTime": "2026-04-28T06:14:22",
"isOnline": true
}
],
"totalResults": 1,
"lastResultIndex": 1,
"currentPage": 1,
"numberOfPages": 1
}
Vehicles
List vehicles
Returns last-known positions for a specific set of 1–50 vehicles.
POST
/
v2
/
api
/
vehicles
/
list
List vehicles (V2)
curl --request POST \
--url https://api.telemax.com.au/v2/api/vehicles/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"vehicleIds": [
88421,
88422
]
}
'import requests
url = "https://api.telemax.com.au/v2/api/vehicles/list"
payload = { "vehicleIds": [88421, 88422] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({vehicleIds: [88421, 88422]})
};
fetch('https://api.telemax.com.au/v2/api/vehicles/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.telemax.com.au/v2/api/vehicles/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vehicleIds' => [
88421,
88422
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.telemax.com.au/v2/api/vehicles/list"
payload := strings.NewReader("{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telemax.com.au/v2/api/vehicles/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/vehicles/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vehicleIds\": [\n 88421,\n 88422\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"utcTime": "2026-04-28T06:14:19",
"userTime": "2026-04-28T16:14:19",
"userTimeFormatted": "28/04/2026 04:14:19 PM",
"lat": -33.8712,
"lng": 151.2065,
"speed": 0,
"course": 142,
"ignition": false,
"odometer": 45321.2,
"voltage": 12.6,
"fatigue": "00:26:11.5268750",
"engineHours": 0,
"satelliteCoverage": "Excellent",
"satelliteCoverageRawValue": 12,
"networkCoverage": "Fair",
"networkCoverageRawValue": 18,
"deviceId": 88421,
"ignitionTime": 1590,
"deviceName": "Delivery Van 07",
"imei": "353148090123456",
"vin": "1HGBH41JXMN109186",
"startMovingTime": "2026-04-28T05:22:31",
"startMovingTimeUser": "2026-04-28T15:22:31",
"lastMovementTime": "2026-04-28T05:48:05",
"lastMovementTimeUser": "2026-04-28T15:48:05",
"lastMovementTimeUserFormatted": "28/04/2026 03:48:05 PM",
"drivingTime": 3108,
"fuelLevel": 64,
"fuelVolume": 51.2,
"batteryLevel": null,
"chargerPower": null,
"chargingEnergy": null,
"batteryRange": null,
"isDoorLocked": true,
"address": "14, George St, Haymarket, Sydney, NSW, AUS",
"engineEnabled": true,
"timeElapsed": 245.12,
"startedTime": "2026-04-28T06:14:22",
"endTime": "2026-04-28T06:14:22",
"isOnline": true
}
],
"totalResults": 1,
"lastResultIndex": 1,
"currentPage": 1,
"numberOfPages": 1
}
Overview
Returns last-known positions for a specific set of vehicles. The request body is required and must contain between 1 and 50deviceId values — this limit prevents the endpoint from being used to scrape the entire fleet.
Items come back in the vehicles’ internal order, not in the order of vehicleIds.
The V1 version of this endpoint is Device positions. V2 is paginated.
Rate limit: 10 req/s · 30/min · 6,000/hr · 144,000/day
Endpoint
POST /v2/api/vehicles/list
Query parameters
integer
default:"1"
Page number (1-based).
integer
default:"50"
Records per page.
Request body
{
"vehicleIds": [88421, 88422]
}
| Field | Type | Required | Description |
|---|---|---|---|
| vehicleIds | integer[] | Yes | Public vehicle IDs (deviceId values) to query. Must contain between 1 and 50 entries. Returns 422 if empty or omitted. |
Response
200 OK —PagedListResult<PositionDto>
Each item in items is a full PositionDto. See PositionDto fields for the field list; on this endpoint the rows marked “list, fleet, nearest” apply.
Error responses
| Status | Meaning |
|---|---|
| 401 | Missing, invalid or expired bearer token (INVALID_CREDENTIALS) |
| 403 | The company is suspended or otherwise not active, or a company above it is (CompanySuspended). Vehicle IDs that are unknown or not in your companies are left out of the 200 response |
| 415 | The request was sent with no Content-Type, or one that is not JSON (send application/json). The body is ASP.NET’s standard problem-details object, not the API’s usual error body. |
| 422 | vehicleIds is empty (including a body of {}) or has more than 50 entries; the body is empty; page is less than 1; or pageSize is less than 1 or more than 500 |
curl -X POST "https://api.telemax.com.au/v2/api/vehicles/list?page=1&pageSize=50" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"vehicleIds": [88421, 88422]}'
Authorizations
JWT Bearer token obtained from POST /v2/api/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 by the key's company and its action set; see Token scoping.
No refresh endpoint — re-authenticate with your API key when the token expires.
Body
application/json
List of public vehicle IDs (deviceId values) to query. Must contain between 1 and 50 entries. Returns 422 if empty or omitted.
Required array length:
1 - 50 elementsResponse
Successful response
Was this page helpful?