List conversations
List inbox threads, most recently active first. A conversation groups every message with one contact across channels, which is what you need to build an inbox: GET /v1/messages returns a flat log with no thread to hang it on.
Use senderId to scope the list to a single number, and channel to keep only threads that have carried that channel.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Query parameters
channelstringKeep only threads that have carried this channel.
One ofsmssms_onewaywhatsappemailtelegraminstagrammessengervoicesenderIdstringKeep only threads last handled by this sender.
searchstringSearch threads by identity: phone number (any format —
+1 (555) 123-4567and15551234567both match), email address (full or local part), WhatsApp username, or BSUID. Matching is by whole word, with prefix matching on the last term, somarfindsmaria@example.comand+1555finds+15551234567; a fragment from the middle or end of a number (4567) does not match.It does not search message bodies — only who the thread is with.
Results come back ranked by relevance rather than by recency, so the usual "most recently active first" ordering does not apply while
qis set.senderIdandchannelstill narrow the results, andcursorpaginates them as usual. An empty or whitespace-onlyqreturns no items rather than the full list.Limitsmin length 1 · max length 120limitintegerDefault50Limitsmax 100cursorstringOpaque cursor from a previous response's
nextCursor. Do not construct it.
Responses
200List of conversations.
itemsobject[]required12 properties
idstringrequiredcontactIdstringID of the contact this thread belongs to. Absent on group threads and on threads whose contact has not been resolved yet.
contactIdentifierstringrequiredThe key this thread is filed under: a phone number in E.164, a WhatsApp business-scoped user ID (BSUID), or a numeric chat ID (Telegram/Instagram/Messenger). It is not always a phone number, so do not parse it as one.
emailstringEmail address of the thread, when the contact was reached by email.
channelsstring[]requiredEvery channel this thread has carried messages on.
lastMessageobjectrequiredDenormalized preview of the most recent message, so a thread list needs no extra fetch.
5 properties
idstringrequiredtextstringrequiredText or caption. Empty when the last message carried no text (e.g. media).
channelstringrequiredDelivery channel. Use 'auto' for intelligent routing.
One ofautosmssms_onewaywhatsapptelegramemailinstagrammessengervoicedirectionstringrequiredOne ofinboundoutboundatstring<date-time>required
senderIdstringSender that last handled this thread. Use it as the
Zavu-Senderheader when replying so the answer leaves from the same number the contact knows.messageCountintegerrequiredunreadCountintegerrequiredInbound messages not yet marked read. Reset with POST /v1/conversations/{conversationId}/read.
whatsappobjectWhatsApp identity, present when the contact adopted a username.
2 properties
bsuidstringBusiness-scoped user ID. Can be used as
towhen sending.usernamestring
createdAtstring<date-time>requiredupdatedAtstring<date-time>required
nextCursorstring
400Invalid query parameters.
codestringrequiredmessagestringrequireddetailsobject
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobject