Skip to content
Open app

/channels (POST)

POST
/channels
curl --request POST \
--url https://culipulse.dev/v1/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "type": "webhook", "name": "example", "url": "example", "all_monitors": true, "monitor_ids": [ "example" ] }'
Media typeapplication/json

An account can have up to 20 notification destinations (all types). A create beyond that returns 400 channel_limit_reached. A webhook URL already used by another of your destinations returns 400 duplicate_webhook_url; this is checked before the test delivery is sent.

object
type

Telegram (default), slack or webhook.

string
Example
webhook
name
string
url

Webhook only. Must be https. A test delivery is sent before the channel is saved.

string
all_monitors

Defaults to true.

boolean
monitor_ids

Used when all_monitors is false. Duplicates and ids that are not yours are ignored. An empty list is allowed and means the channel receives nothing (a mute). More distinct ids than your plan’s monitor limit (or than the monitors you own, if that is higher) returns 400 too_many_monitors.

Array<string>

Created

Media typeapplication/json
object
id
required
string
signing_secret

Webhook only. Returned once, at create. Store it now.

string
deep_link

Telegram only. Open it to finish connecting.

string
group_deep_link

Telegram only.

string
authorize_url

Slack only. Open it to finish connecting.

string
Examplegenerated
{
"id": "example",
"signing_secret": "example",
"deep_link": "example",
"group_deep_link": "example",
"authorize_url": "example"
}

Invalid request, or a limit was hit (code: channel_limit_reached at 20 destinations, too_many_monitors, duplicate_webhook_url)

Media typeapplication/json
object
error
required
string
request_id
string
code

Present on some 400s so a client can branch without parsing error. Known values: channel_limit_reached, too_many_monitors, duplicate_webhook_url.

string
field

The request field the error is about, when there is one.

string
limit

The limit that was hit, when code names one.

integer
Example
{
"error": "not found",
"request_id": "req_abc123",
"code": "channel_limit_reached"
}