In-App Notifications API
The In-App Notifications API provides programmatic access to the same notifications that appear in the bell panel. Use these endpoints to integrate alerts into your own tooling, build custom dashboards, or automate marking notifications as read from scripts.
Complete API Reference
For the full interactive API documentation with all request/response schemas, visit the API docs.
All endpoints use the base URL of your Qualytics deployment (e.g., https://your-instance.qualytics.io/api).
Authentication
All endpoints require a Qualytics Personal API Token (PAT) and a workspace role — Member, Manager, or Admin. Every response is scoped to the token's owner — you cannot retrieve another user's notifications.
Include the token in the Authorization header:
For instructions on generating a token, see Tokens.
List Notifications (Paginated)
Returns your notifications sorted by creation date, with the most recent first. Supports filtering by flow trigger type, by tag, and including notifications you've already marked as read.
Endpoint: GET /api/user-notifications
Permission: Member or above
Example request and response
Request:
curl -X GET "https://your-instance.qualytics.io/api/user-notifications?include_acknowledged=false&sort_created=desc" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN"
Response (200 OK):
{
"items": [
{
"id": 42,
"created": "2026-05-13T12:00:00Z",
"acknowledged": false,
"notification": {
"id": 100,
"created": "2026-05-13T12:00:00Z",
"notification_type": "flow",
"message": "A Scan operation on Healthcare Analytics has completed.",
"target_uri": "/datastores/101/activity?operation_id=50001",
"target_url": "https://your-instance.qualytics.io/datastores/101/activity?operation_id=50001",
"action_execution": {
"id": 200,
"flow_execution": {
"id": 300,
"flow": { "id": 7, "name": "Healthcare Nightly Quality Gate" }
}
}
}
}
],
"total": 1,
"page": 1,
"size": 12,
"pages": 1
}
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
include_acknowledged |
boolean | No | Defaults to false. Set to true to include notifications you've already marked as read. |
trigger_type |
array | No | Filter by flow trigger type. Supported values: Anomaly, PartitionScan, Operation, Manual. Only applies to flow-based notifications. |
tag |
array | No | Filter by tag name(s). |
sort_created |
string | No | Sort order by creation date — desc (default) or asc. |
List Notifications (Non-Paginated)
Returns the same data as the paginated endpoint but as a flat array — useful for small result sets where pagination is unnecessary.
Endpoint: GET /api/user-notifications/listing
Permission: Member or above
Example request and response
Request:
curl -X GET "https://your-instance.qualytics.io/api/user-notifications/listing?include_acknowledged=false" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN"
Response (200 OK):
[
{
"id": 42,
"created": "2026-05-13T12:00:00Z",
"acknowledged": false,
"notification": {
"id": 100,
"created": "2026-05-13T12:00:00Z",
"notification_type": "flow",
"message": "A Scan operation on Healthcare Analytics has completed.",
"target_uri": "/datastores/101/activity?operation_id=50001",
"target_url": "https://your-instance.qualytics.io/datastores/101/activity?operation_id=50001",
"action_execution": {
"id": 200,
"flow_execution": {
"id": 300,
"flow": { "id": 7, "name": "Healthcare Nightly Quality Gate" }
}
}
}
}
]
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
include_acknowledged |
boolean | No | Defaults to false. Set to true to include notifications you've already marked as read. |
Get Single Notification
Retrieve the details of one notification by its ID.
Endpoint: GET /api/user-notifications/{id}
Permission: Member or above
Example request and response
Request:
curl -X GET "https://your-instance.qualytics.io/api/user-notifications/42" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN"
Response (200 OK):
{
"id": 42,
"created": "2026-05-13T12:00:00Z",
"acknowledged": false,
"notification": {
"id": 100,
"created": "2026-05-13T12:00:00Z",
"notification_type": "flow",
"message": "A Scan operation on Healthcare Analytics has completed.",
"target_uri": "/datastores/101/activity?operation_id=50001",
"target_url": "https://your-instance.qualytics.io/datastores/101/activity?operation_id=50001",
"action_execution": {
"id": 200,
"flow_execution": {
"id": 300,
"flow": { "id": 7, "name": "Healthcare Nightly Quality Gate" }
}
}
}
}
Path parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes | The unique ID of the notification. |
Responses:
200 OK— Notification returned.404 Not Found— No notification with that ID exists for the authenticated user.
Bulk Mark as Read
Mark multiple notifications as read in a single request. Supply specific IDs to mark a subset as read, or pass an empty array [] to mark every unread notification as read.
Endpoint: PATCH /api/user-notifications/acknowledge
Permission: Member or above
Example request and response
Request — mark specific notifications as read:
curl -X PATCH "https://your-instance.qualytics.io/api/user-notifications/acknowledge" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN" \
-H "Content-Type: application/json" \
-d '[{"id": 42}, {"id": 43}]'
Request — mark all unread notifications as read:
curl -X PATCH "https://your-instance.qualytics.io/api/user-notifications/acknowledge" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN" \
-H "Content-Type: application/json" \
-d '[]'
Response (200 OK):
Request body: A JSON array of objects with the id field, or an empty array to mark all as read.
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes (per object) | The ID of a notification to mark as read. |
Mark Single Notification as Read
Mark exactly one notification as read.
Endpoint: PUT /api/user-notifications/acknowledge/{id}
Permission: Member or above
Example request and response
Request:
curl -X PUT "https://your-instance.qualytics.io/api/user-notifications/acknowledge/42" \
-H "Authorization: Bearer YOUR_QUALYTICS_TOKEN"
Response (200 OK):
Path parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes | The unique ID of the notification to mark as read. |
Responses:
200 OK— Notification marked as read.404 Not Found— No notification with that ID exists for the authenticated user.