- API Reference
- Discord Support
- 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 global preferences
- PATCHUpdate subscriber preference
- PATCHUpdate subscriber global preference
- GETGet in app notification feed for a particular subscriber
- GETGet the unseen in app notifications count for subscribers feed
- POSTMark a subscriber feed message as seen
- POSTMarks all the subscriber messages as read unread seen or unseen optionally you can pass feed id or array to mark messages of a particular feed
- POSTMark message action as seen
- GETHandle providers oauth redirect
- GETHandle chat oauth
- GETFilter topics
- POSTTopic creation
- POSTSubscribers addition
- GETCheck topic subscriber
- POSTSubscribers removal
- GETGet topic
- DELDelete topic
- PATCHRename a topic
- GETGet notifications
- GETGet notification statistics
- GETGet notification graph statistics
- GETGet notification
- GETGet workflows
- POSTCreate workflow
- GETGet workflow
- PUTUpdate workflow
- DELDelete workflow
- PUTUpdate workflow status
- POSTCreate workflow overrides
- GETGet workflow overrides
- GETGet workflow override
- GETGet workflow override by id
- PUTUpdate workflow override by id
- PUTUpdate workflow override
- DELDelete workflow override
- GETGet workflow groups
- POSTCreate workflow group
- GETGet workflow group
- DELDelete workflow group
- PATCHUpdate workflow group
- GETGet integrations
- POSTCreate integration
- GETGet active integrations
- GETGet webhook support status for provider
- PUTUpdate integration
- DELDelete integration
- POSTSet integration as primary
- GETFilter layouts
- POSTLayout creation
- GETGet layout
- DELDelete layout
- PATCHUpdate a layout
- POSTSet default layout
- GETGet execution details
Subscribers
Topics
Notification
Workflows
Workflow Overrides
Workflow groups
Integrations
Layouts
Execution Details
Messages
Get messages
GET
/
v1
/
messages
Authorization
string
*
Authorization
Required
string
channel
enum<string>
channel
enum<string>
subscriberId
string
subscriberId
string
transactionId
array
transactionId
array
page
number
page
number
limit
number
limit
number
import { Novu, ChannelTypeEnum } from '@novu/node';
const novu = new Novu('<NOVU_API_KEY>');
const params = {
page: 0, // optional
limit: 20, // optional
subscriberId: "subscriberId" //optional
channel: ChannelTypeEnum.EMAIL //optional
transactionIds : ["txnId1","txnId2"] //optional
}
await novu.messages.list(params);
{
hasMore: true,
data: [data],
pageSize: 0,
page: 0
}
Enter your API key in the Authorization
field like the example shown below:
E.g ApiKey 18d2e625f05d80e
Query Parameters
channel
enum<string>
Available options:
in_app
, email
, sms
, chat
, push
subscriberId
string
transactionId
string[]
page
number
default: 0limit
number
default: 10Response
200 - application/json
hasMore
boolean
requireddata
object[]
requireddata._id
string
data._environmentId
string
requireddata._organizationId
string
requireddata.transactionId
string
requireddata.createdAt
string
data.channels
enum<string>
Available options:
in_app
, email
, sms
, chat
, push
, digest
, trigger
, delay
, custom
data.subscriber
object
data.subscriber.firstName
string
data.subscriber._id
string
requireddata.subscriber.lastName
string
data.subscriber.email
string
data.subscriber.phone
string
data.template
object
data.template._id
string
data.template.name
string
requireddata.template.triggers
object[]
requireddata.template.triggers.type
enum<string>
requiredAvailable options:
event
data.template.triggers.identifier
string
requireddata.template.triggers.variables
object[]
requireddata.template.triggers.variables.name
string
requireddata.template.triggers.subscriberVariables
object[]
data.template.triggers.subscriberVariables.name
string
requireddata.jobs
object[]
data.jobs._id
string
requireddata.jobs.type
string
requireddata.jobs.digest
object
data.jobs.executionDetails
object[]
requireddata.jobs.executionDetails._id
string
requireddata.jobs.executionDetails._jobId
string
requireddata.jobs.executionDetails.status
enum<string>
requiredAvailable options:
Success
, Warning
, Failed
, Pending
, Queued
, ReadConfirmation
data.jobs.executionDetails.detail
string
requireddata.jobs.executionDetails.isRetry
boolean
requireddata.jobs.executionDetails.isTest
boolean
requireddata.jobs.executionDetails.providerId
object
requireddata.jobs.executionDetails.raw
string
data.jobs.executionDetails.source
enum<string>
requiredAvailable options:
Credentials
, Internal
, Payload
, Webhook
data.jobs.step
object
requireddata.jobs.step._id
string
requireddata.jobs.step.active
boolean
requireddata.jobs.step.filters
object
requireddata.jobs.step.filters.isNegated
boolean
requireddata.jobs.step.filters.type
enum<string>
requiredAvailable options:
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
data.jobs.step.filters.value
enum<string>
requiredAvailable options:
AND
, OR
data.jobs.step.filters.children
object[]
requireddata.jobs.step.filters.children.field
string
requireddata.jobs.step.filters.children.value
string
requireddata.jobs.step.filters.children.operator
enum<string>
requiredAvailable options:
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
data.jobs.step.filters.children.on
enum<string>
requiredAvailable options:
subscriber
, payload
data.jobs.step.template
object
data.jobs.payload
object
data.jobs.providerId
object
requireddata.jobs.status
string
requiredpageSize
number
requiredpage
number
requiredWas this page helpful?
import { Novu, ChannelTypeEnum } from '@novu/node';
const novu = new Novu('<NOVU_API_KEY>');
const params = {
page: 0, // optional
limit: 20, // optional
subscriberId: "subscriberId" //optional
channel: ChannelTypeEnum.EMAIL //optional
transactionIds : ["txnId1","txnId2"] //optional
}
await novu.messages.list(params);
{
hasMore: true,
data: [data],
pageSize: 0,
page: 0
}