403. You also need an access token with the scopes below.
The endpoints exist on v1 only, under /v1/chats/lists/dynamic*, with a creator-scoped twin under /v1/creators/{creatorUserUuid}/chats/lists/dynamic* for agencies. Spend values in a definition are USD cents.
Scopes
The definition
A definition hasversion, match (always "any"), one or more groups each holding one or more conditions, and an optional exclude array of conditions. A condition is { dimension, operator, value }, and the dimensions manifest in the next section tells you which dimensions exist and which operators and value types each accepts.
Read the dimensions
Fetch the manifest before you build a definition:Preview a definition
Check how many fans a definition matches before you save it.POST /v1/chats/lists/dynamic/preview/count takes { definition } and returns { count, exact }. count is null when the evaluation didn’t resolve, and exact is false when the count is a capped estimate.
POST /v1/chats/lists/dynamic/preview/members takes the same definition plus limit and returns { members, unavailable }. unavailable is true when the preview couldn’t be resolved in time, so retry rather than treating the list as empty.
Translate a description
If you’d rather start from words than conditions,POST /v1/chats/lists/dynamic/translate takes { description }, a plain-language audience description, and returns { name, spec, notes }:
specis a definition you can preview or save as is.nameis a suggested list name, when one could be inferred.noteslists assumptions made or parts of the description ignored.
Create a list
POST /v1/chats/lists/dynamic takes { name, icon, definition } and returns 201 with { uuid, name }. icon is optional, up to 16 characters. A name the creator already uses returns 409.
GET /v1/chats/lists/dynamic returns each list with uuid, name, icon, createdAt, updatedAt, membersCount, membersCountExact and valid. valid is false when the stored definition uses a dimension the account can no longer filter on, so update the definition before you target the list.
Read the members
GET /v1/chats/lists/dynamic/{uuid}/members returns the fans matching the stored definition in a stable order, in a { data, nextCursor, unavailable } envelope. Pagination is keyset with cursor only, and there’s no size parameter; pass the previous nextCursor until it is null. Each member carries uuid, displayName and handle.
Target a dynamic list in a mass message
Mass messages accept dynamic list UUIDs inincludedLists.dynamicSmartListUuids and excludedLists.dynamicSmartListUuids, on v0 and v1. Membership is resolved at send time.