Notification Channels

Configure where alert notifications are sent (webhook, Slack, Discord, or email).

Notification channels define where alerts are delivered. hookstream supports four channel types: webhook (with optional HMAC signing), Slack, Discord, and email. When an alert rule triggers, hookstream sends a notification to each configured channel with the alert details.

List Channels

GET /v1/notification-channels

List all notification channels.

Authentication: API key or session cookie.

json
{ "channels": [ { "id": "nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2", "name": "Ops Slack", "type": "webhook", "config": { "url": "https://hooks.slack.com/services/T.../B.../xxx" }, "created_at": "2026-02-28T10:00:00Z" } ] }

Create Channel

POST /v1/notification-channels

Create a new notification channel.

Authentication: API key or session cookie.

Body Parameters

name string required

Display name for the channel.

channel_type string required

Channel type: webhook, slack, discord, or email.

config object required

Channel configuration. For webhook: { url: string, secret?: string }. If secret is provided, requests are signed with HMAC-SHA256.

bash
curl -X POST https://hookstream.io/v1/notification-channels \ -H "X-API-Key: $HOOKSTREAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Ops Slack", "channel_type": "webhook", "config": { "url": "https://hooks.slack.com/services/T.../B.../xxx" } }'
json
{ "id": "nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2", "name": "Ops Slack", "type": "webhook", "config": { "url": "https://hooks.slack.com/services/T.../B.../xxx" }, "created_at": "2026-03-01T12:00:00Z" }

Retrieve Channel

GET /v1/notification-channels/:id

Get a single notification channel by ID.

Authentication: API key or session cookie.

json
{ "id": "nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2", "name": "Ops Slack", "type": "webhook", "config": { "url": "https://hooks.slack.com/services/T.../B.../xxx" }, "created_at": "2026-02-28T10:00:00Z", "updated_at": "2026-03-01T08:00:00Z" }

Update Channel

PATCH /v1/notification-channels/:id

Update a notification channel.

Authentication: API key or session cookie.

bash
curl -X PATCH https://hookstream.io/v1/notification-channels/nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2 \ -H "X-API-Key: $HOOKSTREAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "Ops PagerDuty"}'
json
{ "id": "nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2", "name": "Ops PagerDuty", "type": "webhook", "updated_at": "2026-03-01T15:00:00Z" }

Delete Channel

DELETE /v1/notification-channels/:id

Delete a notification channel. Alert rules referencing it must be updated first.

Authentication: API key or session cookie.

json
{ "deleted": true }

Test Channel

POST /v1/notification-channels/:id/test

Send a test notification to verify the channel is working.

Authentication: API key or session cookie.

bash
curl -X POST https://hookstream.io/v1/notification-channels/nc_a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2/test \ -H "X-API-Key: $HOOKSTREAM_API_KEY"
json
{ "success": true, "error": null }
Ask a question... ⌘I