Lists API
Manage audiences and their membership.
View as Markdown ↗Project key. Acts in the project the key belongs to. An all-access key works too — name the project with an X-Project-Id header. How keys and scopes work.
Endpoints
GET
/v1/listsPOST
/v1/listsGET
/v1/lists/{id}PATCH
/v1/lists/{id}DELETE
/v1/lists/{id}GET
/v1/lists/{id}/contactsPOST
/v1/lists/{id}/contactsDELETE
/v1/lists/{id}/contacts/{contact_id}Create & manage
Body parameters
namestringrequiredDisplay name for the list.
descriptionstringoptionalOptional description.
double_optinbooleanoptionalRequire email confirmation for new members. Defaults to false. See double opt-in below.
cURL
curl -X POST https://emailbump.com/api/v1/lists \
-H "Authorization: Bearer ebk_your_key" \
-H "Content-Type: application/json" \
-d '{ "name": "Newsletter", "double_optin": true }'Membership
Add a contact by id or email (this fires any list-join automations):
cURL
curl -X POST https://emailbump.com/api/v1/lists/LIST_ID/contacts \
-H "Authorization: Bearer ebk_your_key" \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]" }'You can also add a contact to lists when you create it, via list_ids on POST /v1/contacts.
Double opt-in
Set double_optin: true on a list to require confirmed subscription. It's a per-list setting — each list confirms independently; there's no single global confirmation.
- Adding a contact to a double-opt-in list enrols them as
pendingand emails them a confirmation link (subject: "Please confirm your subscription to {list name}"). - They become an active member — and the list-join automation fires — only when they click the link. Re-adding a contact who is already pending or confirmed does not re-send.
- Campaigns to the list send only to
confirmedmembers;pendingand per-listunsubscribedcontacts are excluded. - Confirmation and per-list unsubscribe are hosted pages (
/list-confirm/{token},/list-unsubscribe/{token}) — no extra API calls needed.