API Reference
Subscribers
- GETGet subscribers
- POSTCreate subscriber
- POSTBulk create subscribers
- GETGet subscriber
- PUTUpsert 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 preferences
- 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
Topics
Notification
Workflows
Workflow Overrides
Workflow groups
Integrations
Layouts
Execution Details
Organizations
Create integration
Create an integration for the current environment the user is based on the API key provided
curl --location 'https://api.novu.co/v1/integrations' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: ApiKey <NOVU_API_KEY>' \
--data '{
"name": "SES",
"identifier": "ses-NkIQ5Koy3-123",
"credentials": {
"apiKey": "ACCESS_KEY_ID",
"secretKey": "SECRET_ACCESS_KEY",
"region": "us-east-2",
"from": "FROM_EMAIL_ADDRESS",
"senderName": "SENDER_NAME",
// ... other credentials as per provider
},
"conditions": [],
"active": true,
"check": false,
"providerId": "ses",
"channel": "email"
}'
{
"data": {
"_id": "string",
"_environmentId": "string",
"_organizationId": "string",
"name": "string",
"identifier": "string",
"providerId": "string",
"channel": "in_app",
"credentials": {
"apiKey": "string",
"user": "string",
"secretKey": "string",
"domain": "string",
"password": "string",
"host": "string",
"port": "string",
"secure": true,
"region": "string",
"accountSid": "string",
"messageProfileId": "string",
"token": "string",
"from": "string",
"senderName": "string",
"projectName": "string",
"applicationId": "string",
"clientId": "string",
"requireTls": true,
"ignoreTls": true,
"tlsOptions": {},
"baseUrl": "string",
"webhookUrl": "string",
"redirectUrl": "string",
"hmac": true,
"serviceAccount": "string",
"ipPoolName": "string"
},
"active": true,
"deleted": true,
"deletedAt": "string",
"deletedBy": "string",
"primary": true
}
}
Enter your API key in the Authorization
field like the example shown below:
E.g ApiKey 18d2e625f05d80e
curl --location 'https://api.novu.co/v1/integrations' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: ApiKey <NOVU_API_KEY>' \
--data '{
"name": "SES",
"identifier": "ses-NkIQ5Koy3-123",
"credentials": {
"apiKey": "ACCESS_KEY_ID",
"secretKey": "SECRET_ACCESS_KEY",
"region": "us-east-2",
"from": "FROM_EMAIL_ADDRESS",
"senderName": "SENDER_NAME",
// ... other credentials as per provider
},
"conditions": [],
"active": true,
"check": false,
"providerId": "ses",
"channel": "email"
}'
{
"data": {
"_id": "string",
"_environmentId": "string",
"_organizationId": "string",
"name": "string",
"identifier": "string",
"providerId": "string",
"channel": "in_app",
"credentials": {
"apiKey": "string",
"user": "string",
"secretKey": "string",
"domain": "string",
"password": "string",
"host": "string",
"port": "string",
"secure": true,
"region": "string",
"accountSid": "string",
"messageProfileId": "string",
"token": "string",
"from": "string",
"senderName": "string",
"projectName": "string",
"applicationId": "string",
"clientId": "string",
"requireTls": true,
"ignoreTls": true,
"tlsOptions": {},
"baseUrl": "string",
"webhookUrl": "string",
"redirectUrl": "string",
"hmac": true,
"serviceAccount": "string",
"ipPoolName": "string"
},
"active": true,
"deleted": true,
"deletedAt": "string",
"deletedBy": "string",
"primary": true
}
}
Authorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <api_key>".
Body
The provider ID for the integration
The channel type for the integration
in_app
, email
, sms
, chat
, push
The name of the integration
The unique identifier for the integration
The ID of the associated environment
The credentials for the integration
If the integration is active, the validation on the credentials field will run
Flag to check the integration status
Conditions for the integration
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
Response
The unique identifier for the environment associated with this integration. This links to the Environment collection.
The unique identifier for the organization that owns this integration. This links to the Organization collection.
The name of the integration, which is used to identify it in the user interface.
A unique string identifier for the integration, often used for API calls or internal references.
The identifier for the provider of the integration (e.g., "mailgun", "twilio").
The channel type for the integration, which defines how the integration communicates (e.g., email, SMS).
in_app
, email
, sms
, chat
, push
The credentials required for the integration to function, including API keys and other sensitive information.
Indicates whether the integration is currently active. An active integration will process events and messages.
Indicates whether the integration has been marked as deleted (soft delete).
Indicates whether this integration is marked as primary. A primary integration is often the default choice for processing.
The unique identifier of the integration record in the database. This is automatically generated.
The timestamp indicating when the integration was deleted. This is set when the integration is soft deleted.
The identifier of the user who performed the deletion of this integration. Useful for audit trails.
An array of conditions associated with the integration that may influence its behavior or processing logic.
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
Was this page helpful?
curl --location 'https://api.novu.co/v1/integrations' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: ApiKey <NOVU_API_KEY>' \
--data '{
"name": "SES",
"identifier": "ses-NkIQ5Koy3-123",
"credentials": {
"apiKey": "ACCESS_KEY_ID",
"secretKey": "SECRET_ACCESS_KEY",
"region": "us-east-2",
"from": "FROM_EMAIL_ADDRESS",
"senderName": "SENDER_NAME",
// ... other credentials as per provider
},
"conditions": [],
"active": true,
"check": false,
"providerId": "ses",
"channel": "email"
}'
{
"data": {
"_id": "string",
"_environmentId": "string",
"_organizationId": "string",
"name": "string",
"identifier": "string",
"providerId": "string",
"channel": "in_app",
"credentials": {
"apiKey": "string",
"user": "string",
"secretKey": "string",
"domain": "string",
"password": "string",
"host": "string",
"port": "string",
"secure": true,
"region": "string",
"accountSid": "string",
"messageProfileId": "string",
"token": "string",
"from": "string",
"senderName": "string",
"projectName": "string",
"applicationId": "string",
"clientId": "string",
"requireTls": true,
"ignoreTls": true,
"tlsOptions": {},
"baseUrl": "string",
"webhookUrl": "string",
"redirectUrl": "string",
"hmac": true,
"serviceAccount": "string",
"ipPoolName": "string"
},
"active": true,
"deleted": true,
"deletedAt": "string",
"deletedBy": "string",
"primary": true
}
}