Create notification subscription
Send chosen events to a destination (Discord, Slack, Email, or Custom webhook), for example new creators or the daily digest. After you create it, call send_test_notification to check that the destination works. Pass idempotencyKey so a retry does not make a duplicate.
apiKeyAuthx-api-key<token>API key for authentication. Keys are prefixed with cops_.
application/json- body
channel*stringdiscord_webhook: a Discord channel webhook URL. slack_webhook: a Slack incoming-webhook URL. email: your own account email; needs personal: true. custom_webhook: any public https endpoint, signed with Standard Webhooks headers when a secret is set.
"discord_webhook""slack_webhook""email""custom_webhook"destination?stringThe webhook URL. Write-only: it is never returned. Not needed for a personal email subscription, which always sends to your account email.
eventTypes?array<>Event type keys from list_notification_event_types. An empty list sends every instant event, or with campaignIds every instant campaign event; a digest is sent only when listed.
[]eventOptions?Options for the event types in eventTypes, keyed by event type. The optionsSchema of each event type in list_notification_event_types gives its options and their defaults; an option you leave out uses its default.
{}campaignIds?array<string>Only send events about these campaigns (ids from list_campaigns). A campaign filter works only with event types whose scope is campaign in list_notification_event_types. An empty list means no filter.
[]secret?|custom_webhook only: the signing secret (whsec_ followed by base64 is recommended). Write-only; null removes it.
customHeaders?|custom_webhook only: extra request headers as name to value. Write-only; null removes them.
label?|Display name for the destination. The daily digest uses it as a title prefix.
personal?booleantrue: an email subscription owned by you, sent to your account email and hidden from other members. Required for the email channel.
falseidempotencyKey?stringAny unique string for this request. A retry with the same key returns the first result instead of doing it again.
1 <= length <= 200Response schema unavailable.
curl -X POST 'https://cops.app/api/brand/notifications/subscriptions' \ -H 'Content-Type: application/json' \ -d '{ "channel": "discord_webhook"}'List notification subscriptions GET
List where this organization sends notifications (Discord, Slack, Email, or Custom webhook) and which events each destination gets. Destinations show as a short preview; URLs and secrets are never returned.
Get notification subscription GET
Get one notification subscription by id, with its events, filters and last delivery result.