List contacts
List contacts with their communication channels.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Query parameters
phoneNumberstringExact match on the contact's primary phone number, in E.164.
searchstringFree-text match over the contact's name (
displayNameand the WhatsApp profile name), phone numbers and email addresses. Case- and accent-insensitive. A phone number matches on a trailing fragment too, so5551234finds+14155551234.Contacts created automatically from an inbound message have no
displayName— they are matched by their identifier until you set one withPATCH /v1/contacts/{contactId}.Results come back in relevance order rather than newest-first.
cursoris opaque in both modes; pass back exactly what the previous response returned, and start a new pagination run when the search term changes.Limitsmax length 200bsuidstringExact WhatsApp business-scoped user ID (e.g.
CO.13491208655302741918). Returns the contact that holds it, or an empty list. Combines withphoneNumberandtagas a filter, and cannot be combined withsearch(400). A value that is not shaped like a BSUID returns 400.tagstring[]Tag name. Repeatable:
?tag=vip&tag=chilereturns contacts carrying every tag given, not any of them — the same rule the dashboard filter applies.Tags are matched by name, case-insensitively. An unknown tag returns 400 rather than being ignored, because a typo that silently matched every contact would be a worse answer than an error.
limitintegerDefault50Limitsmax 100cursorstringOpaque cursor from a previous response's
nextCursor. Do not construct it.
Responses
200List of contacts.
itemsobject[]required15 properties
idstringrequireddisplayNamestringDisplay name for the contact.
phoneNumberstringDEPRECATED: Use primaryPhone instead. Primary phone number in E.164 format.
primaryPhonestringPrimary phone number in E.164 format.
primaryEmailstring<email>Primary email address.
countryCodestringprofileNamestringContact's WhatsApp profile name. Only available for WhatsApp contacts.
whatsappobjectWhatsApp identity. Present when Zavu has a business-scoped user ID (BSUID) for the contact, and absent otherwise. A contact with a username can be reached under its BSUID, its phone number, or both; they are the same contact. Look one up by BSUID with the
bsuidquery parameter of the list endpoint.2 properties
bsuidstringrequiredBusiness-scoped user ID. Can be used as
towhen sending.usernamestringThe WhatsApp username, when Meta reported one.
availableChannelsstring[]requiredList of available messaging channels for this contact.
defaultChannelstringPreferred channel for this contact.
One ofsmswhatsapptelegramemailinstagrammessengervoiceverifiedbooleanrequiredWhether this contact has been verified.
channelsobject[]All communication channels for this contact.
12 properties
idstringrequiredchannelstringrequiredChannel type.
One ofsmswhatsappemailtelegraminstagrammessengervoiceidentifierstringrequiredChannel identifier (phone number or email address).
countryCodestringISO country code for phone numbers.
labelstringOptional label for the channel.
isPrimarybooleanrequiredWhether this is the primary channel for its type.
verifiedbooleanrequiredWhether this channel has been verified.
metricsobjectDelivery metrics for this channel.
5 properties
successCountintegerfailureCountintegertotalAttemptsintegeravgDeliveryTimeMsnumberlastSuccessAtstring<date-time>
lastInboundAtstring<date-time>Last time a message was received on this channel.
metadataobject1 properties
{key}string
createdAtstring<date-time>requiredupdatedAtstring<date-time>
metadataobjectrequired1 properties
{key}string
createdAtstring<date-time>requiredupdatedAtstring<date-time>
nextCursorstring
400Invalid query parameters (`invalid_request`): `limit` outside 1-100, a malformed cursor, or a `tag` that names no tag in this project — `details.unknownTags` lists them.
codestringrequiredmessagestringrequireddetailsobject
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobject