Endpoints
You may also see
kind: "system" on lists auto-managed by the platform. System lists are read-only — editing or deleting one returns 403 with error_code: "system_list_protected".
List Contact Lists
Query Parameters
Lists created inline for a blast never appear here — they are private to that blast and reachable only by
list_id.
List Request Example
List Response Example
member_count is a stored counter for static lists and null for dynamic lists — use the member-count endpoint for a live count of either kind.
Create a Contact List
Request Body
Returns
201 Created with the list object, or 409 Conflict with error_code: "contact_list_name_exists" when the name is taken.
Create Request Examples
A static list seeded with two members:Dynamic List Rules
Rules use the same segment rule tree as blast audiences: groups (and/or, nested up to 5 levels, at most 100 nodes) of conditions over contact fields, custom fields, activities, and static-list membership. Rule objects use camelCase keys, unlike the rest of the public API. See Audience Rules for the full condition reference, and call GET /v1/contact-fields/rule-metadata to discover the available fields and the operators each supports.
Get, Update, and Delete a List
GET returns the list object shown above. DELETE returns 204 No Content; the contacts themselves are not deleted.
Update Request Body
At least one field is required.kind cannot be changed.
Sending
rules for a static list returns 400 Bad Request. Returns 200 OK with the updated list object.
Update Request Example
List Members
Query Parameters
Members Request Example
Members Response Example
member_added_at is null for dynamic-list members — dynamic membership is computed, not recorded.
Add and Remove Members
400 Bad Request. Both take the same body:
Adding returns
404 if the list or any referenced contact does not exist. Contacts already in the list are counted, not duplicated.
Add Members Request Example
Add Members Response Example
{"removed_count": 1}.
Member Counts
member_count: null.
blocked_count is the number of members currently blocked from marketing sends (unsubscribed contacts).
Export Members to CSV
202 Accepted with an export job. Poll the job until status is completed, then fetch the file from its presigned download_url:
status moves pending → processing → completed, with failed as the error exit (see error_message). download_url is populated once the job completes and is signed with a limited lifetime — download promptly rather than storing the URL.
Common Request Errors
Back to API Overview
Review the full Tented API endpoint map.