List channel endpoints

Retrieve all channel endpoints for a resource based on query filters.

GET
/v1/channel-endpoints

Authorization

Authorization<token>

API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".

In: header

Authorization<token>

API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".

In: header

Query Parameters

afterstring

Cursor for pagination indicating the starting point after which to fetch results.

beforestring

Cursor for pagination indicating the ending point before which to fetch results.

limitnumber

Limit the number of items to return (max 100)

Maximum: 100
orderDirectionstring

Direction of sorting

Value in: "ASC" | "DESC"
orderBystring

Field to order by

includeCursorboolean

Include cursor item in response

subscriberIdstring

The subscriber ID to filter results by

contextKeysarray<string>

Filter by exact context keys, order insensitive (format: "type:id")

channelstring

Channel type to filter results.

Value in: "in_app" | "email" | "sms" | "chat" | "push"
providerIdstring

Filter by provider identifier (e.g., sendgrid, twilio, slack, etc.).

Value in: "emailjs" | "mailgun" | "mailjet" | "mandrill" | "nodemailer" | "postmark" | "sendgrid" | "sendinblue" | "ses" | "netcore" | "infobip-email" | "resend" | "plunk" | "mailersend" | "mailtrap" | "clickatell" | "outlook365" | "novu-email" | "sparkpost" | "email-webhook" | "braze" | "nexmo" | "plivo" | "sms77" | "sms-central" | "sns" | "telnyx" | "twilio" | "gupshup" | "firetext" | "infobip-sms" | "burst-sms" | "bulk-sms" | "isend-sms" | "forty-six-elks" | "kannel" | "maqsam" | "termii" | "africas-talking" | "novu-sms" | "sendchamp" | "generic-sms" | "clicksend" | "bandwidth" | "messagebird" | "simpletexting" | "azure-sms" | "ring-central" | "brevo-sms" | "eazy-sms" | "mobishastra" | "afro-message" | "unifonic" | "smsmode" | "imedia" | "sinch" | "isendpro-sms" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" | "appio" | "novu" | "slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "chat-webhook" | "novu-slack"
integrationIdentifierstring

Integration identifier to filter results.

connectionIdentifierstring

Connection identifier to filter results.

Header Parameters

idempotency-keystring

A header for idempotency purposes

Response Body

OK

dataRequiredarray<object>

List of returned Channel Endpoints

nextRequiredstring | null

The cursor for the next page of results, or null if there are no more pages.

previousRequiredstring | null

The cursor for the previous page of results, or null if this is the first page.

totalCountRequirednumber

The total count of items (up to 50,000)

totalCountCappedRequiredboolean

Whether there are more than 50,000 results available

