- API Overview
- API Rate Limiting
Events
Subscribers
- GETGet subscribers
- POSTCreate subscriber
- POSTBulk create subscribers
- GETGet subscriber
- PUTUpdate subscriber
- DELDelete subscriber
- PUTUpdate subscriber credentials
- DELDelete subscriber credentials by providerId
- PATCHUpdate subscriber online status
- GETGet subscriber preferences
- GETGet subscriber preferences by level
- PATCHUpdate subscriber preference
- PATCHUpdate subscriber global preferences
- GETGet in-app notifications feed of subscriber.
- GETGet unseen in-app notifications count
- POSTMarks a message as read/unread, seen/unseen.
- POSTMarks all messages as read/unread, seen/unseen.
- POSTMark message action as seen
- GETHandle providers oauth redirect
- GETHandle chat oauth
- GET
Topics
Notification
Workflows
Workflow Overrides
Workflow groups
Integrations
Layouts
Environments
Changes
Execution Details
Feeds
Tenants
Organizations
Messages
Mark message action as seen
API key authentication. Allowed headers-- "Authorization: ApiKey <api_key>".
Message action status
Message action payload
curl --request POST \
--url https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"status": "pending",
"payload": {}
}'
{
"data": {
"_id": "<string>",
"_templateId": "<string>",
"_environmentId": "<string>",
"_messageTemplateId": "<string>",
"_organizationId": "<string>",
"_notificationId": "<string>",
"_subscriberId": "<string>",
"subscriber": {
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"subscriberId": "<string>",
"channels": [
{
"providerId": "slack",
"integrationIdentifier": "<string>",
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"_integrationId": "<string>"
}
],
"topics": [
"<string>"
],
"isOnline": true,
"lastOnlineAt": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"__v": 123
},
"template": {
"_id": "<string>",
"name": "<string>",
"description": "<string>",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": true,
"in_app": true,
"chat": true,
"push": true
},
"critical": true,
"tags": [
"<string>"
],
"steps": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "<string>",
"value": "<string>",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 123,
"unit": "seconds",
"digestKey": "<string>",
"type": "regular",
"backoff": true,
"backoffAmount": 123,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {},
"variants": {
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "<string>",
"value": "<string>",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 123,
"unit": "seconds",
"digestKey": "<string>",
"type": "regular",
"backoff": true,
"backoffAmount": 123,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {}
}
}
],
"_organizationId": "<string>",
"_creatorId": "<string>",
"_environmentId": "<string>",
"triggers": [
{
"type": "event",
"identifier": "<string>",
"variables": [
{
"name": "<string>"
}
],
"subscriberVariables": [
{
"name": "<string>"
}
]
}
],
"_notificationGroupId": "<string>",
"_parentId": "<string>",
"deleted": true,
"deletedAt": "<string>",
"deletedBy": "<string>",
"notificationGroup": {
"_id": "<string>",
"name": "<string>",
"_environmentId": "<string>",
"_organizationId": "<string>",
"_parentId": "<string>"
},
"data": {},
"workflowIntegrationStatus": {}
},
"templateIdentifier": "<string>",
"createdAt": "<string>",
"lastSeenDate": "<string>",
"lastReadDate": "<string>",
"content": {
"type": "button",
"content": "<string>",
"url": "<string>",
"styles": {
"textAlign": "center"
}
},
"transactionId": "<string>",
"subject": "<string>",
"channel": "in_app",
"read": true,
"seen": true,
"email": "<string>",
"phone": "<string>",
"directWebhookUrl": "<string>",
"providerId": "<string>",
"deviceTokens": [
"<string>"
],
"title": "<string>",
"cta": {
"type": "redirect",
"data": {
"url": "<string>"
},
"action": {
"status": "pending",
"buttons": [
{
"type": "primary",
"content": "<string>",
"resultContent": "<string>"
}
],
"result": {
"payload": {},
"type": "primary"
}
}
},
"_feedId": {},
"status": "sent",
"errorId": "<string>",
"errorText": "<string>",
"payload": {},
"overrides": {}
}
}
Enter your API key in the Authorization
field like the example shown below:
E.g ApiKey 18d2e625f05d80e
Authorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <api_key>".
Path Parameters
Body
Message action status
pending
, done
Message action payload
Response
The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See subscriberId
for that
The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems
Channels settings for subscriber
The provider identifier for the credentials
slack
, discord
, msteams
, mattermost
, ryver
, zulip
, grafana-on-call
, getstream
, rocket-chat
, whatsapp-business
, fcm
, apns
, expo
, one-signal
, pushpad
, push-webhook
, pusher-beams
The integration identifier
Credentials payload for the specified provider
Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider.
Channel specification for Mattermost chat notifications
Contains an array of the subscriber device tokens for a given provider. Used on Push integrations
alert_uid for grafana on-call webhook payload
title to be used with grafana on call webhook
image_url property fo grafana on call webhook
state property fo grafana on call webhook
link_to_upstream_details property fo grafana on call webhook
Id of the integration that is used for this channel
Topics that subscriber belongs to
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
AND
, OR
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
subscriber
, payload
seconds
, minutes
, hours
, days
, weeks
, months
regular
, backoff
seconds
, minutes
, hours
, days
, weeks
, months
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
AND
, OR
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
subscriber
, payload
seconds
, minutes
, hours
, days
, weeks
, months
regular
, backoff
seconds
, minutes
, hours
, days
, weeks
, months
event
button
, text
center
, left
, right
in_app
, email
, sms
, chat
, push
redirect
pending
, done
primary
, secondary
primary
, secondary
sent
, error
, warning
The payload that was used to send the notification trigger
Provider specific overrides used when triggering the notification
Was this page helpful?
curl --request POST \
--url https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"status": "pending",
"payload": {}
}'
{
"data": {
"_id": "<string>",
"_templateId": "<string>",
"_environmentId": "<string>",
"_messageTemplateId": "<string>",
"_organizationId": "<string>",
"_notificationId": "<string>",
"_subscriberId": "<string>",
"subscriber": {
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"subscriberId": "<string>",
"channels": [
{
"providerId": "slack",
"integrationIdentifier": "<string>",
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"_integrationId": "<string>"
}
],
"topics": [
"<string>"
],
"isOnline": true,
"lastOnlineAt": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"__v": 123
},
"template": {
"_id": "<string>",
"name": "<string>",
"description": "<string>",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": true,
"in_app": true,
"chat": true,
"push": true
},
"critical": true,
"tags": [
"<string>"
],
"steps": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "<string>",
"value": "<string>",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 123,
"unit": "seconds",
"digestKey": "<string>",
"type": "regular",
"backoff": true,
"backoffAmount": 123,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {},
"variants": {
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "<string>",
"value": "<string>",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 123,
"unit": "seconds",
"digestKey": "<string>",
"type": "regular",
"backoff": true,
"backoffAmount": 123,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {}
}
}
],
"_organizationId": "<string>",
"_creatorId": "<string>",
"_environmentId": "<string>",
"triggers": [
{
"type": "event",
"identifier": "<string>",
"variables": [
{
"name": "<string>"
}
],
"subscriberVariables": [
{
"name": "<string>"
}
]
}
],
"_notificationGroupId": "<string>",
"_parentId": "<string>",
"deleted": true,
"deletedAt": "<string>",
"deletedBy": "<string>",
"notificationGroup": {
"_id": "<string>",
"name": "<string>",
"_environmentId": "<string>",
"_organizationId": "<string>",
"_parentId": "<string>"
},
"data": {},
"workflowIntegrationStatus": {}
},
"templateIdentifier": "<string>",
"createdAt": "<string>",
"lastSeenDate": "<string>",
"lastReadDate": "<string>",
"content": {
"type": "button",
"content": "<string>",
"url": "<string>",
"styles": {
"textAlign": "center"
}
},
"transactionId": "<string>",
"subject": "<string>",
"channel": "in_app",
"read": true,
"seen": true,
"email": "<string>",
"phone": "<string>",
"directWebhookUrl": "<string>",
"providerId": "<string>",
"deviceTokens": [
"<string>"
],
"title": "<string>",
"cta": {
"type": "redirect",
"data": {
"url": "<string>"
},
"action": {
"status": "pending",
"buttons": [
{
"type": "primary",
"content": "<string>",
"resultContent": "<string>"
}
],
"result": {
"payload": {},
"type": "primary"
}
}
},
"_feedId": {},
"status": "sent",
"errorId": "<string>",
"errorText": "<string>",
"payload": {},
"overrides": {}
}
}