List the messages of a WhatsApp conversation
get /v1/whatsapp/{whatsapp_id}/messages
Messages in the order they were sent, oldest first, with sanitized text, media metadata (no media content) and the audio transcription when one exists. A message deleted for everyone stays in place as a tombstone with deleted_at set and every content field null; an edited message carries its current text and edited_at. Governed by the whatsapp_content rate-limit policy in addition to the client and company policies. The cursor is a keyset over (sent_at, id) bound to the conversation.
Authorization
Section titled “Authorization”Requires the whatsapp.read and whatsapp.content.read scopes together.
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
whatsapp_id | string | Yes | — |
Query parameters
Section titled “Query parameters”| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Records 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. |
cursor | string | No | Signed cursor returned by the previous page. |
Example request
Section titled “Example request”curl "https://api.salesbud.com.br/v1/whatsapp/mtg_01JEXAMPLE/messages?limit=...&cursor=..." \ -H "Authorization: Bearer $SALESBUD_ACCESS_TOKEN"Example response
Section titled “Example response”{ "data": [ { "id": "wamsg_01JEXAMPLE1", "object": "whatsapp_message", "conversation_id": "wa_01JEXAMPLE", "sent_at": "2026-09-12T15:30:00.000Z", "direction": "inbound", "author": { "phone": "+5511999990001", "name": "Cliente Exemplo" }, "type": "text", "text": "Pode me mandar a proposta?", "media": null, "transcription": null, "edited_at": null, "deleted_at": null, "deleted_reason": null }, { "id": "wamsg_01JEXAMPLE2", "object": "whatsapp_message", "conversation_id": "wa_01JEXAMPLE", "sent_at": "2026-09-12T15:32:00.000Z", "direction": "outbound", "author": { "phone": "+5511988880001", "name": "Vendedora Exemplo" }, "type": "audio", "text": null, "media": { "file_name": null, "mime_type": "audio/ogg; codecs=opus", "size_bytes": 48213 }, "transcription": "Claro, envio ainda hoje por e-mail.", "edited_at": null, "deleted_at": null, "deleted_reason": null }, { "id": "wamsg_01JEXAMPLE3", "object": "whatsapp_message", "conversation_id": "wa_01JEXAMPLE", "sent_at": "2026-09-12T15:35:00.000Z", "direction": "inbound", "author": { "phone": "+5511999990001", "name": "Cliente Exemplo" }, "type": "text", "text": null, "media": null, "transcription": null, "edited_at": null, "deleted_at": "2026-09-12T15:36:00.000Z", "deleted_reason": "revoked_for_everyone" } ], "pagination": { "limit": 50, "has_more": false, "next_cursor": null }, "request_id": "req_ExampleRequestId01"}Responses
Section titled “Responses”| Status | Description |
|---|---|
200 | Company-scoped WhatsApp message page. |
400 | Invalid request. |
401 | Missing or invalid credentials. |
403 | The token does not contain the required scope. |
404 | Resource not found in the authenticated company. |
429 | Client rate limit exceeded. |
503 | A required audit or rate-limit dependency is unavailable. |