List an audience's contacts
/v1/audiences/{audience_id}/contactsfor await (const member of bird.audiences.listContacts("adn_01krdgeqcxet5s7t44vh8rt9mg")) {
console.log(member.contact.id, member.joined_at);
}for member in client.audiences.list_contacts("adn_01krdgeqcxet5s7t44vh8rt9mg"):
print(member.contact.email, member.joined_at)for member, err := range client.Audiences.ListContacts(context.Background(), "adn_123", bird.AudienceListContactsParams{Limit: 50}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(member.Contact.Id, member.Contact.Email)
}foreach ($bird->audiences->listContacts('adn_01krdgeqcxet5s7t44vh8rt9mg') as $member) {
echo $member->getContact()?->getId(), ' ', $member->getJoinedAt()?->format(DATE_ATOM), "\n";
}bird audiences list-contacts <audience-id>curl -X GET "https://us1.platform.bird.com/v1/audiences/{audience_id}/contacts" \
-H "Authorization: Bearer $TOKEN" \
--url-query "q=acme.com" \
--url-query "limit=25"{
"data": [
{
"contact": {
"id": "con_01krdgeqcxet5s7t44vh8rt9mg",
"audiences": [
{
"id": "adn_01krdgeqcxet5s7t44vh8rt9mg"
}
],
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-25T16:42:01Z"
},
"audiences": [
{
"id": "adn_01krdgeqcxet5s7t44vh8rt9mg"
}
]
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.
Parametri
audience_idstringID of the audience whose contacts to list.
Parametri di query
qstringCase-insensitive substring match against a contact's email address or the digits in its international phone number.
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
Payload di risposta
dataPage of audience members, each a contact paired with the time it joined the audience.
Mostra attributi secondari
data.contactMostra attributi secondari
data.contact.idID of the contact, accepted by every operation that takes a contact_id.
data.contact.emailThe contact's email address, in its stored form, trimmed and lowercased before uniqueness is checked. Unique within the workspace. null when the contact has no email address.
data.contact.phone_numberThe contact's phone number in normalized international form: a leading + and four to 15 digits. We normalize formatting but do not verify the number against numbering-plan metadata. The number is unique within the workspace. Because carriers recycle disconnected numbers, use external_id as the durable key for your own records. null when the contact has no phone number.
data.contact.first_nameThe contact's first name. Available in broadcast templates as bird.contact.first_name.
data.contact.last_nameThe contact's last name. Available in broadcast templates as bird.contact.last_name.
data.contact.external_idYour own identifier for this contact, such as a user ID in your system. Unique within the workspace when set.
data.contact.dataCustom property values for this contact, available in broadcast templates as bird.contact.<key>. Each key is a property created via the contact properties API, and each value is a string, number, boolean, or RFC 3339 datetime matching the property's declared type (strings up to 500 characters). Total size is capped at 2 KB serialized. Values stored under a property that was later archived remain readable here.
data.contact.audiencesThe audiences this contact belongs to, most-recently-joined first. Only present when listing contacts; omitted from every other contact operation.
Mostra attributi secondari
data.contact.audiences.idID of the referenced audience.
data.contact.audiences.nameThe audience's display name.
data.contact.created_atdata.contact.updated_atdata.joined_atWhen this contact joined the audience. Members are listed in join order, most recent first.
data.audiencesThe audiences this contact belongs to, including the one being listed, most-recently-joined first.
Mostra attributi secondari
data.audiences.idID of the referenced audience.
data.audiences.nameThe audience's display name.
next_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Risorse correlate
Continua con la documentazione, le guide e gli esempi per questo argomento.