Novu Channel Endpoints API

The Channel Endpoints API from Novu — 2 operation(s) for channel endpoints.

Operations 5

GET /v1/channel-endpoints Novu List All Channel Endpoints #
POST /v1/channel-endpoints Novu Create a Channel Endpoint #
GET /v1/channel-endpoints/{identifier} Novu Retrieve a Channel Endpoint #
PATCH /v1/channel-endpoints/{identifier} Novu Update a Channel Endpoint #
DELETE /v1/channel-endpoints/{identifier} Novu Delete a Channel Endpoint #

Documentation

Specifications

Code Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-trigger-event-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-trigger-event-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-bulk-trigger-event-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-subscriber-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-create-subscriber-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-bulk-subscriber-create-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-create-environment-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-update-environment-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-environment-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-topic-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-create-integration-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-update-integration-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-integration-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-message-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-create-workflow-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-update-workflow-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-workflow-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-layout-response-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-subscriber-payload-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-schema/novu-error-dto-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-trigger-event-request-dto-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-subscriber-response-dto-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-workflow-response-dto-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-message-response-dto-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-topic-response-dto-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/json-structure/novu-integration-response-dto-structure.json

Other Resources

🔗
Swagger
https://api.novu.co/api
🔗
Postman
https://github.com/novuhq/novu-postman
🔗
SDKs
https://www.npmjs.com/package/@novu/api
🔗
SDKs
https://pypi.org/project/novu-py/
🔗
SDKs
https://github.com/novuhq/novu-go
🔗
SDKs
https://github.com/novuhq/php-novu
🔗
SDKs
https://github.com/novuhq/novu-csharp
🔗
SDKs
https://github.com/novuhq/novu-java
🔗
SDKs
https://github.com/novuhq/novu-elixir
🔗
SDKs
https://github.com/novuhq/novu-kotlin
🔗
SDKs
https://github.com/novuhq/novu-ruby
🔗
SDKs
https://github.com/novuhq/novu-rust
🔗
SDKs
https://github.com/novuhq/novu-dotnet
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-trigger-event-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-trigger-event-bulk-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-broadcast-event-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-create-subscriber-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-bulk-create-subscribers-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-create-topic-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-add-subscribers-to-topic-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-create-environment-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-create-integration-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-workflow-response-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-list-messages-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/examples/novu-error-response-example.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/novu-channel-endpoints-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

novu-channel-endpoints-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Novu Activity Channel Endpoints API
  description: Novu REST API. Please see https://docs.novu.co/api-reference for more details.
  version: 3.15.0
  contact:
    name: Novu Support
    url: https://discord.gg/novu
    email: support@novu.co
  termsOfService: https://novu.co/terms
  license:
    name: MIT
    url: https://opensource.org/license/mit
