Show unsubscribe status
Overview
Decodes the tamper-proof, server-encrypted UnsubscribeToken from a campaign-email unsubscribe link and returns the masked recipient address plus whether they are already on the suppression list. Render-only — no state change. A generic the endpoint returns 404 for any invalid/expired token so the response never reveals whether a specific address or token is valid.
Prerequisites
- No authentication — this endpoint is public.
- The
unsubscribeTokenof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/campaign/email/unsubscribe/{unsubscribeToken}
Authentication
-
No bearer token required.
-
Public — no bearer token (unauthenticated
campaigngroup; item markednoauth). Reached from the unsubscribe link in customizable emails.
Rate limit
- 30 requests/min per IP (public).
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
unsubscribeToken | string | Required | Identifier for the record you are targeting. |
How it works
- 200 (success)
email_maskedshows only the first local-part character (e.g.j***@example.com);already_unsubscribedis true when the address is on theblacklistssuppression list. - 404 (
notFoundResponse) "Invalid or expired unsubscribe link." for any bad/expired token.
Response
200 OK · 200
200{
"data": {
"status": "success",
"data": {
"email_masked": "j***@example.com",
"already_unsubscribed": false
}
}
}404 Invalid token · 404
404{
"status": "error",
"message": "Invalid or expired unsubscribe link.",
"errors": []
}Errors
| Status | Meaning |
|---|---|
404 | Invalid token |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/campaign/email/unsubscribe/<unsubscribeToken>" \
--header 'Accept: application/json'Updated 16 days ago
Did this page help you?
