Mark notifications as read for a user
curl --request POST \
--url https://api.extole.io/v6/notifications/{userId}/read \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"last_read_event_time": "2025-10-24T02:00:00-07:00"
}
'import requests
url = "https://api.extole.io/v6/notifications/{userId}/read"
payload = { "last_read_event_time": "2025-10-24T02:00:00-07:00" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({last_read_event_time: '2025-10-24T02:00:00-07:00'})
};
fetch('https://api.extole.io/v6/notifications/{userId}/read', 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.extole.io/v6/notifications/{userId}/read",
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([
'last_read_event_time' => '2025-10-24T02:00:00-07:00'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.extole.io/v6/notifications/{userId}/read"
payload := strings.NewReader("{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v6/notifications/{userId}/read")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/notifications/{userId}/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}"
response = http.request(request)
puts response.read_body{
"last_read_event_time": "2025-10-24T02:00:00-07:00"
}User Notifications
Mark notifications as read for a user
Advances the read cursor to the supplied timestamp for the Extole portal user identified by userId, marking all notifications created at or before that time as read. Returns the updated cursor state.
POST
https://api.extole.io
/
v6
/
notifications
/
{userId}
/
read
Mark notifications as read for a user
curl --request POST \
--url https://api.extole.io/v6/notifications/{userId}/read \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"last_read_event_time": "2025-10-24T02:00:00-07:00"
}
'import requests
url = "https://api.extole.io/v6/notifications/{userId}/read"
payload = { "last_read_event_time": "2025-10-24T02:00:00-07:00" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({last_read_event_time: '2025-10-24T02:00:00-07:00'})
};
fetch('https://api.extole.io/v6/notifications/{userId}/read', 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.extole.io/v6/notifications/{userId}/read",
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([
'last_read_event_time' => '2025-10-24T02:00:00-07:00'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.extole.io/v6/notifications/{userId}/read"
payload := strings.NewReader("{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v6/notifications/{userId}/read")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/notifications/{userId}/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"last_read_event_time\": \"2025-10-24T02:00:00-07:00\"\n}"
response = http.request(request)
puts response.read_body{
"last_read_event_time": "2025-10-24T02:00:00-07:00"
}Authorizations
HEADERQUERYCOOKIE
Path Parameters
Body
application/json
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
Pattern:
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$Example:
"2025-10-24T02:00:00-07:00"
Response
Updated notification read cursor.
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
Pattern:
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$Example:
"2025-10-24T02:00:00-07:00"