servers:
- url: https://api.novu.co
- url: https://eu.api.novu.co
security:
- secretKey: []
tags:
- name: Channel Endpoints
paths:
  /v1/channel-endpoints:
    get:
      operationId: ChannelEndpointsController_listChannelEndpoints
      x-speakeasy-name-override: list
      summary: Novu List All Channel Endpoints
      description: List all channel endpoints for a resource based on query filters.
      parameters:
      - name: after
        required: false
        in: query
        description: Cursor for pagination indicating the starting point after which to fetch results.
        schema:
          type: string
      - name: before
        required: false
        in: query
        description: Cursor for pagination indicating the ending point before which to fetch results.
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: Limit the number of items to return (max 100)
        example: 10
        schema:
          maximum: 100
          type: number
      - name: orderDirection
        required: false
        in: query
        description: Direction of sorting
        schema:
          enum:
          - ASC
          - DESC
          type: string
      - name: orderBy
        required: false
        in: query
        description: Field to order by
        schema:
          type: string
      - name: includeCursor
        required: false
        in: query
        description: Include cursor item in response
        schema:
          type: boolean
      - name: subscriberId
        required: false
        in: query
        description: The subscriber ID to filter results by
        example: subscriber-123
        schema:
          type: string
      - name: contextKeys
        required: false
        in: query
        description: 'Filter by exact context keys, order insensitive (format: "type:id")'
        example:
        - tenant:org-123
        - region:us-east-1
        schema:
          type: array
          items:
            type: string
      - name: channel
        required: false
        in: query
        description: Channel type to filter results.
        schema:
          enum:
          - in_app
          - email
          - sms
          - chat
          - push
          type: string
      - name: providerId
        required: false
        in: query
        description: Filter by provider identifier (e.g., sendgrid, twilio, slack, etc.).
        example: slack
        schema:
          $ref: '#/components/schemas/ProvidersIdEnum'
      - name: integrationIdentifier
        required: false
        in: query
        description: Integration identifier to filter results.
        example: slack-prod
        schema:
          type: string
      - name: connectionIdentifier
        required: false
        in: query
        description: Connection identifier to filter results.
        example: slack-connection-abc123
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/ListChannelEndpointsResponseDto'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '404':
          description: Not Found
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '405':
          description: Method Not Allowed
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '409':
          description: Conflict
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '414':
          description: URI Too Long
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '422':
          description: Unprocessable Entity
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorDto'
        '429':
          description: 'The client has sent too many requests in a given amount of time. '
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                type: string
                example: API rate limit exceeded
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '503':
          description: The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                type: string
                example: Please wait some time, then try again.
      tags:
      - Channel Endpoints
      security:
      - secretKey: []
      - secretKey: []
    post:
      operationId: ChannelEndpointsController_createChannelEndpoint
      x-speakeasy-name-override: create
      summary: Novu Create a Channel Endpoint
      description: Create a new channel endpoint for a resource.
      parameters: []
      requestBody:
        required: true
        description: Channel endpoint creation request. The structure varies based on the type field.
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CreateSlackChannelEndpointDto'
              - $ref: '#/components/schemas/CreateSlackUserEndpointDto'
              - $ref: '#/components/schemas/CreateWebhookEndpointDto'
              - $ref: '#/components/schemas/CreatePhoneEndpointDto'
              - $ref: '#/components/schemas/CreateMsTeamsChannelEndpointDto'
              - $ref: '#/components/schemas/CreateMsTeamsUserEndpointDto'
              - $ref: '#/components/schemas/CreateTelegramChatEndpointDto'
              discriminator:
                propertyName: type
                mapping:
                  slack_channel: '#/components/schemas/CreateSlackChannelEndpointDto'
                  slack_user: '#/components/schemas/CreateSlackUserEndpointDto'
                  webhook: '#/components/schemas/CreateWebhookEndpointDto'
                  phone: '#/components/schemas/CreatePhoneEndpointDto'
                  ms_teams_channel: '#/components/schemas/CreateMsTeamsChannelEndpointDto'
                  ms_teams_user: '#/components/schemas/CreateMsTeamsUserEndpointDto'
                  telegram_chat: '#/components/schemas/CreateTelegramChatEndpointDto'
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/GetChannelEndpointResponseDto'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '404':
          description: Not Found
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '405':
          description: Method Not Allowed
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '409':
          description: Conflict
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '414':
          description: URI Too Long
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '422':
          description: Unprocessable Entity
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorDto'
        '429':
          description: 'The client has sent too many requests in a given amount of time. '
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                type: string
                example: API rate limit exceeded
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '503':
          description: The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                type: string
                example: Please wait some time, then try again.
      tags:
      - Channel Endpoints
      security:
      - secretKey: []
      - secretKey: []
  /v1/channel-endpoints/{identifier}:
    get:
      operationId: ChannelEndpointsController_getChannelEndpoint
      x-speakeasy-name-override: retrieve
      summary: Novu Retrieve a Channel Endpoint
      description: Retrieve a specific channel endpoint by its unique identifier.
      parameters:
      - name: identifier
        required: true
        in: path
        description: The unique identifier of the channel endpoint
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/GetChannelEndpointResponseDto'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '404':
          description: Not Found
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Idempotency-Replay:
              $ref: '#/components/headers/Idempotency-Replay'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '405':
          description: Method Not Allowed
          headers:
            Content-Type:

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/novu/refs/heads/main/openapi/novu-channel-endpoints-api-openapi.yml