Status pages
Delete Status Page Subscriber
Permanently deletes a subscriber and its stored consent evidence. Requires admin or editor role.
DELETE /api/status-pages/:id/subscribers/:subscriberId
This is a hard delete, not the public one-click unsubscribe. The public unsubscribe link keeps the subscriber row with status: "unsubscribed" as proof that sending must stop; this endpoint exists to answer erasure requests (GDPR Art. 17), so it removes the row entirely, email address, consent timestamp, IP address, and user agent included.
Path Parameters
| Parameter | Description |
|---|---|
id | Status page ID or publicId (UUID) |
subscriberId | Subscriber ID (positive integer) |
Example (cURL)
curl -X DELETE "$BASE_URL/api/status-pages/db58058e-4b58-4d97-a314-3bb8e279a182/subscribers/42" \
-H "Authorization: Bearer $TOKEN"Response
{ "ok": true }Common errors
401 Unauthorizedwhen you are not authenticated400 User must belong to an organization(data.code: userMustBelongToOrg) when no organization can be derived from the session or token403 Forbiddenwhen your role is not admin or editor, or your customer scope does not include this status page400 Invalid Status page identifierwhenidis not a valid numeric ID or UUID (nodata.code)404 Status page not foundwhenidis well-formed but no status page has that ID (nodata.code)404 Status page not found(data.code: statusPageNotFound) whenidresolves to a real status page, but it belongs to a different organization, or is outside your customer scope400 Invalid subscriber id(data.code: invalidSubscriberId) whensubscriberIddoes not parse as a positive integer404 Subscriber not found(data.code: subscriberNotFound) whensubscriberIddoes not exist, or belongs to a different status page thanid
id is resolved and scope-checked before subscriberId is parsed, so a bad id is always the error you see first.