Skip to content

List WhatsApp conversations

get /v1/whatsapp

One conversation per chat of a company seller, from WhatsApp Web or RD Conversas. Ordered by last_message_at ascending (oldest activity first); pages forward with a signed keyset cursor. last_message_at moves only when a message arrives: an edit or a deletion does not move the conversation, so re-read messages to observe them. Message content lives under /v1/whatsapp/{whatsapp_id}/messages and needs whatsapp.content.read. account_id keeps the conversations linked to that account. team_id keeps only the conversations of WhatsApp numbers a team member connected directly: RD Conversas chats have no owner, so they are left out whenever team_id is present.

Requires the whatsapp.read scope.

NameTypeRequiredDescription
limitintegerNoRecords per page, 1 to 100. A page may return fewer than this while has_more is still true; drive the loop by has_more, not by the size of data.
cursorstringNoSigned cursor returned by the previous page.
last_message_afterstring date-timeNoReturn conversations whose latest message is after this instant. Filters on activity, not on record changes: a conversation that gains a message moves forward and will be seen again.
last_message_beforestring date-timeNoReturn conversations whose latest message is before this instant.
account_idstringNoReturn only records linked to this account. Take the id from GET /v1/accounts or from an accounts field. An id the company never issued, or one issued to another company, yields an empty page, not an error; a malformed id is a 400 INVALID_FILTER.
team_idstringNoReturn only records owned by a member of this team. Members are the sellers whose default team it is: a seller in several teams counts for their default team only. Take the id from GET /v1/teams. An id the company never issued, one issued to another company, or a team with no members yields an empty page, not an error; a malformed id is a 400 INVALID_FILTER.
Terminal window
curl "https://api.salesbud.com.br/v1/whatsapp?limit=...&cursor=..." \
-H "Authorization: Bearer $SALESBUD_ACCESS_TOKEN"
200 OK
{
"data": [
{
"id": "wa_01JEXAMPLE",
"object": "whatsapp_conversation",
"source": "whatsapp_web",
"is_group": false,
"contact": {
"phone": "+5511999990001",
"name": "Cliente Exemplo"
},
"seller": {
"user": {
"id": "usr_01JEXAMPLE",
"name": "Vendedora Exemplo",
"email": "vendedora@example.com"
},
"phone": "+5511988880001"
},
"accounts": [
{
"id": "acc_01JEXAMPLE",
"name": "Example Ltda",
"domain": "example.net",
"cnpj": "00.000.000/0001-00"
}
],
"first_message_at": "2026-09-10T12:00:00.000Z",
"last_message_at": "2026-09-12T15:30:00.000Z",
"last_message_direction": "inbound",
"deleted_at": null,
"deleted_reason": null
},
{
"id": "wa_01JGROUP",
"object": "whatsapp_conversation",
"source": "whatsapp_web",
"is_group": true,
"contact": {
"phone": null,
"name": "Grupo Vendas Exemplo"
},
"seller": {
"user": {
"id": "usr_01JEXAMPLE",
"name": "Vendedora Exemplo",
"email": "vendedora@example.com"
},
"phone": "+5511988880001"
},
"accounts": [],
"first_message_at": "2026-09-11T09:00:00.000Z",
"last_message_at": "2026-09-12T18:00:00.000Z",
"last_message_direction": "outbound",
"deleted_at": null,
"deleted_reason": null
}
],
"pagination": {
"limit": 50,
"has_more": true,
"next_cursor": "cur_ExampleCursor04"
},
"request_id": "req_ExampleRequestId01"
}
StatusDescription
200Company-scoped WhatsApp conversation page.
400Invalid request.
401Missing or invalid credentials.
403The token lacks the required scope, its user owner lost matching product access, or a connector awaits administrator approval. API_ACCESS_DISABLED identifies the feature gate for manual clients and third-party OAuth apps; AI_COLLABORATORS_DISABLED identifies the gate for first-party OAuth apps. For partner credentials, the gate also requires an active partner and the required published module, and applies to previously issued tokens.
429Client rate limit exceeded.
503A required audit or rate-limit dependency is unavailable.