Skip to content

List the messages of an email conversation

get /v1/emails/{email_id}/messages

Messages in the order they were sent, oldest first, with plain-text bodies and attachment metadata (no attachment content). Governed by the email_content rate-limit policy in addition to the client and company policies. The cursor is bound to the conversation.

Requires the emails.read and emails.content.read scopes together.

NameTypeRequiredDescription
email_idstringYes
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.
Terminal window
curl "https://api.salesbud.com.br/v1/emails/mtg_01JEXAMPLE/messages?limit=...&cursor=..." \
-H "Authorization: Bearer $SALESBUD_ACCESS_TOKEN"
200 OK
{
"data": [
{
"id": "emsg_01JEXAMPLE",
"object": "email_message",
"conversation_id": "eml_01JEXAMPLE",
"sent_at": "2026-01-12T15:30:00.000Z",
"direction": "inbound",
"subject": "Re: Assunto de exemplo",
"snippet": "Trecho de exemplo da mensagem",
"body_text": "Corpo de exemplo da mensagem.\n\nAtenciosamente,\nCliente Exemplo",
"from": {
"address": "cliente@example.net",
"name": "Cliente Exemplo",
"internal": false
},
"to": [
{
"address": "vendedora@example.com",
"name": "Vendedora Exemplo",
"internal": true
}
],
"cc": [
{
"address": "financeiro@example.net",
"name": null,
"internal": false
}
],
"attachments": [
{
"filename": "exemplo.pdf",
"mime_type": "application/pdf",
"size_bytes": 182400
}
]
}
],
"pagination": {
"limit": 50,
"has_more": false,
"next_cursor": null
},
"request_id": "req_ExampleRequestId01"
}
StatusDescription
200Company-scoped email message page.
400Invalid request.
401Missing or invalid credentials.
403The token does not contain the required scope.
404Resource not found in the authenticated company.
429Client rate limit exceeded.
503A required audit or rate-limit dependency is unavailable.