# Novu: API Reference

> The open-source notification infrastructure for agents and products. Send, receive, and track notifications across channels.

## API Reference

### Getting Started

- [Novu REST API Reference](https://docs.novu.co/api-reference.md): Manage subscribers, trigger workflows, configure integrations, operate agents, and run your notification infrastructure with the Novu REST API.
- [Authentication](https://docs.novu.co/api-reference/authentication.md): Authenticate REST API requests to Novu with your secret key, manage environment credentials, rotate keys, and follow security best practices.
- [Errors](https://docs.novu.co/api-reference/errors.md): Understand Novu API error responses, HTTP status codes, validation error payloads, and how to debug and recover from failed API requests.
- [Pagination](https://docs.novu.co/api-reference/pagination.md): Page through large Novu API list responses using cursor-based pagination with limit, after, and before query parameters and response metadata.
- [Rate Limiting](https://docs.novu.co/api-reference/rate-limiting.md): Learn Novu API rate limits by tier, read the RateLimit response headers, and handle 429 responses with exponential backoff and idempotency keys.
- [Idempotency](https://docs.novu.co/api-reference/idempotency.md): Use idempotency keys with the Novu API to safely retry POST and PATCH requests without triggering duplicate workflow runs or duplicate side effects.
- [Payload Limits](https://docs.novu.co/api-reference/payload-limits.md): Understand payload size limits for Novu API requests and workflow triggers. Structure event payloads to avoid validation failures and rejected requests.

### Notification delivery

#### Events

- [Trigger event](https://docs.novu.co/api-reference/events/trigger-event.md): Trigger event is the main (and only) way to send notifications to subscribers. The trigger identifier is used to match the particular workflow associated with it. Maximum number of recipients can be 100. Additional information can be passed according the body interface below.     To prevent duplicat…
- [Bulk trigger event](https://docs.novu.co/api-reference/events/bulk-trigger-event.md): Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.       The bulk API is limited to 100 events per request.
- [Broadcast event to all](https://docs.novu.co/api-reference/events/broadcast-event-to-all.md): Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.       In the future could be used to trigger events to a subset of subscribers based on defined filters.
- [Cancel triggered event](https://docs.novu.co/api-reference/events/cancel-triggered-event.md): Using a previously generated transactionId during the event trigger,      will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...

#### Notifications

- [Notification event schema](https://docs.novu.co/api-reference/notifications/notification-event-schema.md): Reference the Novu notification event schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [List all events](https://docs.novu.co/api-reference/notifications/list-all-events.md): List all notification events (triggered events) for the current environment.      This API supports filtering by **channels**, **templates**, **emails**, **subscriberIds**, **transactionId**, **topicKey**, **severity**, **contextKeys**.      Checkout all available filters in the query section.     T…
- [Retrieve an event](https://docs.novu.co/api-reference/notifications/retrieve-an-event.md): Retrieve an event by its unique key identifier **notificationId**.      Here **notificationId** is of mongodbId type.      This API returns the event details - execution logs, status, actual notification (message) generated by each workflow step.

#### Messages

- [Message schema](https://docs.novu.co/api-reference/messages/message-schema.md): Reference the Novu message schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [List all messages](https://docs.novu.co/api-reference/messages/list-all-messages.md): List all messages for the current environment.      This API supports filtering by **channel**, **subscriberId**, and **transactionId**.      This API returns a paginated list of messages.
- [Delete a message](https://docs.novu.co/api-reference/messages/delete-a-message.md): Delete a message entity from the Novu platform by **messageId**.      This action is irreversible. **messageId** is required and of mongodbId type.
- [Delete messages by transactionId](https://docs.novu.co/api-reference/messages/delete-messages-by-transactionid.md): Delete multiple messages from the Novu platform using **transactionId** of triggered event.      This API supports filtering by **channel** and delete all messages associated with the **transactionId**.

#### Activity

- [Track activity and engagement events](https://docs.novu.co/api-reference/activity/track-activity-and-engagement-events.md): Track activity and engagement events for a specific delivery provider

### Agents

- [Agent schema](https://docs.novu.co/api-reference/agents/agent-schema.md): Reference the Novu agent schema used in API requests and responses. Review fields, data types, and object structure for this resource.

#### Management

- [Create an agent](https://docs.novu.co/api-reference/agents/create-an-agent.md): Create an agent scoped to the current environment. The identifier must be unique per environment. Set `runtime` to `managed` and supply `managedRuntime` to provision a provider-hosted agent brain.
- [List all agents](https://docs.novu.co/api-reference/agents/list-all-agents.md): Retrieve a cursor-paginated list of agents for the current environment. Use **after**, **before**, **limit**, **orderBy**, and **orderDirection** query parameters.
- [Retrieve an agent](https://docs.novu.co/api-reference/agents/retrieve-an-agent.md): Retrieve an agent by its external identifier (not the internal MongoDB id).
- [Update an agent](https://docs.novu.co/api-reference/agents/update-an-agent.md): Update an agent by its external identifier.
- [Delete an agent](https://docs.novu.co/api-reference/agents/delete-an-agent.md): Delete an agent by identifier, remove all agent-integration links, and clear the agent assignment from any workflows that reference it. For managed-runtime agents, pass `deleteFromProvider=true` to also archive the agent on the provider side (e.g. Anthropic). By default only the Novu record is delet…

#### Runtime

- [Update an agent bridge](https://docs.novu.co/api-reference/agents/update-an-agent-bridge.md): Update the bridge URL configuration for an agent. Used by the CLI to register dev tunnel URLs. Refuses to activate dev bridges on production environments.
- [Send an agent reply](https://docs.novu.co/api-reference/agents/send-an-agent-reply.md): Send a message or side-effect into an existing agent conversation from your backend.

#### Integrations

- [Create an agent integration](https://docs.novu.co/api-reference/agents/create-an-agent-integration.md): Create a link between an agent (by identifier) and an integration (by integration **identifier**, not the internal _id).
- [List agent integrations](https://docs.novu.co/api-reference/agents/list-agent-integrations.md): Retrieve integration links for an agent identified by its external identifier. Supports cursor pagination via **after**, **before**, **limit**, **orderBy**, and **orderDirection**.
- [Update an agent integration](https://docs.novu.co/api-reference/agents/update-an-agent-integration.md): Update which integration a link points to (by integration **identifier**, not the internal _id).
- [Delete an agent integration](https://docs.novu.co/api-reference/agents/delete-an-agent-integration.md): Delete a specific agent-integration link by its document id.

### Data

#### Subscribers

- [Subscriber schema](https://docs.novu.co/api-reference/subscribers/subscriber-schema.md): Reference the Novu subscriber schema used in API requests and responses. Review fields, data types, and object structure for this resource.

##### Management

- [Create a subscriber](https://docs.novu.co/api-reference/subscribers/create-a-subscriber.md): Create a subscriber with the subscriber attributes.        **subscriberId** is a required field, rest other fields are optional, if the subscriber already exists, it will be updated
- [Retrieve a subscriber](https://docs.novu.co/api-reference/subscribers/retrieve-a-subscriber.md): Retrieve a subscriber by its unique key identifier **subscriberId**.      **subscriberId** field is required.
- [Update a subscriber](https://docs.novu.co/api-reference/subscribers/update-a-subscriber.md): Update a subscriber by its unique key identifier **subscriberId**.      **subscriberId** is a required field, rest other fields are optional
- [Delete a subscriber](https://docs.novu.co/api-reference/subscribers/delete-a-subscriber.md): Deletes a subscriber entity from the Novu platform along with associated messages, preferences, and topic subscriptions.        **subscriberId** is a required field.
- [Search subscribers](https://docs.novu.co/api-reference/subscribers/search-subscribers.md): Search subscribers by their **email**, **phone**, **subscriberId** and **name**.      The search is case sensitive and supports pagination.Checkout all available filters in the query section.
- [Bulk create subscribers](https://docs.novu.co/api-reference/subscribers/bulk-create-subscribers.md): Using this endpoint multiple subscribers can be created at once. The bulk API is limited to 500 subscribers per request.

##### Subscriptions

- [Retrieve subscriber subscriptions](https://docs.novu.co/api-reference/subscribers/retrieve-subscriber-subscriptions.md): Retrieve subscriber's topic subscriptions by its unique key identifier **subscriberId**.      Checkout all available filters in the query section.

##### Preferences

- [Retrieve subscriber preferences](https://docs.novu.co/api-reference/subscribers/retrieve-subscriber-preferences.md): Retrieve subscriber channel preferences by its unique key identifier **subscriberId**.      This API returns all five channels preferences for all workflows and global preferences.
- [Update subscriber preferences](https://docs.novu.co/api-reference/subscribers/update-subscriber-preferences.md): Update subscriber preferences by its unique key identifier **subscriberId**.      **workflowId** is optional field, if provided, this API will update that workflow preference,      otherwise it will update global preferences
- [Bulk update subscriber preferences](https://docs.novu.co/api-reference/subscribers/bulk-update-subscriber-preferences.md): Bulk update subscriber preferences by its unique key identifier **subscriberId**.      This API allows updating multiple workflow preferences in a single request.

##### Credentials

- [Update provider credentials](https://docs.novu.co/api-reference/subscribers/update-provider-credentials.md): Update credentials for a provider such as **slack** and **FCM**.        **providerId** is required field. This API creates the **deviceTokens** or replaces the existing ones.
- [Upsert provider credentials](https://docs.novu.co/api-reference/subscribers/upsert-provider-credentials.md): Upsert credentials for a provider such as **slack** and **FCM**.        **providerId** is required field. This API creates **deviceTokens** or appends to the existing ones.
- [Delete provider credentials](https://docs.novu.co/api-reference/subscribers/delete-provider-credentials.md): Delete subscriber credentials for a provider such as **slack** and **FCM** by **providerId**.      This action is irreversible and will remove the credentials for the provider for particular **subscriberId**.

##### Notification state

- [Retrieve subscriber notifications](https://docs.novu.co/api-reference/subscribers/retrieve-subscriber-notifications.md): This API is deprecated, use v2 API instead. Retrieve subscriber in-app notifications by its unique key identifier **subscriberId**.
- [Update notifications state](https://docs.novu.co/api-reference/subscribers/update-notifications-state.md): This API is deprecated, use v2 API instead. Update subscriber's multiple in-app notifications state such as seen, read, unseen or unread by **subscriberId**.        **messageId** is of type mongodbId of notifications.
- [Update all notifications state](https://docs.novu.co/api-reference/subscribers/update-all-notifications-state.md): This API is deprecated, use v2 API instead. Update all subscriber in-app notifications state such as read, unread, seen or unseen by **subscriberId**.
- [Update subscriber online status](https://docs.novu.co/api-reference/subscribers/update-subscriber-online-status.md): Update the subscriber online status by its unique key identifier **subscriberId**
- [Retrieve unseen notifications count](https://docs.novu.co/api-reference/subscribers/retrieve-unseen-notifications-count.md): This API is deprecated, use v2 API instead. Retrieve unseen in-app notifications count for a subscriber by its unique key identifier **subscriberId**.
- [Update notification action status](https://docs.novu.co/api-reference/subscribers/update-notification-action-status.md): This API is deprecated, use v2 API instead. Update in-app notification's action status by its unique key identifier **messageId** and type field **type**.        **type** field can be **primary** or **secondary**

#### Inbox

##### Counts

- [Retrieve subscriber notifications count](https://docs.novu.co/api-reference/subscribers/retrieve-subscriber-notifications-count.md): Retrieve count of in-app (inbox) notifications for a subscriber by its unique key identifier **subscriberId**.      Supports multiple filters to count in-app (inbox) notifications by different criteria, including context keys.

##### Read & seen

- [Mark a notification as read](https://docs.novu.co/api-reference/subscribers/mark-a-notification-as-read.md): Mark a specific in-app (inbox) notification as read by its unique identifier **notificationId**.
- [Mark a notification as unread](https://docs.novu.co/api-reference/subscribers/mark-a-notification-as-unread.md): Mark a specific in-app (inbox) notification as unread by its unique identifier **notificationId**.
- [Mark all notifications as read](https://docs.novu.co/api-reference/subscribers/mark-all-notifications-as-read.md): Mark all in-app (inbox) notifications matching the specified filters as read. Supports context-based filtering.
- [Mark notifications as seen](https://docs.novu.co/api-reference/subscribers/mark-notifications-as-seen.md): Mark specific and multiple in-app (inbox) notifications as seen. Supports context-based filtering.

##### Snooze

- [Snooze a notification](https://docs.novu.co/api-reference/subscribers/snooze-a-notification.md): Snooze a specific in-app (inbox) notification by its unique identifier **notificationId** until a specified time.
- [Unsnooze a notification](https://docs.novu.co/api-reference/subscribers/unsnooze-a-notification.md): Unsnooze a specific in-app (inbox) notification by its unique identifier **notificationId**.

##### Archive

- [Archive a notification](https://docs.novu.co/api-reference/subscribers/archive-a-notification.md): Archive a specific in-app (inbox) notification by its unique identifier **notificationId**.
- [Unarchive a notification](https://docs.novu.co/api-reference/subscribers/unarchive-a-notification.md): Unarchive a specific in-app (inbox) notification by its unique identifier **notificationId**.
- [Archive all notifications](https://docs.novu.co/api-reference/subscribers/archive-all-notifications.md): Archive all in-app (inbox) notifications matching the specified filters. Supports context-based filtering.
- [Archive all read notifications](https://docs.novu.co/api-reference/subscribers/archive-all-read-notifications.md): Archive all read in-app (inbox) notifications matching the specified filters. Supports context-based filtering.

##### Delete

- [Delete a notification](https://docs.novu.co/api-reference/subscribers/delete-a-notification.md): Delete a specific in-app (inbox) notification permanently by its unique identifier **notificationId**.
- [Delete all notifications](https://docs.novu.co/api-reference/subscribers/delete-all-notifications.md): Permanently delete all in-app (inbox) notifications matching the specified filters. Supports context-based filtering.

##### Actions

- [Complete a notification action](https://docs.novu.co/api-reference/subscribers/complete-a-notification-action.md): Mark a single in-app (inbox) notification's action (primary or secondary) as completed by its unique identifier **notificationId** and action type **actionType**.
- [Revert a notification action](https://docs.novu.co/api-reference/subscribers/revert-a-notification-action.md): Revert a single in-app (inbox) notification's action (primary or secondary) to pending state by its unique identifier **notificationId** and action type **actionType**.

#### Topics

- [Topic schema](https://docs.novu.co/api-reference/topics/topic-schema.md): Reference the Novu topic schema used in API requests and responses. Review fields, data types, and object structure for this resource.

##### Management

- [Create a topic](https://docs.novu.co/api-reference/topics/create-a-topic.md): Creates a new topic if it does not exist, or updates an existing topic if it already exists. Use ?failIfExists=true to prevent updates.
- [Retrieve a topic](https://docs.novu.co/api-reference/topics/retrieve-a-topic.md): Retrieve a topic by its unique key identifier **topicKey**
- [Update a topic](https://docs.novu.co/api-reference/topics/update-a-topic.md): Update a topic name or data by its unique key identifier **topicKey**
- [Delete a topic](https://docs.novu.co/api-reference/topics/delete-a-topic.md): Delete a topic by its unique key identifier **topicKey**.      This action is irreversible and will remove all subscriptions to the topic.
- [List all topics](https://docs.novu.co/api-reference/topics/list-all-topics.md): This api returns a paginated list of topics.     Topics can be filtered by **key**, **name**, or **includeCursor** to paginate through the list.      Checkout all available filters in the query section.

##### Subscriptions

- [Create topic subscriptions](https://docs.novu.co/api-reference/topics/create-topic-subscriptions.md): This api will create subscription for subscriberIds for a topic.        Its like subscribing to a common interest group. if topic does not exist, it will be created.
- [Delete topic subscriptions](https://docs.novu.co/api-reference/topics/delete-topic-subscriptions.md): Delete subscriptions for subscriberIds for a topic.
- [Update a topic subscription](https://docs.novu.co/api-reference/topics/update-a-topic-subscription.md): Update a subscription by its unique identifier for a topic. You can update the preferences and name associated with the subscription.
- [List topic subscriptions](https://docs.novu.co/api-reference/topics/list-topic-subscriptions.md): List all subscriptions of subscribers for a topic.     Checkout all available filters in the query section.
- [Check topic subscriber](https://docs.novu.co/api-reference/topics/check-topic-subscriber.md): Check if a subscriber belongs to a certain topic
- [Retrieve a topic subscription](https://docs.novu.co/api-reference/topics/retrieve-a-topic-subscription.md): Retrieve a subscription by its unique identifier for a topic.

#### Contexts

- [Context schema](https://docs.novu.co/api-reference/contexts/context-schema.md): Reference the Novu context schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [Create a context](https://docs.novu.co/api-reference/contexts/create-a-context.md): Create a new context with the specified type, id, and data. Returns 409 if context already exists.       **type** and **id** are required fields, **data** is optional, if the context already exists, it returns the 409 response
- [Retrieve a context](https://docs.novu.co/api-reference/contexts/retrieve-a-context.md): Retrieve a specific context by its type and id.       **type** and **id** are required fields, if the context does not exist, it returns the 404 response
- [Update a context](https://docs.novu.co/api-reference/contexts/update-a-context.md): Update the data of an existing context.       **type** and **id** are required fields, **data** is required. Only the data field is updated, the rest of the context is not affected.       If the context does not exist, it returns the 404 response
- [Delete a context](https://docs.novu.co/api-reference/contexts/delete-a-context.md): Delete a context by its type and id.       **type** and **id** are required fields, if the context does not exist, it returns the 404 response
- [List all contexts](https://docs.novu.co/api-reference/contexts/list-all-contexts.md): Retrieve a paginated list of all contexts, optionally filtered by type and key pattern.       **type** and **id** are optional fields, if provided, only contexts with the matching type and id will be returned.       **search** is an optional field, if provided, only contexts with the matching key pa…

#### Channel Connections

- [Create a channel connection](https://docs.novu.co/api-reference/channel-connections/create-a-channel-connection.md): Create a new channel connection for a resource for given integration. Only one channel connection is allowed per resource and integration.
- [Retrieve a channel connection](https://docs.novu.co/api-reference/channel-connections/retrieve-a-channel-connection.md): Retrieve a specific channel connection by its unique identifier.
- [Update a channel connection](https://docs.novu.co/api-reference/channel-connections/update-a-channel-connection.md): Update an existing channel connection by its unique identifier.
- [Delete a channel connection](https://docs.novu.co/api-reference/channel-connections/delete-a-channel-connection.md): Delete a specific channel connection by its unique identifier.
- [List all channel connections](https://docs.novu.co/api-reference/channel-connections/list-all-channel-connections.md): List all channel connections for a resource.

#### Channel Endpoints

- [Create a channel endpoint](https://docs.novu.co/api-reference/channel-endpoints/create-a-channel-endpoint.md): Create a new channel endpoint for a resource.
- [Retrieve a channel endpoint](https://docs.novu.co/api-reference/channel-endpoints/retrieve-a-channel-endpoint.md): Retrieve a specific channel endpoint by its unique identifier.
- [Update a channel endpoint](https://docs.novu.co/api-reference/channel-endpoints/update-a-channel-endpoint.md): Update an existing channel endpoint by its unique identifier.
- [Delete a channel endpoint](https://docs.novu.co/api-reference/channel-endpoints/delete-a-channel-endpoint.md): Delete a specific channel endpoint by its unique identifier.
- [List all channel endpoints](https://docs.novu.co/api-reference/channel-endpoints/list-all-channel-endpoints.md): List all channel endpoints for a resource based on query filters.

### Workflows & content

#### Workflows

- [Workflow schema](https://docs.novu.co/api-reference/workflows/workflow-schema.md): Reference the Novu workflow schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [Create a workflow](https://docs.novu.co/api-reference/workflows/create-a-workflow.md): Creates a new workflow in the Novu Cloud environment
- [Retrieve a workflow](https://docs.novu.co/api-reference/workflows/retrieve-a-workflow.md): Fetches details of a specific workflow by its unique identifier **workflowId**
- [Update a workflow](https://docs.novu.co/api-reference/workflows/update-a-workflow.md): Updates the details of an existing workflow, here **workflowId** is the identifier of the workflow
- [Delete a workflow](https://docs.novu.co/api-reference/workflows/delete-a-workflow.md): Removes a specific workflow by its unique identifier **workflowId**
- [List all workflows](https://docs.novu.co/api-reference/workflows/list-all-workflows.md): Retrieves a list of workflows with optional filtering and pagination
- [Sync a workflow](https://docs.novu.co/api-reference/workflows/sync-a-workflow.md): Synchronizes a workflow to the target environment
- [Retrieve workflow step](https://docs.novu.co/api-reference/workflows/retrieve-workflow-step.md): Retrieves data for a specific step in a workflow
- [Generate a step preview](https://docs.novu.co/api-reference/workflows/generate-a-step-preview.md): Generates a preview for a specific workflow step by its unique identifier **stepId**

#### Translations

- [Create a translation](https://docs.novu.co/api-reference/translations/create-a-translation.md): Create a translation for a specific workflow and locale, if the translation already exists, it will be updated
- [Retrieve a translation](https://docs.novu.co/api-reference/translations/retrieve-a-translation.md): Retrieve a specific translation by resource type, resource ID and locale
- [Delete a translation](https://docs.novu.co/api-reference/translations/delete-a-translation.md): Delete a specific translation by resource type, resource ID and locale
- [Retrieve a translation group](https://docs.novu.co/api-reference/translations/retrieve-a-translation-group.md): Retrieves a single translation group by resource type (workflow, layout) and resource ID (workflowId, layoutId)
- [Delete a translation group](https://docs.novu.co/api-reference/translations/delete-a-translation-group.md): Delete an entire translation group and all its translations
- [Import master translations JSON](https://docs.novu.co/api-reference/translations/import-master-translations-json.md): Import translations for multiple workflows from master JSON format for a specific locale
- [Retrieve master translations JSON](https://docs.novu.co/api-reference/translations/retrieve-master-translations-json.md): Retrieve all translations for a locale in master JSON format organized by resourceId (workflowId)
- [Upload master translations JSON file](https://docs.novu.co/api-reference/translations/upload-master-translations-json-file.md): Upload a master JSON file containing translations for multiple workflows. Locale is automatically detected from filename (e.g., en_US.json)
- [Upload translation files](https://docs.novu.co/api-reference/translations/upload-translation-files.md): 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.

#### Layouts

- [Create a layout](https://docs.novu.co/api-reference/layouts/create-a-layout.md): Creates a new layout in the Novu Cloud environment
- [Delete a layout](https://docs.novu.co/api-reference/layouts/delete-a-layout.md): Removes a specific layout by its unique identifier **layoutId**
- [Duplicate a layout](https://docs.novu.co/api-reference/layouts/duplicate-a-layout.md): Duplicates a layout by its unique identifier **layoutId**. This will create a new layout with the content of the original layout.
- [Generate layout preview](https://docs.novu.co/api-reference/layouts/generate-layout-preview.md): Generates a preview for a layout by its unique identifier **layoutId**
- [Get layout usage](https://docs.novu.co/api-reference/layouts/get-layout-usage.md): Retrieves information about workflows that use the specified layout by its unique identifier **layoutId**
- [List all layouts](https://docs.novu.co/api-reference/layouts/list-all-layouts.md): Retrieves a list of layouts with optional filtering and pagination
- [Retrieve a layout](https://docs.novu.co/api-reference/layouts/retrieve-a-layout.md): Fetches details of a specific layout by its unique identifier **layoutId**
- [Update a layout](https://docs.novu.co/api-reference/layouts/update-a-layout.md): Updates the details of an existing layout, here **layoutId** is the identifier of the layout

### Platform & channels

#### Environments

- [Environment schema](https://docs.novu.co/api-reference/environments/environment-schema.md): Reference the Novu environment schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [Create an environment](https://docs.novu.co/api-reference/environments/create-an-environment.md): Creates a new environment within the current organization.      Environments allow you to manage different stages of your application development lifecycle.     Each environment has its own set of API keys and configurations.
- [Update an environment](https://docs.novu.co/api-reference/environments/update-an-environment.md): Update an environment by its unique identifier **environmentId**.      You can modify the environment name, identifier, color, and other configuration settings.
- [Delete an environment](https://docs.novu.co/api-reference/environments/delete-an-environment.md): Delete an environment by its unique identifier **environmentId**.      This action is irreversible and will remove the environment and all its associated data.
- [List all environments](https://docs.novu.co/api-reference/environments/list-all-environments.md): This API returns a list of environments for the current organization.      Each environment contains its configuration, API keys (if user has access), and metadata.
- [List environment tags](https://docs.novu.co/api-reference/environments/list-environment-tags.md): Retrieve all unique tags used in workflows within the specified environment. These tags can be used for filtering workflows.
- [Compare resources between environments](https://docs.novu.co/api-reference/environments/compare-resources-between-environments.md): Compares workflows and other resources between the source and target environments, returning detailed diff information including additions, modifications, and deletions.
- [Publish resources to target environment](https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment.md): 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.

#### Environment Variables

- [Environment variable schema](https://docs.novu.co/api-reference/environment-variables/environment-variable-schema.md): Reference the Novu environment variable schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [Create a variable](https://docs.novu.co/api-reference/environment-variables/create-a-variable.md): 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.
- [Retrieve a variable](https://docs.novu.co/api-reference/environment-variables/retrieve-a-variable.md): Returns a single environment variable by key. Secret values are masked.
- [Update a variable](https://docs.novu.co/api-reference/environment-variables/update-a-variable.md): 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 re…
- [Delete a variable](https://docs.novu.co/api-reference/environment-variables/delete-a-variable.md): Deletes an environment variable by key.
- [List all variables](https://docs.novu.co/api-reference/environment-variables/list-all-variables.md): Returns all environment variables for the current organization. Secret values are masked.
- [Retrieve a variable usage](https://docs.novu.co/api-reference/environment-variables/retrieve-a-variable-usage.md): Returns the workflows that reference this environment variable via `{{env.KEY}}` in their step controls. **variableId** is required.

#### Integrations

- [Integration schema](https://docs.novu.co/api-reference/integrations/integration-schema.md): Reference the Novu integration schema used in API requests and responses. Review fields, data types, and object structure for this resource.
- [Create an integration](https://docs.novu.co/api-reference/integrations/create-an-integration.md): Create an integration for the current environment the user is based on the API key provided.      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.
- [Update an integration](https://docs.novu.co/api-reference/integrations/update-an-integration.md): Update an integration by its unique key identifier **integrationId**.      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.
- [Delete an integration](https://docs.novu.co/api-reference/integrations/delete-an-integration.md): Delete an integration by its unique key identifier **integrationId**.      This action is irreversible. Only integration metadata is returned, credentials field is returned as empty object.
- [List all integrations](https://docs.novu.co/api-reference/integrations/list-all-integrations.md): List all the channels integrations created in the organization. Only integration metadata is returned, credentials field is returned as an empty object.
- [List active integrations](https://docs.novu.co/api-reference/integrations/list-active-integrations.md): List all the active integrations created in the organization. Only integration metadata is returned, credentials field is returned as an empty object.
- [Update integration as primary](https://docs.novu.co/api-reference/integrations/update-integration-as-primary.md): Update an integration as **primary** by its unique key identifier **integrationId**.      This API will set the integration as primary for that channel in the current environment.      Primary integration is used to deliver notification for sms and email channels in the workflow.      Only integrati…
- [Generate chat OAuth URL](https://docs.novu.co/api-reference/integrations/generate-chat-oauth-url.md): **Deprecated** — use `POST /integrations/channel-connections/oauth` (connect) or `POST /integrations/channel-endpoints/oauth` (link_user) instead.     Generate an OAuth URL for chat integrations like Slack, MS Teams, and Webex.     This URL allows subscribers to authorize the integration, enabling t…
- [Auto-configure an integration for inbound webhooks](https://docs.novu.co/api-reference/integrations/auto-configure-an-integration-for-inbound-webhooks.md): Auto-configure an integration by its unique key identifier **integrationId** for inbound webhook support.      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.

## OpenAPI Specs

- [json-development-with-code-samples](https://spec.speakeasy.com/novu/novu/json-development-with-code-samples)
