curl --request PUT \
--url https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status', 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/alerts/{id}/{date}/update-read-status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
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/alerts/{id}/{date}/update-read-status"
req, _ := http.NewRequest("PUT", 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.put("https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}Update alert read status
Marks a single alert record as read or unread.
curl --request PUT \
--url https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status', 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/alerts/{id}/{date}/update-read-status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
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/alerts/{id}/{date}/update-read-status"
req, _ := http.NewRequest("PUT", 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.put("https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telemax.com.au/v2/api/alerts/{id}/{date}/update-read-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}Overview
Sets the read/unread state of one alert record, identified by its alert definition ID and its exact trigger time. The alert definition must belong to one of the token’s companies (its own company or a direct sub-company that is not cancelled).isRead. V2 applies isRead, but defaults to unread when it is omitted, and returns 200 even when no record matched.Endpoint
PUT /v2/api/alerts/{id}/{date}/update-read-status
Path parameters
id in Alert records.utcTime (a trailing Z is optional). Matched exactly, to the fraction of a second.Query parameters
true marks the record read, false marks it unread. Optional: omitting it marks the record unread.- records stored with fractional seconds (a small share), because
utcTimeis served without them; - records written before the alert’s type was edited.
Response
200 OK — empty body. Also returned when no record matched{id} and {date}, so a 200 does not confirm that anything changed. The read flag is shared with the Telemax Dashboard.
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 | Alert definition not found, or not in your companies. A missing record returns 200, not 404. |
curl -X PUT "https://api.telemax.com.au/v2/api/alerts/101/2026-04-27T14:30:00/update-read-status?isRead=true" \
-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
Alert definition ID: the record's id in Alert records.
The record's trigger time in UTC (its utcTime), matched exactly to the fraction of a second. utcTime is served without fractional seconds, so a record stored with them cannot be addressed from it.
Query Parameters
true marks the record read, false unread. Optional: omitting it marks the record unread.
Response
200 OK — Empty body. Also returned when no record matched, so it does not confirm a change.
Was this page helpful?