List conversations
List inbox threads, most recently active first. Filter by from (one of your addresses) and channel. Each conversation carries from, the address it was last handled from.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Query parameters
channelstringOnly threads that have carried this transport.
One ofsmssms_onewaywhatsapptelegramemailinstagrammessengervoicefromstringKeep only threads last handled from this address. Resolved like
fromonPOST /v2/messages, narrowed bychannelwhen given.searchstringIdentity search (number, email, username). Never message bodies.
Limitsmax length 120limitintegerDefault50Limitsmax 100cursorstringOpaque
nextCursorfrom the previous page.
Responses
200Threads, most recently active first (by relevance when `search` is set).
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).
channelstringrequiredA transport a message travels on.
One ofsmssms_onewaywhatsapptelegramemailinstagrammessengervoicedirectionstringrequiredOne ofinboundoutboundatstring<date-time>required
messageCountintegerrequiredunreadCountintegerrequiredInbound messages not yet marked read. Reset with POST /v2/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>requiredfromstringThe address this thread was last handled from, on the transport of its last message. Pass the conversation's
idasconversationIdonPOST /v2/messagesto reply from it. A thread opened by an API send before /v2 recorded no sender; itsfromis read off its messages.?from=on the list matches threads by the recorded sender only, which messages sent through /v2 record.
nextCursorstring
400Invalid query.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring
404`from` names no address of this project.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring