naftiko: 1.0.0-alpha2 info: label: Novu API — Channel Endpoints description: 'Notifications — Channel Endpoints. 5 operations. Lead operation: List All Channel Endpoints. Self-contained Naftiko capability covering one Novu business surface.' tags: - Novu - Notifications - Channel Endpoints created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: NOVU_API_KEY: NOVU_API_KEY capability: consumes: - type: http namespace: novu-channel-endpoints baseUri: https://api.novu.co description: Novu REST API — Channel Endpoints business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: '{{env.NOVU_API_KEY}}' placement: header resources: - name: v1-channel-endpoints path: /v1/channel-endpoints operations: - name: ChannelEndpointsController_listChannelEndpoints method: GET description: Novu List All Channel Endpoints inputParameters: - name: after in: query type: string required: false description: Cursor for pagination indicating the starting point after which to fetch results. - name: before in: query type: string required: false description: Cursor for pagination indicating the ending point before which to fetch results. - name: limit in: query type: number required: false description: Limit the number of items to return (max 100) - name: orderDirection in: query type: string required: false description: Direction of sorting - name: orderBy in: query type: string required: false description: Field to order by - name: includeCursor in: query type: boolean required: false description: Include cursor item in response - name: subscriberId in: query type: string required: false description: The subscriber ID to filter results by - name: contextKeys in: query type: array required: false description: 'Filter by exact context keys, order insensitive (format: "type:id")' - name: channel in: query type: string required: false description: Channel type to filter results. - name: providerId in: query type: string required: false description: Filter by provider identifier (e.g., sendgrid, twilio, slack, etc.). - name: integrationIdentifier in: query type: string required: false description: Integration identifier to filter results. - name: connectionIdentifier in: query type: string required: false description: Connection identifier to filter results. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ChannelEndpointsController_createChannelEndpoint method: POST description: Novu Create a Channel Endpoint inputParameters: - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-channel-endpoints-identifier path: /v1/channel-endpoints/{identifier} operations: - name: ChannelEndpointsController_getChannelEndpoint method: GET description: Novu Retrieve a Channel Endpoint inputParameters: - name: identifier in: path type: string required: true description: The unique identifier of the channel endpoint outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ChannelEndpointsController_updateChannelEndpoint method: PATCH description: Novu Update a Channel Endpoint inputParameters: - name: identifier in: path type: string required: true description: The unique identifier of the channel endpoint - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ChannelEndpointsController_deleteChannelEndpoint method: DELETE description: Novu Delete a Channel Endpoint inputParameters: - name: identifier in: path type: string required: true description: The unique identifier of the channel endpoint outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: novu-channel-endpoints-rest port: 8080 description: REST adapter for Novu API — Channel Endpoints. One Spectral-compliant resource per consumed operation. resources: - path: /v1/channel-endpoints name: v1-channel-endpoints description: REST surface for /v1/channel-endpoints. operations: - method: GET name: ChannelEndpointsController_listChannelEndpoints description: Novu List All Channel Endpoints call: novu-channel-endpoints.ChannelEndpointsController_listChannelEndpoints with: after: rest.after before: rest.before limit: rest.limit orderDirection: rest.orderDirection orderBy: rest.orderBy includeCursor: rest.includeCursor subscriberId: rest.subscriberId contextKeys: rest.contextKeys channel: rest.channel providerId: rest.providerId integrationIdentifier: rest.integrationIdentifier connectionIdentifier: rest.connectionIdentifier outputParameters: - type: object mapping: $. - method: POST name: ChannelEndpointsController_createChannelEndpoint description: Novu Create a Channel Endpoint call: novu-channel-endpoints.ChannelEndpointsController_createChannelEndpoint with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channel-endpoints/{identifier} name: v1-channel-endpoints-identifier description: REST surface for /v1/channel-endpoints/{identifier}. operations: - method: GET name: ChannelEndpointsController_getChannelEndpoint description: Novu Retrieve a Channel Endpoint call: novu-channel-endpoints.ChannelEndpointsController_getChannelEndpoint with: identifier: rest.identifier outputParameters: - type: object mapping: $. - method: PATCH name: ChannelEndpointsController_updateChannelEndpoint description: Novu Update a Channel Endpoint call: novu-channel-endpoints.ChannelEndpointsController_updateChannelEndpoint with: identifier: rest.identifier body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: ChannelEndpointsController_deleteChannelEndpoint description: Novu Delete a Channel Endpoint call: novu-channel-endpoints.ChannelEndpointsController_deleteChannelEndpoint with: identifier: rest.identifier outputParameters: - type: object mapping: $. - type: mcp namespace: novu-channel-endpoints-mcp port: 9090 transport: http description: MCP adapter for Novu API — Channel Endpoints. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-channel-endpoints description: Novu List All Channel Endpoints hints: readOnly: true destructive: false idempotent: true call: novu-channel-endpoints.ChannelEndpointsController_listChannelEndpoints with: after: tools.after before: tools.before limit: tools.limit orderDirection: tools.orderDirection orderBy: tools.orderBy includeCursor: tools.includeCursor subscriberId: tools.subscriberId contextKeys: tools.contextKeys channel: tools.channel providerId: tools.providerId integrationIdentifier: tools.integrationIdentifier connectionIdentifier: tools.connectionIdentifier outputParameters: - type: object mapping: $. - name: create-channel-endpoint description: Novu Create a Channel Endpoint hints: readOnly: false destructive: false idempotent: false call: novu-channel-endpoints.ChannelEndpointsController_createChannelEndpoint with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-channel-endpoint description: Novu Retrieve a Channel Endpoint hints: readOnly: true destructive: false idempotent: true call: novu-channel-endpoints.ChannelEndpointsController_getChannelEndpoint with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: update-channel-endpoint description: Novu Update a Channel Endpoint hints: readOnly: false destructive: false idempotent: true call: novu-channel-endpoints.ChannelEndpointsController_updateChannelEndpoint with: identifier: tools.identifier body: tools.body outputParameters: - type: object mapping: $. - name: delete-channel-endpoint description: Novu Delete a Channel Endpoint hints: readOnly: false destructive: true idempotent: true call: novu-channel-endpoints.ChannelEndpointsController_deleteChannelEndpoint with: identifier: tools.identifier outputParameters: - type: object mapping: $.