{ "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "Authorization", "type": "string" }, { "key": "value", "value": "{{apikey}}", "type": "string" } ] }, "info": { "name": "novu/api", "description": "Novu API: Novu REST API. Please see https://docs.novu.co/api-reference for more details.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Contexts", "item": [ { "name": "Create a context", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/contexts", "host": [ "{{baseUrl}}" ], "path": [ "v2", "contexts" ] }, "description": "Create a new context with the specified type, id, and data. Returns 409 if context already exists.\n **type** and **id** are required fields, **data** is optional, if the context already exists, it returns the 409 response" } }, { "name": "List all contexts", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/contexts", "host": [ "{{baseUrl}}" ], "path": [ "v2", "contexts" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "5488.14", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": false, "type": "boolean" }, { "key": "id", "value": "tenant-prod-123", "type": "string" }, { "key": "search", "value": "tenant", "type": "string" } ] }, "description": "Retrieve a paginated list of all contexts, optionally filtered by type and key pattern.\n **type** and **id** are optional fields, if provided, only contexts with the matching type and id will be returned.\n **search** is an optional field, if provided, only contexts with the matching key pattern will be returned.\n Checkout all possible parameters in the query section below for more details" } }, { "name": "Update a context", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/contexts/{type}/{id}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "contexts", ":type", ":id" ], "variable": [ { "key": "id", "value": "", "type": "string" }, { "key": "type", "value": "", "type": "string" } ] }, "description": "Update the data of an existing context.\n **type** and **id** are required fields, **data** is required. Only the data field is updated, the rest of the context is not affected.\n If the context does not exist, it returns the 404 response" } }, { "name": "Retrieve a context", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/contexts/{type}/{id}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "contexts", ":type", ":id" ], "variable": [ { "key": "id", "value": "", "type": "string" }, { "key": "type", "value": "", "type": "string" } ] }, "description": "Retrieve a specific context by its type and id.\n **type** and **id** are required fields, if the context does not exist, it returns the 404 response" } }, { "name": "Delete a context", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/contexts/{type}/{id}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "contexts", ":type", ":id" ], "variable": [ { "key": "id", "value": "", "type": "string" }, { "key": "type", "value": "", "type": "string" } ] }, "description": "Delete a context by its type and id.\n **type** and **id** are required fields, if the context does not exist, it returns the 404 response" } } ] }, { "name": "Environments", "item": [ { "name": "List environment tags", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/environments/{environmentId}/tags", "host": [ "{{baseUrl}}" ], "path": [ "v2", "environments", ":environmentId", "tags" ], "variable": [ { "key": "environmentId", "value": "6615943e7ace93b0540ae377", "type": "string" } ] }, "description": "Retrieve all unique tags used in workflows within the specified environment. These tags can be used for filtering workflows." } }, { "name": "Compare resources between environments", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/environments/{targetEnvironmentId}/diff", "host": [ "{{baseUrl}}" ], "path": [ "v2", "environments", ":targetEnvironmentId", "diff" ], "variable": [ { "key": "targetEnvironmentId", "value": "6615943e7ace93b0540ae377", "type": "string" } ] }, "description": "Compares workflows and other resources between the source and target environments, returning detailed diff information including additions, modifications, and deletions." } }, { "name": "Publish resources to target environment", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/environments/{targetEnvironmentId}/publish", "host": [ "{{baseUrl}}" ], "path": [ "v2", "environments", ":targetEnvironmentId", "publish" ], "variable": [ { "key": "targetEnvironmentId", "value": "6615943e7ace93b0540ae377", "type": "string" } ] }, "description": "Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes." } }, { "name": "Create an environment", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/environments", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environments" ] }, "description": "Creates a new environment within the current organization. \n Environments allow you to manage different stages of your application development lifecycle.\n Each environment has its own set of API keys and configurations." } }, { "name": "List all environments", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environments", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environments" ] }, "description": "This API returns a list of environments for the current organization. \n Each environment contains its configuration, API keys (if user has access), and metadata." } }, { "name": "Update an environment", "request": { "method": "PUT", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/environments/{environmentId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environments", ":environmentId" ], "variable": [ { "key": "environmentId", "value": "", "type": "string" } ] }, "description": "Update an environment by its unique identifier **environmentId**. \n You can modify the environment name, identifier, color, and other configuration settings." } }, { "name": "Delete an environment", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environments/{environmentId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environments", ":environmentId" ], "variable": [ { "key": "environmentId", "value": "", "type": "string" } ] }, "description": "Delete an environment by its unique identifier **environmentId**. \n This action is irreversible and will remove the environment and all its associated data." } } ], "description": "Environments allow you to manage different stages of your application development lifecycle. Each environment has its own set of API keys and configurations, enabling you to separate development, staging, and production workflows." }, { "name": "Activity", "item": [ { "name": "Track provider activity and engagement events", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/inbound-webhooks/delivery-providers/{environmentId}/{integrationId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "inbound-webhooks", "delivery-providers", ":environmentId", ":integrationId" ], "variable": [ { "key": "environmentId", "value": "", "type": "string" }, { "key": "integrationId", "value": "", "type": "string" } ] }, "description": "Track activity and engagement events for a specific delivery provider" } } ] }, { "name": "Layouts", "item": [ { "name": "Create a layout", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/layouts", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts" ] }, "description": "Creates a new layout in the Novu Cloud environment" } }, { "name": "List all layouts", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/layouts", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts" ], "query": [ { "key": "limit", "value": "5448.83", "type": "number" }, { "key": "offset", "value": "4236.55", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "updatedAt", "type": "enum" }, { "key": "query", "value": "", "type": "string" } ] }, "description": "Retrieves a list of layouts with optional filtering and pagination" } }, { "name": "Update a layout", "request": { "method": "PUT", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Updates the details of an existing layout, here **layoutId** is the identifier of the layout" } }, { "name": "Retrieve a layout", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Fetches details of a specific layout by its unique identifier **layoutId**" } }, { "name": "Delete a layout", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Removes a specific layout by its unique identifier **layoutId**" } }, { "name": "Duplicate a layout", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}/duplicate", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId", "duplicate" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Duplicates a layout by its unique identifier **layoutId**. This will create a new layout with the content of the original layout." } }, { "name": "Generate layout preview", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}/preview", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId", "preview" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Generates a preview for a layout by its unique identifier **layoutId**" } }, { "name": "Get layout usage", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/layouts/{layoutId}/usage", "host": [ "{{baseUrl}}" ], "path": [ "v2", "layouts", ":layoutId", "usage" ], "variable": [ { "key": "layoutId", "value": "", "type": "string" } ] }, "description": "Retrieves information about workflows that use the specified layout by its unique identifier **layoutId**" } } ], "description": "Layouts are reusable wrappers for your email notifications." }, { "name": "Subscribers", "item": [ { "name": "Search subscribers", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/subscribers", "host": [ "{{baseUrl}}" ], "path": [ "v2", "subscribers" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "8917.73", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": true, "type": "boolean" }, { "key": "email", "value": "", "type": "string" }, { "key": "name", "value": "", "type": "string" }, { "key": "phone", "value": "", "type": "string" }, { "key": "subscriberId", "value": "", "type": "string" } ] }, "description": "Search subscribers by their **email**, **phone**, **subscriberId** and **name**. \n The search is case sensitive and supports pagination.Checkout all available filters in the query section." } }, { "name": "Create a subscriber", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/subscribers", "host": [ "{{baseUrl}}" ], "path": [ "v2", "subscribers" ], "query": [ { "key": "failIfExists", "value": false, "type": "boolean" } ] }, "description": "Create a subscriber with the subscriber attributes. \n **subscriberId** is a required field, rest other fields are optional, if the subscriber already exists, it will be updated" } }, { "name": "Retrieve a subscriber", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/subscribers/{subscriberId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "subscribers", ":subscriberId" ], "variable": [ { "key": "subscriberId", "value": "", "type": "string" } ] }, "description": "Retrieve a subscriber by its unique key identifier **subscriberId**. \n **subscriberId** field is required." } }, { "name": "Update a subscriber", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/subscribers/{subscriberId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "subscribers", ":subscriberId" ], "variable": [ { "key": "subscriberId", "value": "", "type": "string" } ] }, "description": "Update a subscriber by its unique key identifier **subscriberId**. \n **subscriberId** is a required field, rest other fields are optional" } }, { "name": "Delete a subscriber", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/subscribers/{subscriberId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "subscribers", ":subscriberId" ], "variable": [ { "key": "subscriberId", "value": "", "type": "string" } ] }, "description": "Deletes a subscriber entity from the Novu platform along with associated messages, preferences, and topic subscriptions. \n **subscriberId** is a required field." } }, { "name": "Bulk create subscribers", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/subscribers/bulk", "host": [ "{{baseUrl}}" ], "path": [ "v1", "subscribers", "bulk" ] }, "description": "\n Using this endpoint multiple subscribers can be created at once. The bulk API is limited to 500 subscribers per request.\n " } } ], "description": "A subscriber in Novu represents someone who should receive a message. A subscriber's profile information contains important attributes about the subscriber that will be used in messages (name, email). The subscriber object can contain other key-value pairs that can be used to further personalize your messages." }, { "name": "Topics", "item": [ { "name": "List all topics", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/topics", "host": [ "{{baseUrl}}" ], "path": [ "v2", "topics" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "5288.95", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": false, "type": "boolean" }, { "key": "key", "value": "", "type": "string" }, { "key": "name", "value": "", "type": "string" } ] }, "description": "This api returns a paginated list of topics.\n Topics can be filtered by **key**, **name**, or **includeCursor** to paginate through the list. \n Checkout all available filters in the query section." } }, { "name": "Create a topic", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/topics", "host": [ "{{baseUrl}}" ], "path": [ "v2", "topics" ], "query": [ { "key": "failIfExists", "value": true, "type": "boolean" } ] }, "description": "Creates a new topic if it does not exist, or updates an existing topic if it already exists. Use ?failIfExists=true to prevent updates." } }, { "name": "Retrieve a topic", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/topics/{topicKey}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "topics", ":topicKey" ], "variable": [ { "key": "topicKey", "value": "", "type": "string" } ] }, "description": "Retrieve a topic by its unique key identifier **topicKey**" } }, { "name": "Update a topic", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/topics/{topicKey}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "topics", ":topicKey" ], "variable": [ { "key": "topicKey", "value": "", "type": "string" } ] }, "description": "Update a topic name by its unique key identifier **topicKey**" } }, { "name": "Delete a topic", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/topics/{topicKey}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "topics", ":topicKey" ], "variable": [ { "key": "topicKey", "value": "", "type": "string" } ] }, "description": "Delete a topic by its unique key identifier **topicKey**. \n This action is irreversible and will remove all subscriptions to the topic." } } ], "description": "Topics are a way to group subscribers together so that they can be notified of events at once. A topic is identified by a custom key. This can be helpful for things like sending out marketing emails or notifying users of new features. Topics can also be used to send notifications to the subscribers who have been grouped together based on their interests, location, activities and much more." }, { "name": "Translations", "item": [ { "name": "Create a translation", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/translations", "host": [ "{{baseUrl}}" ], "path": [ "v2", "translations" ] }, "description": "Create a translation for a specific workflow and locale, if the translation already exists, it will be updated" } }, { "name": "Retrieve a translation", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/translations/{resourceType}/{resourceId}/{locale}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "translations", ":resourceType", ":resourceId", ":locale" ], "variable": [ { "key": "resourceType", "value": "workflow", "type": "enum" }, { "key": "resourceId", "value": "welcome-email", "type": "string" }, { "key": "locale", "value": "en_US", "type": "string" } ] }, "description": "Retrieve a specific translation by resource type, resource ID and locale" } }, { "name": "Delete a translation", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/translations/{resourceType}/{resourceId}/{locale}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "translations", ":resourceType", ":resourceId", ":locale" ], "variable": [ { "key": "resourceType", "value": "workflow", "type": "enum" }, { "key": "resourceId", "value": "", "type": "string" }, { "key": "locale", "value": "", "type": "string" } ] }, "description": "Delete a specific translation by resource type, resource ID and locale" } }, { "name": "Upload translation files", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "multipart/form-data", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "formdata", "formdata": [] }, "url": { "raw": "{{baseUrl}}/v2/translations/upload", "host": [ "{{baseUrl}}" ], "path": [ "v2", "translations", "upload" ] }, "description": "Upload one or more JSON translation files for a specific workflow. Files name must match the locale, e.g. en_US.json. Supports both \"files\" and \"files[]\" field names for backwards compatibility." } } ], "description": "Used to localize your notifications to different languages." }, { "name": "Workflows", "item": [ { "name": "Create a workflow", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/workflows", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows" ] }, "description": "Creates a new workflow in the Novu Cloud environment" } }, { "name": "List all workflows", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/workflows", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows" ], "query": [ { "key": "limit", "value": "8326.20", "type": "number" }, { "key": "offset", "value": "7781.57", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "lastTriggeredAt", "type": "enum" }, { "key": "query", "value": "", "type": "string" }, { "key": "tags", "value": [ {} ], "type": "array" }, { "key": "status", "value": [ {} ], "type": "array" } ] }, "description": "Retrieves a list of workflows with optional filtering and pagination" } }, { "name": "Update a workflow", "request": { "method": "PUT", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/workflows/{workflowId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows", ":workflowId" ], "variable": [ { "key": "workflowId", "value": "", "type": "string" } ] }, "description": "Updates the details of an existing workflow, here **workflowId** is the identifier of the workflow" } }, { "name": "Retrieve a workflow", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/workflows/{workflowId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows", ":workflowId" ], "query": [ { "key": "environmentId", "value": "", "type": "string" } ], "variable": [ { "key": "workflowId", "value": "", "type": "string" } ] }, "description": "Fetches details of a specific workflow by its unique identifier **workflowId**" } }, { "name": "Delete a workflow", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v2/workflows/{workflowId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows", ":workflowId" ], "variable": [ { "key": "workflowId", "value": "", "type": "string" } ] }, "description": "Removes a specific workflow by its unique identifier **workflowId**" } }, { "name": "Update a workflow", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/workflows/{workflowId}", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows", ":workflowId" ], "variable": [ { "key": "workflowId", "value": "", "type": "string" } ] }, "description": "Partially updates a workflow by its unique identifier **workflowId**" } }, { "name": "Sync a workflow", "request": { "method": "PUT", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v2/workflows/{workflowId}/sync", "host": [ "{{baseUrl}}" ], "path": [ "v2", "workflows", ":workflowId", "sync" ], "variable": [ { "key": "workflowId", "value": "", "type": "string" } ] }, "description": "Synchronizes a workflow to the target environment" } } ], "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system." }, { "name": "Channel Connections", "item": [ { "name": "List all channel connections", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-connections", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-connections" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "7991.59", "type": "number" }, { "key": "orderDirection", "value": "ASC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": false, "type": "boolean" }, { "key": "subscriberId", "value": "subscriber-123", "type": "string" }, { "key": "channel", "value": "in_app", "type": "enum" }, { "key": "providerId", "value": "unifonic", "type": "enum" }, { "key": "integrationIdentifier", "value": "slack-prod", "type": "string" }, { "key": "contextKeys", "value": [ "tenant:org-123", "region:us-east-1" ], "type": "array" } ] }, "description": "List all channel connections for a resource." } }, { "name": "Create a channel connection", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/channel-connections", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-connections" ] }, "description": "Create a new channel connection for a resource for given integration. Only one channel connection is allowed per resource and integration." } }, { "name": "Retrieve a channel connection", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-connections/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-connections", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Retrieve a specific channel connection by its unique identifier." } }, { "name": "Update a channel connection", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/channel-connections/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-connections", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Update an existing channel connection by its unique identifier." } }, { "name": "Delete a channel connection", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-connections/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-connections", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Delete a specific channel connection by its unique identifier." } } ] }, { "name": "Channel Endpoints", "item": [ { "name": "List all channel endpoints", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-endpoints", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-endpoints" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "1433.53", "type": "number" }, { "key": "orderDirection", "value": "DESC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": false, "type": "boolean" }, { "key": "subscriberId", "value": "subscriber-123", "type": "string" }, { "key": "contextKeys", "value": [ "tenant:org-123", "region:us-east-1" ], "type": "array" }, { "key": "channel", "value": "sms", "type": "enum" }, { "key": "providerId", "value": "nexmo", "type": "enum" }, { "key": "integrationIdentifier", "value": "slack-prod", "type": "string" }, { "key": "connectionIdentifier", "value": "slack-connection-abc123", "type": "string" } ] }, "description": "List all channel endpoints for a resource based on query filters." } }, { "name": "Create a channel endpoint", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "\"\"" }, "url": { "raw": "{{baseUrl}}/v1/channel-endpoints", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-endpoints" ] }, "description": "Create a new channel endpoint for a resource." } }, { "name": "Retrieve a channel endpoint", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-endpoints/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-endpoints", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Retrieve a specific channel endpoint by its unique identifier." } }, { "name": "Update a channel endpoint", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/channel-endpoints/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-endpoints", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Update an existing channel endpoint by its unique identifier." } }, { "name": "Delete a channel endpoint", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/channel-endpoints/{identifier}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "channel-endpoints", ":identifier" ], "variable": [ { "key": "identifier", "value": "", "type": "string" } ] }, "description": "Delete a specific channel endpoint by its unique identifier." } } ] }, { "name": "Domains", "item": [ { "name": "List domains for an environment", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/domains", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains" ], "query": [ { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" }, { "key": "limit", "value": "7742.34", "type": "number" }, { "key": "orderDirection", "value": "ASC", "type": "enum" }, { "key": "orderBy", "value": "", "type": "string" }, { "key": "includeCursor", "value": false, "type": "boolean" }, { "key": "name", "value": "", "type": "string" } ] }, "description": "Returns a paginated list of inbound-email domains in the current environment. Supports cursor pagination and a name contains filter." } }, { "name": "Create a domain", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/domains", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains" ] }, "description": "Registers a new inbound-email domain. The response includes the DNS records customers must add at their DNS provider before the domain can receive mail." } }, { "name": "Retrieve a domain by name", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/domains/{domain}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains", ":domain" ], "variable": [ { "key": "domain", "value": "", "type": "string" } ] }, "description": "Returns the domain configuration and the DNS records that must be in place. This is a pure read; call `domains.verify` to refresh verification status from DNS." } }, { "name": "Update a domain", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/domains/{domain}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains", ":domain" ], "variable": [ { "key": "domain", "value": "", "type": "string" } ] }, "description": "Updates optional domain fields. When `data` is provided, it replaces the entire metadata object; omit `data` to leave it unchanged." } }, { "name": "Delete a domain", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/domains/{domain}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains", ":domain" ], "variable": [ { "key": "domain", "value": "", "type": "string" } ] }, "description": "Removes the domain and cascades the deletion to all of its routes. Inbound mail for that domain stops being processed immediately." } }, { "name": "Diagnose inbound DNS for a domain", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/domains/{domain}/diagnose", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains", ":domain", "diagnose" ], "variable": [ { "key": "domain", "value": "", "type": "string" } ] }, "description": "Runs live DNS checks for inbound email readiness (MX correctness, apex CNAME collision, and common DNS blocklists for the Novu mail host). Returns structured issues with plain-language fixes." } }, { "name": "Verify a domain", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/domains/{domain}/verify", "host": [ "{{baseUrl}}" ], "path": [ "v1", "domains", ":domain", "verify" ], "variable": [ { "key": "domain", "value": "", "type": "string" } ] }, "description": "Performs a live DNS lookup to refresh the MX record status of the domain and updates the verification status accordingly. Returns the latest domain configuration." } } ], "description": "Used to manage your inbound email domains." }, { "name": "Environment Variables", "item": [ { "name": "List all variables", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environment-variables", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables" ], "query": [ { "key": "search", "value": "", "type": "string" } ] }, "description": "Returns all environment variables for the current organization. Secret values are masked." } }, { "name": "Create a variable", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/environment-variables", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables" ] }, "description": "Creates a new environment variable. Keys must be uppercase with underscores only (e.g. BASE_URL). Secret variables are encrypted at rest and masked in API responses." } }, { "name": "Get environment variable", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environment-variables/{variableKey}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables", ":variableKey" ], "variable": [ { "key": "variableKey", "value": "BASE_URL", "type": "string" } ] }, "description": "Returns a single environment variable by key. Secret values are masked." } }, { "name": "Update a variable", "request": { "method": "PATCH", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/environment-variables/{variableKey}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables", ":variableKey" ], "variable": [ { "key": "variableKey", "value": "BASE_URL", "type": "string" } ] }, "description": "Updates an existing environment variable. Providing `values` merges them into the existing per-environment values by `_environmentId`; envs not present in the request keep their stored value. Submitting the masked secret placeholder (the value returned by read endpoints for secret variables) as a real value is rejected." } }, { "name": "Delete environment variable", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environment-variables/{variableKey}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables", ":variableKey" ], "variable": [ { "key": "variableKey", "value": "BASE_URL", "type": "string" } ] }, "description": "Deletes an environment variable by key." } }, { "name": "Retrieve a variable usage", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/environment-variables/{variableKey}/usage", "host": [ "{{baseUrl}}" ], "path": [ "v1", "environment-variables", ":variableKey", "usage" ], "variable": [ { "key": "variableKey", "value": "BASE_URL", "type": "string" } ] }, "description": "Returns the workflows that reference this environment variable via `{{env.KEY}}` in their step controls. **variableId** is required." } } ] }, { "name": "Integrations", "item": [ { "name": "List all integrations", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/integrations", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations" ] }, "description": "List all the channels integrations created in the organization. Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "Create an integration", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/integrations", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations" ] }, "description": "Create an integration for the current environment the user is based on the API key provided. \n Each provider supports different credentials, check the provider documentation for more details. Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "Update an integration", "request": { "method": "PUT", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/integrations/{integrationId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", ":integrationId" ], "variable": [ { "key": "integrationId", "value": "", "type": "string" } ] }, "description": "Update an integration by its unique key identifier **integrationId**. \n Each provider supports different credentials, check the provider documentation for more details. Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "Delete an integration", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/integrations/{integrationId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", ":integrationId" ], "variable": [ { "key": "integrationId", "value": "", "type": "string" } ] }, "description": "Delete an integration by its unique key identifier **integrationId**. \n This action is irreversible. Only integration metadata is returned, credentials field is returned as empty object." } }, { "name": "Auto-configure an integration for inbound webhooks", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/integrations/{integrationId}/auto-configure", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", ":integrationId", "auto-configure" ], "variable": [ { "key": "integrationId", "value": "", "type": "string" } ] }, "description": "Auto-configure an integration by its unique key identifier **integrationId** for inbound webhook support. \n This will automatically generate required webhook signing keys and configure webhook endpoints. Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "Update integration as primary", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/integrations/{integrationId}/set-primary", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", ":integrationId", "set-primary" ], "variable": [ { "key": "integrationId", "value": "", "type": "string" } ] }, "description": "Update an integration as **primary** by its unique key identifier **integrationId**. \n This API will set the integration as primary for that channel in the current environment. \n Primary integration is used to deliver notification for sms and email channels in the workflow. \n Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "List active integrations", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/integrations/active", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", "active" ] }, "description": "List all the active integrations created in the organization. Only integration metadata is returned, credentials field is returned as an empty object." } }, { "name": "Generate OAuth URL for a workspace/tenant connection", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/integrations/channel-connections/oauth", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", "channel-connections", "oauth" ] }, "description": "Generate an OAuth URL that creates a workspace or tenant-level channel connection (Slack workspace install or MS Teams admin consent). \n The generated URL expires after 5 minutes." } }, { "name": "Generate OAuth URL to link a subscriber user identity", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/integrations/channel-endpoints/oauth", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", "channel-endpoints", "oauth" ] }, "description": "Generate an OAuth URL that links a specific subscriber to their chat identity (Slack user ID or MS Teams user OID). \n The generated URL expires after 5 minutes." } }, { "name": "Generate chat OAuth URL", "request": { "method": "POST", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Content-Type", "value": "application/json", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/v1/integrations/chat/oauth", "host": [ "{{baseUrl}}" ], "path": [ "v1", "integrations", "chat", "oauth" ] }, "description": "**Deprecated** — use `POST /integrations/channel-connections/oauth` (connect) or `POST /integrations/channel-endpoints/oauth` (link_user) instead.\n Generate an OAuth URL for chat integrations like Slack and MS Teams. \n This URL allows subscribers to authorize the integration, enabling the system to send messages \n through their chat workspace. The generated URL expires after 5 minutes." } } ], "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers." }, { "name": "Messages", "item": [ { "name": "List all messages", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/messages", "host": [ "{{baseUrl}}" ], "path": [ "v1", "messages" ], "query": [ { "key": "channel", "value": "in_app", "type": "enum" }, { "key": "subscriberId", "value": "", "type": "string" }, { "key": "transactionId", "value": [ {} ], "type": "array" }, { "key": "contextKeys", "value": [ "tenant:org-123", "region:us-east-1" ], "type": "array" }, { "key": "page", "value": { "Value": 0 }, "type": "number" }, { "key": "limit", "value": { "Value": 10 }, "type": "number" } ] }, "description": "List all messages for the current environment. \n This API supports filtering by **channel**, **subscriberId**, and **transactionId**. \n This API returns a paginated list of messages." } }, { "name": "Delete a message", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/messages/{messageId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "messages", ":messageId" ], "variable": [ { "key": "messageId", "value": "507f1f77bcf86cd799439011", "type": "string" } ] }, "description": "Delete a message entity from the Novu platform by **messageId**. \n This action is irreversible. **messageId** is required and of mongodbId type." } }, { "name": "Delete messages by transactionId", "request": { "method": "DELETE", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/messages/transaction/{transactionId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "messages", "transaction", ":transactionId" ], "query": [ { "key": "channel", "value": "chat", "type": "enum" } ], "variable": [ { "key": "transactionId", "value": "507f1f77bcf86cd799439011", "type": "string" } ] }, "description": "Delete multiple messages from the Novu platform using **transactionId** of triggered event. \n This API supports filtering by **channel** and delete all messages associated with the **transactionId**." } } ], "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages." }, { "name": "Notifications", "item": [ { "name": "List all events", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/notifications", "host": [ "{{baseUrl}}" ], "path": [ "v1", "notifications" ], "query": [ { "key": "channels", "value": [ {} ], "type": "array" }, { "key": "templates", "value": [ {} ], "type": "array" }, { "key": "emails", "value": [ {} ], "type": "array" }, { "key": "search", "value": "", "type": "string" }, { "key": "subscriberIds", "value": [ {} ], "type": "array" }, { "key": "severity", "value": [ {} ], "type": "array" }, { "key": "page", "value": { "Value": 0 }, "type": "number" }, { "key": "limit", "value": { "Value": 10 }, "type": "number" }, { "key": "transactionId", "value": "", "type": "string" }, { "key": "topicKey", "value": "", "type": "string" }, { "key": "subscriptionId", "value": "", "type": "string" }, { "key": "contextKeys", "value": [ {} ], "type": "array" }, { "key": "after", "value": "", "type": "string" }, { "key": "before", "value": "", "type": "string" } ] }, "description": "List all notification events (triggered events) for the current environment. \n This API supports filtering by **channels**, **templates**, **emails**, **subscriberIds**, **transactionId**, **topicKey**, **severity**, **contextKeys**. \n Checkout all available filters in the query section.\n This API returns event triggers, to list each channel notifications, check messages APIs." } }, { "name": "Retrieve an event", "request": { "method": "GET", "header": [ { "key": "idempotency-key", "value": "", "type": "string" }, { "key": "Accept", "value": "application/json", "type": "string" } ], "url": { "raw": "{{baseUrl}}/v1/notifications/{notificationId}", "host": [ "{{baseUrl}}" ], "path": [ "v1", "notifications", ":notificationId" ], "variable": [ { "key": "notificationId", "value": "", "type": "string" } ] }, "description": "Retrieve an event by its unique key identifier **notificationId**. \n Here **notificationId** is of mongodbId type. \n This API returns the event details - execution logs, status, actual notification (message) generated by each workflow step." } } ] } ], "variable": [ { "key": "baseUrl", "value": "https://api.novu.co" } ] }