Skip to main content

Notifications

List and acknowledge in-app notifications for the authenticated user. Used by the mobile client and any tooling that needs to surface async platform events (deploy completion, billing alerts, share invites, etc.).

All endpoints require authentication via X-API-Key header and the appropriate scope.


Notification Object​

{
"_id": "ntf_abc123",
"userId": "user_456",
"type": "success",
"icon": "CheckCircle",
"label": "Workflow deployed",
"message": "Your workflow 'invoice-extractor' finished deploying.",
"link": "/workflow-builder/wf_789",
"metadata": {
"workflowId": "wf_789"
},
"read": false,
"createdAt": "2026-05-16T09:30:00Z",
"createdBy": "system"
}
  • type is info, success, warning, error, newUser or system; icon is the icon shown with it.
  • label is the short title and message the full text.
  • link is the page in the Strongly UI the notification opens.
  • metadata carries any extra details the sender attached.
  • createdBy is the user who triggered the notification, or system.

GET /api/v1/me/notifications​

List notifications for the authenticated user.

Scope: notifications:read

Query Parameters

ParameterTypeRequiredDescription
unreadOnlystringNoSet to "true" to return only unread notifications
limitintegerNoMax results (default 50, max 200)
cursorstringNometa.nextCursor of the previous page; omit for the first page
sortstringNoSort field(s), -prefix for descending (default -createdAt)

Response 200 OK

{
"data": [ /* Notification objects */ ],
"meta": {
"total": 42,
"limit": 50,
"nextCursor": null,
"requestId": "req_abc123"
}
}

GET /api/v1/me/notifications/unread-count​

Get the count of unread notifications for the authenticated user.

Scope: notifications:read

Response 200 OK

{
"data": { "count": 7 },
"meta": { "requestId": "req_abc123" }
}

POST /api/v1/me/notifications/mark-all-read​

Mark all your unread notifications read.

Scope: notifications:write

Response 200 OK: { "count": 7 }, how many were marked read.


PATCH /api/v1/me/notifications/:id​

Mark one of your notifications read or unread.

Scope: notifications:write

Path Parameters

ParameterTypeRequiredDescription
idstringYesNotification ID

Request Body

FieldTypeRequiredDescription
readbooleanYesWhether it is read

Response 200 OK: the notification.

A notification that is not yours, or does not exist, is 404 not-found.


DELETE /api/v1/me/notifications/:id​

Delete one of your notifications.

Scope: notifications:write

Path Parameters

ParameterTypeRequiredDescription
idstringYesNotification ID

Response 204 No Content

Returns 400 validation-error for an invalid ID, and 404 not-found if the notification does not exist or belongs to another user.


POST /api/v1/me/push-devices​

Register a device's push notification token (for example the APNs device token the iOS app receives when the user allows notifications), so that device can receive push notifications for the authenticated user. Registering a token that is already registered replaces the earlier entry.

Scope: notifications:write

Request Body

{
"token": "a1b2c3d4e5f6...",
"platform": "ios"
}
FieldTypeRequiredDescription
tokenstringYesThe device's push token
platformstringNoDevice platform (default: ios)

Response 200 OK

{
"data": { "registered": true },
"meta": { "requestId": "req_abc123" }
}

Returns 400 validation-error if token is missing or blank.