Subscribers belong to a page. Destinations are always masked in responses; the raw address is never returned by any endpoint. People subscribe through the public page or the public subscribe endpoint. See the subscribers guide.
List subscribers
/user/subscribersNeeds the subscribers.read permission, or an API key with the matching scope.
Query parameters
page_idintegerrequired- The status page to read from.
channelstringemail,sms,telegram,slack,discord,teamsorwebhook.quarantinedbooleantruefor addresses quarantined after bounces or complaints.limitintegerdefault 20- Rows per page, up to 100.
offsetintegerdefault 0- Rows to skip.
curl "https://api.statusbee.co/user/subscribers?page_id=4&channel=email" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"rows": [
{
"id": 1284,
"page_id": 4,
"workspace_id": 5,
"org_id": 5,
"channel": "email",
"destination": "m•••••@acmecorp.com",
"locale": null,
"verified_at": "2026-09-14T09:02:11.000Z",
"quarantined_at": null,
"created_at": "2026-09-14T09:02:11.000Z"
},
{
"id": 1283,
"page_id": 4,
"workspace_id": 5,
"org_id": 5,
"channel": "email",
"destination": "o••@customer-one.example",
"locale": null,
"verified_at": "2026-09-14T09:02:11.000Z",
"quarantined_at": null,
"created_at": "2026-09-14T09:02:11.000Z"
}
],
"count": 912,
"limit": 20,
"offset": 0
}
}Count subscribers
/user/subscribers/countsNeeds the subscribers.read permission, or an API key with the matching scope.
Query parameters
page_idintegerrequired- The status page to read from.
curl "https://api.statusbee.co/user/subscribers/counts?page_id=4" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"total": 1284,
"by_channel": [
{
"channel": "email",
"count": "912"
},
{
"channel": "slack",
"count": "201"
},
{
"channel": "sms",
"count": "133"
},
{
"channel": "webhook",
"count": "38"
}
]
}
}Import email subscribers
/user/subscribers/importUp to 1000 addresses per call, treated as already confirmed: you are vouching for their consent. Existing addresses are skipped. Email only.
Needs the subscribers.manage permission, or an API key with the matching scope.
Body
page_idintegerrequiredchannelstringrequired- Must be
email. destinationsarrayrequired- Email addresses.
curl -X POST "https://api.statusbee.co/user/subscribers/import" \
-H "Authorization: Bearer sb_live_…" \
-H "Content-Type: application/json" \
-d '{
"page_id": 4,
"channel": "email",
"destinations": [
"ops@customer-one.example",
"cto@customer-two.example"
]
}'{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"imported": 2,
"failed": []
}
}Delete a subscriber
/user/subscribers/:idHard delete, for data-protection requests. No undo.
Needs the subscribers.manage permission, or an API key with the matching scope.
Path parameters
idintegerrequired- Subscriber id.
curl -X DELETE "https://api.statusbee.co/user/subscribers/1284" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"deleted": 1
}
}