RequestRocketRequestRocketDocs
OrganisationsNotifications

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

MethodPathWhat it does
GET/api/clients/:clientId/notificationsList organisation notifications
GET/api/clients/:clientId/notifications/:notificationIdRead one
PUT/api/clients/:clientId/notifications/:notificationIdAcknowledge 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": "Unauthorized"
}
{
  "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

ParameterTypeRequiredDescription
typestring—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

AttributeTypeDescription
clientNotificationsarrayOrganisation notices and, unless filtered, alert digests.
clientNotifications[].pKeystringOrganisation id.
clientNotifications[].sKeystringNotification id. Alert digests use an alert: prefix.
clientNotifications[].titlestringShort title.
clientNotifications[].messagestringMarkdown body.
clientNotifications[].createdAtstringISO timestamp.
clientNotifications[].readbooleanWhether anyone has marked it read.
clientNotifications[].readAtstringISO timestamp of the first read, when set.
clientNotifications[].readByarray of stringUser ids that have read it, in order.
messagestringNotifications 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

ParameterTypeRequiredDescription
isReadboolean—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.

Next

On this page