export interface Response {
  /**
   * List of returned Channel Endpoints
   */
  data: GetChannelEndpointResponseDto[];
  /**
   * The cursor for the next page of results, or null if there are no more pages.
   */
  next: string | null;
  /**
   * The cursor for the previous page of results, or null if this is the first page.
   */
  previous: string | null;
  /**
   * The total count of items (up to 50,000)
   */
  totalCount: number;
  /**
   * Whether there are more than 50,000 results available
   */
  totalCountCapped: boolean;
}
export interface GetChannelEndpointResponseDto {
  /**
   * The unique identifier of the channel endpoint.
   */
  identifier: string;
  /**
   * The channel type (email, sms, push, chat, etc.).
   */
  channel: ("in_app" | "email" | "sms" | "chat" | "push") | null;
  /**
   * The provider identifier (e.g., sendgrid, twilio, slack, etc.).
   */
  providerId:
    | (
        | "emailjs"
        | "mailgun"
        | "mailjet"
        | "mandrill"
        | "nodemailer"
        | "postmark"
        | "sendgrid"
        | "sendinblue"
        | "ses"
        | "netcore"
        | "infobip-email"
        | "resend"
        | "plunk"
        | "mailersend"
        | "mailtrap"
        | "clickatell"
        | "outlook365"
        | "novu-email"
        | "sparkpost"
        | "email-webhook"
        | "braze"
        | "nexmo"
        | "plivo"
        | "sms77"
        | "sms-central"
        | "sns"
        | "telnyx"
        | "twilio"
        | "gupshup"
        | "firetext"
        | "infobip-sms"
        | "burst-sms"
        | "bulk-sms"
        | "isend-sms"
        | "forty-six-elks"
        | "kannel"
        | "maqsam"
        | "termii"
        | "africas-talking"
        | "novu-sms"
        | "sendchamp"
        | "generic-sms"
        | "clicksend"
        | "bandwidth"
        | "messagebird"
        | "simpletexting"
        | "azure-sms"
        | "ring-central"
        | "brevo-sms"
        | "eazy-sms"
        | "mobishastra"
        | "afro-message"
        | "unifonic"
        | "smsmode"
        | "imedia"
        | "sinch"
        | "isendpro-sms"
        | "fcm"
        | "apns"
        | "expo"
        | "one-signal"
        | "pushpad"
        | "push-webhook"
        | "pusher-beams"
        | "appio"
        | "novu"
        | "slack"
        | "discord"
        | "msteams"
        | "mattermost"
        | "ryver"
        | "zulip"
        | "grafana-on-call"
        | "getstream"
        | "rocket-chat"
        | "whatsapp-business"
        | "chat-webhook"
        | "novu-slack"
      )
    | null;
  /**
   * The identifier of the integration to use for this channel endpoint.
   */
  integrationIdentifier: string | null;
  /**
   * The identifier of the channel connection used for this endpoint.
   */
  connectionIdentifier: string | null;
  /**
   * The subscriber ID to which the channel endpoint is linked
   */
  subscriberId: string | null;
  /**
   * The context of the channel connection
   */
  contextKeys: string[];
  /**
   * Type of channel endpoint
   */
  type: "slack_channel" | "slack_user" | "webhook" | "phone" | "ms_teams_channel" | "ms_teams_user";
  /**
   * Endpoint data specific to the channel type
   */
  endpoint: SlackChannelEndpointDto | SlackUserEndpointDto | WebhookEndpointDto | PhoneEndpointDto;
  /**
   * The timestamp indicating when the channel endpoint was created, in ISO 8601 format.
   */
  createdAt: string;
  /**
   * The timestamp indicating when the channel endpoint was last updated, in ISO 8601 format.
   */
  updatedAt: string;
}
export interface SlackChannelEndpointDto {
  /**
   * Slack channel ID
   */
  channelId: string;
}
export interface SlackUserEndpointDto {
  /**
   * Slack user ID
   */
  userId: string;
}
export interface WebhookEndpointDto {
  /**
   * Webhook URL
   */
  url: string;
  /**
   * Optional channel identifier
   */
  channel?: string;
}
export interface PhoneEndpointDto {
  /**
   * Phone number in E.164 format
   */
  phoneNumber: string;
}
 
curl -X GET "https://api.novu.co/v1/channel-endpoints?after=string&before=string&limit=10&orderDirection=ASC&orderBy=string&includeCursor=true&subscriberId=subscriber-123&contextKeys=tenant%3Aorg-123&contextKeys=region%3Aus-east-1&channel=in_app&providerId=slack&integrationIdentifier=slack-prod&connectionIdentifier=slack-connection-abc123" \
  -H "idempotency-key: string" \
  -H "Authorization: <token>"
{
  "data": [
    {
      "identifier": "string",
      "channel": "in_app",
      "providerId": "slack",
      "integrationIdentifier": "slack-prod",
      "connectionIdentifier": "slack-connection-abc123",
      "subscriberId": "subscriber-123",
      "contextKeys": [
        "tenant:org-123",
        "region:us-east-1"
      ],
      "type": "slack_channel",
      "endpoint": {
        "channelId": "C123456789"
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
  ],
  "next": "string",
  "previous": "string",
  "totalCount": 0,
  "totalCountCapped": true
}

On this page

No Headings
Edit this page on GitHub