Update Vehicle Odometer
curl --request POST \
--url https://api.telemax.com.au/api/ChangeOdometer \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/api/ChangeOdometer"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/api/ChangeOdometer', 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/api/ChangeOdometer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.telemax.com.au/api/ChangeOdometer"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/api/ChangeOdometer")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/api/ChangeOdometer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}{
"type": "AUTHENTICATION",
"code": "TOKEN_EXPIRED",
"description": "The access token has expired. Request a new token using /api/authentication/token/user or /api/authentication/token/api-key.",
"requestId": "req_7f3a2b1c",
"docUrl": "https://docs.telemax.com.au/errors#token-expired"
}{
"type": "AUTHORIZATION",
"code": "COMPANY_ACCESS_DENIED",
"description": "Your token does not grant access to company 99. Ensure you are using a token issued for this company.",
"requestId": "req_4a1d9e2f",
"docUrl": "https://docs.telemax.com.au/errors#company-access-denied"
}{
"type": "NOT_FOUND",
"code": "VEHICLE_NOT_FOUND",
"description": "Vehicle with ID 9999 was not found.",
"requestId": "req_2b8c1a5d",
"docUrl": "https://docs.telemax.com.au/errors#not-found"
}{
"type": "RATE_LIMIT",
"code": "RATE_LIMIT_EXCEEDED",
"description": "Too many requests. Wait 30 seconds before retrying.",
"requestId": "req_6d2f8b4a",
"docUrl": "https://docs.telemax.com.au/errors#rate-limit"
}{
"type": "SERVER_ERROR",
"code": "INTERNAL_ERROR",
"description": "An unexpected error occurred. Please try again or contact support with the requestId.",
"requestId": "req_1e5a3c7d",
"docUrl": "https://docs.telemax.com.au/errors#server-error"
}Vehicle commands
Change odometer
Update odometer for a vehicle (legacy id).
POST
/
api
/
ChangeOdometer
Update Vehicle Odometer
curl --request POST \
--url https://api.telemax.com.au/api/ChangeOdometer \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/api/ChangeOdometer"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/api/ChangeOdometer', 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/api/ChangeOdometer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.telemax.com.au/api/ChangeOdometer"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/api/ChangeOdometer")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/api/ChangeOdometer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}{
"type": "AUTHENTICATION",
"code": "TOKEN_EXPIRED",
"description": "The access token has expired. Request a new token using /api/authentication/token/user or /api/authentication/token/api-key.",
"requestId": "req_7f3a2b1c",
"docUrl": "https://docs.telemax.com.au/errors#token-expired"
}{
"type": "AUTHORIZATION",
"code": "COMPANY_ACCESS_DENIED",
"description": "Your token does not grant access to company 99. Ensure you are using a token issued for this company.",
"requestId": "req_4a1d9e2f",
"docUrl": "https://docs.telemax.com.au/errors#company-access-denied"
}{
"type": "NOT_FOUND",
"code": "VEHICLE_NOT_FOUND",
"description": "Vehicle with ID 9999 was not found.",
"requestId": "req_2b8c1a5d",
"docUrl": "https://docs.telemax.com.au/errors#not-found"
}{
"type": "RATE_LIMIT",
"code": "RATE_LIMIT_EXCEEDED",
"description": "Too many requests. Wait 30 seconds before retrying.",
"requestId": "req_6d2f8b4a",
"docUrl": "https://docs.telemax.com.au/errors#rate-limit"
}{
"type": "SERVER_ERROR",
"code": "INTERNAL_ERROR",
"description": "An unexpected error occurred. Please try again or contact support with the requestId.",
"requestId": "req_1e5a3c7d",
"docUrl": "https://docs.telemax.com.au/errors#server-error"
}Overview
Updates odometer for a vehicle (legacy id). Rejects zero odometer.A V2 version of this endpoint is available: Update odometer. New integrations should prefer V2.
Endpoint
POST /api/ChangeOdometer
Authentication
Required. Bearer token. Requires vehicle access and privilegeChangeOdometer.
Query parameters
integer
required
Legacy vehicle id.
number (float)
required
New odometer reading (must not be
0).Response
200 OK with empty body on success.Error responses
| Status | Meaning |
|---|---|
| 404 | Vehicle not found |
| 401 | Not allowed or invalid user id claim |
| 400 | odometer == 0 |
cURL
curl -X POST "https://api.telemax.com.au/api/ChangeOdometer?id=88421&odometer=12847.5" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Authorizations
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
Standard and must keep as it is.
Bearer your_token
Response
Successful response
The response is of type object.
Was this page helpful?