Subscriber permissions
Permissions are subscriber consent types. A user can be subscribed to "news" but not "marketing". Broadcasts are filtered by permission, and a subscriber can opt out of a specific type without unsubscribing entirely.
Creating a permission
A permission is created once per project. key is the machine identifier, title is the label shown to the subscriber.
key string requiredIdentifier: latin, digits, _
title string requiredLabel shown to the subscriber
Filtering broadcasts by permission
Pass permission to /v1/broadcast — the message reaches only subscribers who have that permission (or those with no permissions set at all).
Opting out of a permission
Removing a permission from a subscriber is a partial unsubscribe. They stop receiving that broadcast type but stay active for the rest. A subscription.permission_changed webhook is sent.
Bulk removal — POST /v1/subscribers/{id}/permissions/bulk-remove with an array of keys. Current subscriber permissions — GET /v1/subscribers/{id}/permissions.
Deleting a permission
DELETE /v1/permissions/{key} removes the permission from the project. Via the API, deletion is allowed only when no active subscribers hold the permission.
If active subscribers hold the permission, the API returns 409 Conflict with code permission_has_subscribers. Deleting a permission that still has active subscribers is only available via the dashboard, where it cascades the removal across all subscribers.