Subscriptions

Full reference for the Subscriptions resource in the bluefox.email API. See the API overview for authentication, the response envelope, and pagination.

List subscribers of a list

GET /v1/subscriber-lists/{id}

Legacy flat URL shape. Auth: API key (Authorization: Bearer) matching the list's project, OR an admin/account-owner JWT.
Unlike GET /v1/projectId/{projectId}/contacts (where custom field values are flat top-level keys), here they are
returned nested under a "customFields" object, e.g. { "email": "x@y.com", "customFields": { "plan": "pro" } }.

Parameters

NameInTypeRequiredDescription
idpathstringyesThe subscriber list _id.

Responses

StatusDescription
200OK
403Missing or invalid API key

Response body

FieldTypeRequiredDescription
itemsarray of object
items[].emailstring
items[].statusstring (unverified | active | unsubscribed | paused)
items[].customFieldsobjectCustom contact field values, keyed by field name.
countintegerTotal matching items across all pages, not just this page.
nextstringFull URL (path + query string) of the next page, or null if this is the last page.

Subscribe a contact to a list

POST /v1/subscriber-lists/{id}

Legacy flat URL shape. Creates the contact if it doesn't exist yet. Triggers double opt-in if enabled on the list. Auth: API key, or a whitelisted Origin (in which case a CAPTCHA is required unless the list disables it).

Parameters

NameInTypeRequiredDescription
idpathstringyesThe subscriber list _id.

Request body

FieldTypeRequiredDescription
emailstringyes
namestring
statusstring (unverified | active)
captchaTextstring
captchaProbestring

Responses

StatusDescription
201Created
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
405The operation is blocked by a business rule (e.g. the resource is still in use)

Response body

FieldTypeRequiredDescription
statusstring
emailstring

Get a subscriber by email

GET /v1/subscriber-lists/{id}/{email}

Legacy flat URL shape. Accepts an API key or a whitelisted Origin header.
Unlike GET /v1/projectId/{projectId}/contacts/{email} (where custom field values are flat top-level keys), here they
are returned nested under a "customFields" object, e.g. { "email": "x@y.com", "customFields": { "plan": "pro" } }.

Parameters

NameInTypeRequiredDescription
idpathstringyesThe subscriber list _id.
emailpathstringyes

Responses

StatusDescription
200OK
403Missing or invalid API key
404Subscriber not found

Response body

FieldTypeRequiredDescription
emailstring
statusstring (unverified | active | unsubscribed | paused)
customFieldsobjectCustom contact field values, keyed by field name.

Update a subscriber (status, contact fields, pause/resubscribe)

PATCH /v1/subscriber-lists/{id}/{email}

Legacy flat URL shape. Setting status to "paused" requires pausedUntil (a future date). Accepts an API key or a whitelisted Origin header.

Parameters

NameInTypeRequiredDescription
idpathstringyesThe subscriber list _id.
emailpathstringyes

Request body

FieldTypeRequiredDescription
emailstring
statusstring (active | paused | unsubscribed)
pausedUntilstring

Responses

StatusDescription
200OK
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
404Subscriber not found
405The operation is blocked by a business rule (e.g. the resource is still in use)

One-click unsubscribe

POST /v1/subscriber-lists/{id}/{email}/unsubscribe

Legacy flat URL shape. Not API-key authenticated - requires a signed one-click-unsubscribe token (the ?token= query param from a dispatched email's List-Unsubscribe link).

Parameters

NameInTypeRequiredDescription
idpathstringyesThe subscriber list _id.
emailpathstringyes
tokenquerystringyes

Responses

StatusDescription
200OK
403Missing or invalid API key
404Subscriber not found

Submit a hosted/embedded signup form

POST /v1/signup-forms/{id}

Legacy flat URL shape. Not API-key authenticated - requires a whitelisted Origin header, and (depending on the form config) a CAPTCHA. Subscribes the contact to every list configured on the form.

Parameters

NameInTypeRequiredDescription
idpathstringyesThe signup form _id.

Request body

FieldTypeRequiredDescription
emailstringyes
namestring
captchaTextstring
captchaProbestring
turnstileTokenstring
termsAcceptedboolean

Responses

StatusDescription
201OK
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
405The operation is blocked by a business rule (e.g. the resource is still in use)

Response body

FieldTypeRequiredDescription
successboolean
redirectTostring