Stream unread notifications count
Opens a Server-Sent Events stream of the account’s unread notification count. Emits the current count immediately, then each change as notifications arrive or are marked read, until the client disconnects. Each event’s data is an UnreadCountEvent (see the response schema). Authenticate with a Bearer token via a fetch-based client; the native EventSource cannot send an Authorization header.
curl --request GET \
--url https://api.example.com/notifications/unread/eventsimport requests
url = "https://api.example.com/notifications/unread/events"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/notifications/unread/events', 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.example.com/notifications/unread/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/notifications/unread/events"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/notifications/unread/events")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/notifications/unread/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"unreadCount": 123
}{
"message": "<string>",
"name": "<string>"
}Response
Server-sent event stream; each event's data is the payload below.
An account's current unread-notification count, broadcast on the account's core-NATS unread subject.
Fan-out to any watching SSE connections so a badge updates live; the stored rows in Postgres remain the source of truth, so a missed broadcast is recoverable by re-reading the count.
The account's current number of unread notifications.
curl --request GET \
--url https://api.example.com/notifications/unread/eventsimport requests
url = "https://api.example.com/notifications/unread/events"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/notifications/unread/events', 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.example.com/notifications/unread/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/notifications/unread/events"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/notifications/unread/events")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/notifications/unread/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"unreadCount": 123
}{
"message": "<string>",
"name": "<string>"
}