/api/public/v1/notificationsList notifications
What the platform has flagged for the calling person, their company, and the locations they reach — the dashboard’s notifications. `unread` is the one most readers want: what still needs handling, the same as `status=unhandled`. Each row says where it came from. `source.kind` is the part of the product that raised it (support, thread, task, order, purchasing, appointment, customer, hr, quality, legal, security, company), `source.link` is what opens it, and `source.recordId` is the record behind it where the raiser said. `audience` is who it was raised for — a person, the whole company, or one location.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Dev Tools → API, to an assistant or CLI sign-in when you approve or edit it under Dev Tools, and to a teammate under Employee → Permissions.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Maximum number of items to return (1-100).Default: 20 |
offset | number | Optional | Number of items to skip before starting to collect the result set.Default: 0 |
sortBy | string | Optional | Field to sort by. Allowed values vary by endpoint.Default: createdAt |
sortOrder | string asc desc | Optional | Sort direction.Default: desc |
search | string | Optional | Free-text search across the resource’s primary fields. |
createdAfter | string | Optional | ISO 8601 timestamp — only return items created after this time. |
createdBefore | string | Optional | ISO 8601 timestamp — only return items created before this time. |
updatedAfter | string | Optional | ISO 8601 timestamp — only return items updated after this time. |
unread | boolean | Optional | `true` for what nobody has handled yet; `false` for the rest. |
status | string unhandled handled all | Optional | Filter by handled state. |
category | string | Optional | Filter by category. |
type | string | Optional | Filter by notification type. |
curl -X GET "https://www.pxb.app/api/public/v1/notifications" \
-H "Authorization: Bearer your_access_token"{
"message": "Notifications retrieved successfully!",
"content": {
"notifications": [
{
"id": "ntf_1",
"referenceId": 1182,
"type": "SUPPORT_CASE_UPDATE",
"category": "SUPPORT",
"title": "Northwind Traders replied in Support",
"body": "Our invoices stopped syncing to QuickBooks this morning — anything on your side?",
"source": {
"kind": "support",
"recordId": "cnv_7f21",
"link": "/threads/cnv_7f21",
"roomId": null
},
"audience": {
"userId": null,
"companyId": "cmp_pxb",
"locationId": null
},
"unread": true,
"handledAt": null,
"handledByEmployeeId": null,
"metadata": {
"conversationId": "cnv_7f21"
},
"createdAt": "2026-10-09T14:12:00.000Z"
}
],
"pagination": {
"total": 42,
"limit": 20,
"offset": 0,
"hasMore": true
}
}
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.