List email conversations
get /v1/emails
Conversations are deduplicated across every mailbox connected to the company: two sellers on the same thread yield one conversation with two mailboxes. Ordered by last_message_at ascending (oldest activity first); pages forward with a signed keyset cursor. Message bodies live under /v1/emails/{email_id}/messages and need emails.content.read.
Autorização
Seção intitulada “Autorização”Exige o escopo emails.read.
Parâmetros de query
Seção intitulada “Parâmetros de query”| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
limit | integer | Não | 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 | Não | Signed cursor returned by the previous page. |
last_message_after | string date-time | Não | Return 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_before | string date-time | Não | Return conversations whose latest message is before this instant. |
Exemplo de requisição
Seção intitulada “Exemplo de requisição”curl "https://api.salesbud.com.br/v1/emails?limit=...&cursor=..." \ -H "Authorization: Bearer $SALESBUD_ACCESS_TOKEN"Exemplo de resposta
Seção intitulada “Exemplo de resposta”{ "data": [ { "id": "eml_01JEXAMPLE", "object": "email_conversation", "subject": "Assunto de exemplo", "first_message_at": "2026-01-10T12:00:00.000Z", "last_message_at": "2026-01-12T15:30:00.000Z", "message_count": 3, "has_attachments": true, "last_message_direction": "inbound", "participants": [ { "address": "vendedora@example.com", "name": "Vendedora Exemplo", "internal": true }, { "address": "cliente@example.net", "name": "Cliente Exemplo", "internal": false } ], "mailboxes": [ { "address": "vendedora@example.com", "owner": { "id": "usr_01JEXAMPLE", "name": "Vendedora Exemplo", "email": "vendedora@example.com" } }, { "address": "vendas@example.com", "owner": null } ], "accounts": [ { "id": "acc_01JEXAMPLE", "domain": "example.net", "cnpj": "00.000.000/0001-00" } ] } ], "pagination": { "limit": 50, "has_more": true, "next_cursor": "cur_ExampleCursor03" }, "request_id": "req_ExampleRequestId01"}Respostas
Seção intitulada “Respostas”| Status | Descrição |
|---|---|
200 | Company-scoped email conversation page. |
400 | Invalid request. |
401 | Missing or invalid credentials. |
403 | The token does not contain the required scope. |
429 | Client rate limit exceeded. |
503 | A required audit or rate-limit dependency is unavailable. |