openapi: 3.2.0 info: title: Hookbase Notification Channels API version: 1.0.0 description: Official OpenAPI 3.0 specification for the Hookbase webhook relay platform. Generated from the maintained Postman collection. Authenticate with an API key (whr_ prefix) as a Bearer token. contact: name: Hookbase url: https://www.hookbase.app servers: - url: https://api.hookbase.app description: Production security: - bearerAuth: [] tags: - name: Notification Channels paths: /api/notification-channels: post: tags: - Notification Channels summary: Create notification channel operationId: notification_channels_create_notification_channel responses: '200': description: Successful response description: Create a notification channel used by routes and alert rules. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Required. Channel name. type: type: string description: Required. email | slack | webhook | teams | pagerduty | discord. config: type: object description: Required. Config keys by type — email:{emails:[...]}, slack/teams/discord:{webhookUrl}, webhook:{url, method?, secret?, headers?}, pagerduty:{routingKey, severity?}. required: - name - type - config example: name: Ops Slack type: slack config: webhookUrl: https://hooks.slack.com/services/REDACTED get: tags: - Notification Channels summary: List notification channels operationId: notification_channels_list_notification_channels responses: '200': description: Successful response description: List notification channels for the org. /api/notification-channels/{notificationChannelId}: get: tags: - Notification Channels summary: Get notification channel operationId: notification_channels_get_notification_channel parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: Fetch a single notification channel (secrets masked). patch: tags: - Notification Channels summary: Update notification channel operationId: notification_channels_update_notification_channel parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: Update a notification channel. All fields optional. requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: Optional. Channel name. config: type: object description: Optional. Config keys by type — email:{emails:[...]}, slack/teams/discord:{webhookUrl}, webhook:{url, method?, secret?, headers?}, pagerduty:{routingKey, severity?}. isActive: type: boolean description: Optional. Enable/disable the channel. example: name: Ops Slack config: webhookUrl: https://hooks.slack.com/services/REDACTED isActive: true delete: tags: - Notification Channels summary: Delete notification channel operationId: notification_channels_delete_notification_channel parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: Delete a notification channel by id. /api/notification-channels/{notificationChannelId}/test: post: tags: - Notification Channels summary: Test notification channel operationId: notification_channels_test_notification_channel parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: Send a test notification to verify the channel is configured correctly. /api/notification-channels/{notificationChannelId}/routes: post: tags: - Notification Channels summary: Link route to channel operationId: notification_channels_link_route_to_channel parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: Link a route to this channel so its events trigger notifications. requestBody: required: true content: application/json: schema: type: object properties: routeId: type: string description: Required. Route id to link (UUID). notifyOnFailure: type: boolean description: Optional. Notify on failure (default true). notifyOnSuccess: type: boolean description: Optional. Notify on success (default false). notifyOnRecovery: type: boolean description: Optional. Notify on recovery (default true). notifyOnCircuitOpen: type: boolean description: Optional. Notify when the circuit opens (default true). required: - routeId example: routeId: '{{routeId}}' notifyOnFailure: true notifyOnSuccess: false notifyOnRecovery: true notifyOnCircuitOpen: true get: tags: - Notification Channels summary: List channel routes operationId: notification_channels_list_channel_routes parameters: - name: notificationChannelId in: path required: true schema: type: string responses: '200': description: Successful response description: List routes linked to this channel. /api/notification-channels/{notificationChannelId}/routes/{routeId}: patch: tags: - Notification Channels summary: Update channel route link operationId: notification_channels_update_channel_route_link parameters: - name: notificationChannelId in: path required: true schema: type: string - name: routeId in: path required: true schema: type: string responses: '200': description: Successful response description: Update the notification triggers for a linked route. All fields optional. requestBody: required: false content: application/json: schema: type: object properties: notifyOnFailure: type: boolean description: Optional. Notify on failure. notifyOnSuccess: type: boolean description: Optional. Notify on success. notifyOnRecovery: type: boolean description: Optional. Notify on recovery. notifyOnCircuitOpen: type: boolean description: Optional. Notify when the circuit opens. example: notifyOnFailure: true notifyOnSuccess: false notifyOnRecovery: true notifyOnCircuitOpen: true delete: tags: - Notification Channels summary: Unlink route from channel operationId: notification_channels_unlink_route_from_channel parameters: - name: notificationChannelId in: path required: true schema: type: string - name: routeId in: path required: true schema: type: string responses: '200': description: Successful response description: Remove the link between a route and this channel. components: securitySchemes: bearerAuth: type: http scheme: bearer description: Hookbase API key with the whr_ prefix.