curl --request GET \
--url https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": true,
"data": {
"folder_ids": [
"<string>"
],
"has_attachments": true,
"id": "<string>",
"last_message": {
"bcc": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"cc": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"flags": {
"answered": true,
"draft": true,
"flagged": true,
"seen": true
},
"folder_ids": [
"<string>"
],
"from": {
"email": "agent@example.com",
"name": "Support"
},
"has_attachments": true,
"id": "<string>",
"keywords": [
"$seen",
"$flagged",
"agent_triaged"
],
"preview": "<string>",
"received_at": "<string>",
"sent_at": "<string>",
"size_bytes": 123,
"subject": "<string>",
"thread_id": "<string>",
"to": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"attachments": [
{
"content_id": "<string>",
"content_type": "application/pdf",
"disposition": "attachment",
"filename": "invoice.pdf",
"id": "<string>",
"size_bytes": 12345,
"download_url": "https://app.sendmux.ai/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=..."
}
]
},
"message_count": 123,
"participants": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"states": {
"email_state": "<string>",
"thread_state": "<string>"
},
"subject": "<string>",
"unread_count": 123,
"message_ids": [
"<string>"
]
}
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}Get a mailbox thread
Returns thread metadata, message IDs, participants, last message, unread count, and state for one conversation. Responses include a weak ETag header.
curl --request GET \
--url https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.sendmux.ai/api/v1/mailbox/threads/{thread_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": true,
"data": {
"folder_ids": [
"<string>"
],
"has_attachments": true,
"id": "<string>",
"last_message": {
"bcc": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"cc": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"flags": {
"answered": true,
"draft": true,
"flagged": true,
"seen": true
},
"folder_ids": [
"<string>"
],
"from": {
"email": "agent@example.com",
"name": "Support"
},
"has_attachments": true,
"id": "<string>",
"keywords": [
"$seen",
"$flagged",
"agent_triaged"
],
"preview": "<string>",
"received_at": "<string>",
"sent_at": "<string>",
"size_bytes": 123,
"subject": "<string>",
"thread_id": "<string>",
"to": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"attachments": [
{
"content_id": "<string>",
"content_type": "application/pdf",
"disposition": "attachment",
"filename": "invoice.pdf",
"id": "<string>",
"size_bytes": 12345,
"download_url": "https://app.sendmux.ai/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=..."
}
]
},
"message_count": 123,
"participants": [
{
"email": "agent@example.com",
"name": "Support"
}
],
"states": {
"email_state": "<string>",
"thread_state": "<string>"
},
"subject": "<string>",
"unread_count": 123,
"message_ids": [
"<string>"
]
}
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}Authorizations
Sendmux API key. Use a root API key for Management API routes, or a mailbox credential for Mailbox API routes. Obtain keys from the dashboard under API Keys.
Headers
Weak ETag from a previous response. Returns 304 when unchanged.
Path Parameters
Thread ID.
Query Parameters
Mailbox public ID to target when the credential grants access to more than one mailbox. Omit when the credential is scoped to exactly one mailbox.
Response
Thread
true Hide child attributes
Hide child attributes
Thread ID
Hide child attributes
Hide child attributes
Message ID
Active message keywords, including system flags and custom labels.
["$seen", "$flagged", "agent_triaged"]
Attachment metadata for this message. Each item includes a short-lived download_url; if it expires, fetch message metadata again.
Hide child attributes
Hide child attributes
Content ID for inline attachments, when present.
"application/pdf"
"attachment"
"invoice.pdf"
Attachment blob ID.
12345
Short-lived URL for this exact attachment. Fetch it promptly; if it expires, call the message or attachment metadata endpoint again to receive a fresh URL.
"https://app.sendmux.ai/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=..."
Was this page helpful?