Skip to content

Email Preferences​

Public, token-authorised unsubscribe and resubscribe for any address FundlyHub mails, including guest donors with no account.


Preview an unsubscribe link​

GET
/unsubscribe/preview

Validates the signed token from an email's unsubscribe link and says which (masked) address and which scope it would silence. Changes nothing.

No authentication: the signed token is the authorisation. Rate limited at 300 requests/minute per IP.

Parameters​

Query Parameters

token*
Type
string
Required

Responses​

The token is valid

application/json
JSON
{
"data": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Unsubscribe​

POST
/unsubscribe

Suppresses mail to the token's address for the token's scope, or for everything when all is true. Idempotent.

No authentication: the signed token is the authorisation. No feature flag can switch this off. Rate limited at 10 requests/minute per IP.

Request Body​

application/json
JSON
"string"

Responses​

Unsubscribed

application/json
JSON
{
"data": "string"
}

Playground​

Server
Body

Samples​


Resubscribe​

POST
/unsubscribe/resubscribe

Lifts the suppression for the token's address and scope (or for all). The undo for POST /unsubscribe.

No authentication: the signed token is the authorisation. Rate limited at 10 requests/minute per IP.

Request Body​

application/json
JSON
"string"

Responses​

Resubscribed

application/json
JSON
{
"data": "string"
}

Playground​

Server
Body

Samples​


Request a fresh unsubscribe link​

POST
/unsubscribe/request

Mails a new signed unsubscribe link to email — the repair path for old emails whose link carried no token. Sent only to an address FundlyHub has previously mailed, at most once per address per hour.

Always answers { "data": { "sent": true } }, whatever happened, so it cannot be used to test whether an address is known.

No authentication. Rate limited at 10 requests/minute per IP.

application/json
JSON
{
"email": "string"
}

Accepted

application/json
JSON
{
"data": {
"sent": true
}
}
Server
Body

Powered by VitePress OpenAPI

Built with VitePress