Organisation notifications API
List and acknowledge notifications for an organisation.
These routes are the organisation's notifications. User notifications are under Personal. System notifications are under Developers.
Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /api/clients/:clientId/notifications | List organisation notifications |
| GET | /api/clients/:clientId/notifications/:notificationId | Read one |
| PUT | /api/clients/:clientId/notifications/:notificationId | Acknowledge one |
List organisation notifications
GET /api/clients/:clientId/notifications lists notifications for the organisation.
Request
curl -X GET "https://api.requestrocket.com/api/clients/:clientId/notifications" \
-H "Authorization: u-your-token"import axios from "axios";
const response = await axios.request({
method: "GET",
url: "https://api.requestrocket.com/api/clients/:clientId/notifications",
headers: {
"Authorization": "u-your-token",
}
});
console.log(response.status, response.data);import requests
response = requests.request(
"GET",
"https://api.requestrocket.com/api/clients/:clientId/notifications",
headers={
"Authorization": "u-your-token",
}
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
var payload io.Reader
req, _ := http.NewRequest("GET", "https://api.requestrocket.com/api/clients/:clientId/notifications", payload)
req.Header.Set("Authorization", "u-your-token")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/clients/:clientId/notifications"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.header("Authorization", "u-your-token")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}Responses
{
"clientNotifications": [
{
"pKey": "b3a1c7d2-5e44-4f0a-9c1e-7d2f8a6b1c90",
"sKey": "b8e0c125-4a67-4d93-9f2c-1a5e7b3d0f86",
"title": "Plan renewed",
"message": "Your plan renewed.",
"createdAt": "2026-11-02T07:30:00.000Z",
"read": false
}
],
"message": "Notifications retrieved successfully"
}{
"Message": "User is not authorized to access this resource with an explicit deny in an identity-based policy"
}{
"message": "method / endpoint not supported"
}Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | — | client returns organisation notices only. alert returns alert digests only. Omit it to return both, newest createdAt first. |
There is no limit, cursor, or page parameter. The call returns the full list. GET /api/clients/:clientId/notifications/:notificationId returns that one item in the same clientNotifications array.
Returns clientNotifications and message.
Response
| Attribute | Type | Description |
|---|---|---|
clientNotifications | array | Organisation notices and, unless filtered, alert digests. |
clientNotifications[].pKey | string | Organisation id. |
clientNotifications[].sKey | string | Notification id. Alert digests use an alert: prefix. |
clientNotifications[].title | string | Short title. |
clientNotifications[].message | string | Markdown body. |
clientNotifications[].createdAt | string | ISO timestamp. |
clientNotifications[].read | boolean | Whether anyone has marked it read. |
clientNotifications[].readAt | string | ISO timestamp of the first read, when set. |
clientNotifications[].readBy | array of string | User ids that have read it, in order. |
message | string | Notifications retrieved successfully. |
Alert digests also include proxyId, proxyName, cadence, windowSKey, and sources.
New notifications are written with a default DynamoDB expiry 90 days after dispatch unless the queued record supplies another TTL. Expiry removal is handled by DynamoDB and is not an exact deletion schedule.
Acknowledge a notification
PUT /api/clients/:clientId/notifications/:notificationId records whether the caller has read that notification.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
isRead | boolean | — | true adds the caller to readBy and sets read to true. false removes the caller from readBy and sets read to false. Omit it to leave read and readBy unchanged. readAt is still updated. |
Returns the updated notification and message (Notification acknowledged successfully). The notification attributes match the list.
Shared status codes, the 5.5 MB cap, and plan rate limits are on Platform limits.