Administration
Subscriber records, workflow definitions, provider credentials, promotion between environments, and delivery status — the operator-facing surface.
Subscriber Management
Create Subscriber
POST /api/v1/notifications/manage/create-subscriber
{
"subscriberId": "user-1",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@example.com",
"phone": "+1234567890",
"locale": "en-US"
}
Get / Update / Delete Subscriber
Get and delete use empty request bodies (user derived from auth headers):
POST /api/v1/notifications/get-subscriber
POST /api/v1/notifications/delete-subscriber
Update subscriber profile data:
POST /api/v1/notifications/update-subscriber-data
{
"data": {
"email": "jane.updated@example.com",
"locale": "en-GB"
}
}
List Subscribers
POST /api/v1/notifications/manage/list-subscribers
{
"page": 1,
"pageSize": 50
}
Workflow Management
Workflows are managed as opaque Novu JSON objects. The API passes workflow definitions through without interpretation.
Create Workflow
POST /api/v1/notifications/manage/create-workflow
{
"workflow": {
"name": "Welcome Notification",
"description": "Sent when a user completes onboarding",
"__source": "editor",
"steps": [
{
"name": "In-App Step",
"type": "in_app",
"controlValues": {
"body": "Welcome to your health coaching journey!"
}
}
]
}
}
Response: Returns the created workflow object from Novu.
Update / Get / List / Delete Workflow
POST /api/v1/notifications/manage/update-workflow
POST /api/v1/notifications/manage/get-workflow
POST /api/v1/notifications/manage/list-workflows
POST /api/v1/notifications/manage/delete-workflow
All return opaque Novu workflow JSON.
Provider Configuration
Configure external delivery providers (FCM, APNS, SendGrid, etc.).
POST /api/v1/notifications/manage/configure-provider
{
"provider": "PROVIDER_TYPE_FCM",
"credentials": {
"serviceAccount": "{...}"
},
"active": true
}
configure-provider uses upsert semantics: if an active integration already exists for the specified provider type, it updates the existing integration in place (preserving its ID and subscriber linkages). If no active integration exists, a new one is created.
This prevents duplicate integrations and ensures existing device registrations continue to work after credential updates. If multiple active integrations exist for the same provider type, the call returns 409 Conflict — resolve the duplicates manually via the Novu dashboard.
POST /api/v1/notifications/manage/get-providers
Activity & Delivery Status
Get Delivery Status
Returns the raw Novu activity data for a notification.
POST /api/v1/notifications/manage/get-delivery-status
{
"transactionId": "txn_abc123"
}
Response: Returns {"activity": {...}} with raw Novu data.
Get Notification Activity
Query delivery history with channel and time filtering.
POST /api/v1/notifications/manage/get-notification-activity
{
"page": 1,
"pageSize": 50,
"channels": ["in_app", "push"],
"from": "2026-03-01T00:00:00Z",
"to": "2026-03-23T23:59:59Z"
}
Response: Returns {"entries": [...], "hasMore": true} with raw Novu activity entries.