Alert configurations (V2)
curl --request GET \
--url https://api.telemax.com.au/v2/api/companies/{id}/alerts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/v2/api/companies/{id}/alerts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/v2/api/companies/{id}/alerts', 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/companies/{id}/alerts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v2/api/companies/{id}/alerts"
req, _ := http.NewRequest("GET", 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.get("https://api.telemax.com.au/v2/api/companies/{id}/alerts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/companies/{id}/alerts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"alertId": 3631,
"alertType": "Geofence",
"companyId": 997,
"alertName": "Depot geofence",
"alertDescription": "Entry to or exit from the depot",
"isAllFleet": false,
"isAllTags": false,
"units": [
{
"vehicleId": 22259,
"name": "Fleet Vehicle 01",
"imei": "353148090765439",
"vin": "1HGBH41J4MN100001"
}
],
"tags": []
}
],
"totalResults": 9,
"lastResultIndex": 2,
"currentPage": 1,
"numberOfPages": 5
}Companies & fleet
Alert configurations
Paginated list of alert definitions for the company and its direct sub-companies.
GET
/
v2
/
api
/
companies
/
{id}
/
alerts
Alert configurations (V2)
curl --request GET \
--url https://api.telemax.com.au/v2/api/companies/{id}/alerts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/v2/api/companies/{id}/alerts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/v2/api/companies/{id}/alerts', 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/companies/{id}/alerts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v2/api/companies/{id}/alerts"
req, _ := http.NewRequest("GET", 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.get("https://api.telemax.com.au/v2/api/companies/{id}/alerts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/companies/{id}/alerts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"alertId": 3631,
"alertType": "Geofence",
"companyId": 997,
"alertName": "Depot geofence",
"alertDescription": "Entry to or exit from the depot",
"isAllFleet": false,
"isAllTags": false,
"units": [
{
"vehicleId": 22259,
"name": "Fleet Vehicle 01",
"imei": "353148090765439",
"vin": "1HGBH41J4MN100001"
}
],
"tags": []
}
],
"totalResults": 9,
"lastResultIndex": 2,
"currentPage": 1,
"numberOfPages": 5
}Overview
Returns alert definitions (configurations, not triggered events) for{id} and its direct sub-companies that are not cancelled. Unlike Alert records and Mark all alerts read, the scope here follows {id}. {id} must be your token’s company or one of its direct, non-cancelled sub-companies, otherwise the call returns 404. Pass a direct sub-company to get its sub-companies’ definitions; a deeper sub-company returns 404, even though List companies lists it. Deleted definitions and reminders are not returned. Paused definitions are returned too, and no field marks them as paused. Results are ordered by alertId. Each item has the alert type’s display name, the alert’s name and description, and the vehicles and tags saved on it.
This is a new V2-only endpoint with no V1 equivalent.
Rate limit: 4 req/s · 20/min · 600/hr · 14,400/day
Endpoint
GET /v2/api/companies/{id}/alerts
Path parameters
integer
required
Company ID.
Query parameters
integer
default:"1"
Page number (1-based).
integer
default:"50"
Records per page, 1–100.
Response
200 OK —PagedListResult<AlertConfigDto>
| Field | Type | Description |
|---|---|---|
| alertId | integer | Alert definition ID — use this when linking to webhooks |
| alertType | string | Alert type display name, one of Engine Fault, Fatigue, Geofence, Geofence Speed, Idle, Ignition, Low Battery, Exceed Maximum Speed, Mileage, Above Speed Limit, Device Disconnected, Device Reconnected, Doors Unlocked, Tire Pressure, Charging, Exceed RPM, Exceed Engine Temperature, Road Surface, Driving after dark. Alert records gives the same type as an integer. |
| companyId | integer | Company the alert belongs to |
| alertName | string | Alert name (latest version), or "--" |
| alertDescription | string | Alert description (latest version). An empty string when none was entered; "--" only if the alert has no saved version. |
| isAllFleet | boolean | true if the alert covers every vehicle mapped to its company, whatever units lists |
| isAllTags | boolean | The stored “All tags” flag. It is set when “All tags” is ticked in the Dashboard, and can stay true after tags are later removed from tags. |
| units | array | Vehicles linked to the alert: see the note below |
| tags | string[] | The tag list stored on the alert: see the note below |
units items:
| Field | Type | Description |
|---|---|---|
| vehicleId | integer | null | Public vehicle ID (deviceId); null when the vehicle has none |
| name | string | Vehicle display name |
| imei | string | null | Device IMEI |
| vin | string | null | Vehicle VIN |
units and tags are saved lists, not the monitored set. units lists the vehicles linked to the alert, and can include deleted vehicles. When isAllFleet is true the alert covers every vehicle of the company, whatever units lists; units then usually holds the vehicles selected when the alert was last saved, and can be out of date. tags is the tag list saved on the alert; when “All tags” is selected, the Dashboard saves the company’s tags as they were at that moment. On production, tags select vehicles only for Driving after dark alerts, and only when isAllTags is true: the alert then also covers vehicles carrying any tag in tags. Other alert types, and Driving after dark alerts with isAllTags false, select vehicles through isAllFleet and units only.Example response
{
"items": [
{
"alertId": 101,
"alertType": "Geofence",
"companyId": 12,
"alertName": "Depot geofence",
"alertDescription": "Entry to or exit from the depot",
"isAllFleet": false,
"isAllTags": false,
"units": [
{
"vehicleId": 88421,
"name": "Delivery Van 07",
"imei": "353148090123456",
"vin": "1HGBH41JXMN109186"
}
],
"tags": []
}
],
"currentPage": 1,
"numberOfPages": 1,
"totalResults": 1,
"lastResultIndex": 1
}
Error responses
| Status | Meaning |
|---|---|
| 401 | Missing, invalid or expired bearer token (INVALID_CREDENTIALS) |
| 403 | The API key lacks this endpoint’s permission (INVALID_SCOPE), or the company is suspended (CompanySuspended) — see 403 Forbidden |
| 404 | Company not found or not in caller’s accessible hierarchy |
| 500 | Invalid paging: page is less than 1, or pageSize is less than 1 or more than 100. This is not transient: fix the parameters rather than retrying. These checks run before the 403 INVALID_SCOPE and 404 checks. Other 500s are unexpected server errors. A page past the last one returns 200 with no items. |
curl "https://api.telemax.com.au/v2/api/companies/12/alerts?page=1&pageSize=50" \
-H "Authorization: Bearer <token>"
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.
Path Parameters
Query Parameters
Required range:
x >= 1Required range:
1 <= x <= 100Response
Successful response
Was this page helpful?