curl --request GET \
--url https://app.sendmux.ai/api/v1/emails/logs/{public_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sendmux.ai/api/v1/emails/logs/{public_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/emails/logs/{public_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/emails/logs/{public_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": {
"accepted_recipient_count": 25,
"attempts": 123,
"created_at": "<string>",
"from_email": "<string>",
"id": "dlog_clxxxxxxxxxxxxxxxxxxxxxxxxx",
"message_id": "<string>",
"provider_id": "<string>",
"provider_name": "<string>",
"recipient_count": 25,
"recipients": [
{
"email": "jsmith@example.com",
"reason": "<string>"
}
],
"rejected_recipient_count": 25,
"sent_at": "<string>",
"sent_from_email": "<string>",
"size_bytes": 123,
"status_reason": "<string>",
"subject": "<string>",
"to_email": "<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
}{
"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
}{
"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 delivery log
Returns a single delivery log by its public ID. Responses carry a weak ETag header — send it back as If-None-Match on the next request and the server will return 304 Not Modified (no body) when the log has not changed. Logs in a terminal status (sent/failed/rejected) stop changing, so 304 replay is a real bandwidth win on repeated polls.
curl --request GET \
--url https://app.sendmux.ai/api/v1/emails/logs/{public_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sendmux.ai/api/v1/emails/logs/{public_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/emails/logs/{public_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/emails/logs/{public_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": {
"accepted_recipient_count": 25,
"attempts": 123,
"created_at": "<string>",
"from_email": "<string>",
"id": "dlog_clxxxxxxxxxxxxxxxxxxxxxxxxx",
"message_id": "<string>",
"provider_id": "<string>",
"provider_name": "<string>",
"recipient_count": 25,
"recipients": [
{
"email": "jsmith@example.com",
"reason": "<string>"
}
],
"rejected_recipient_count": 25,
"sent_at": "<string>",
"sent_from_email": "<string>",
"size_bytes": 123,
"status_reason": "<string>",
"subject": "<string>",
"to_email": "<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
}{
"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
}{
"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
Delivery log public ID (dlog_...)
Response
Delivery log detail
true Hide child attributes
Hide child attributes
Recipient occurrences accepted by the provider, or null when no recipient snapshot exists
0 <= x <= 50ISO 8601 creation timestamp
Log public ID
"dlog_clxxxxxxxxxxxxxxxxxxxxxxxxx"
Email Message-ID header
Provider public ID
Provider display name
Total recipient occurrences, or null when no recipient snapshot exists
0 <= x <= 50Ordered recipient outcome snapshot for this send, or null when no snapshot exists
50Hide child attributes
Hide child attributes
Recipient email address
Recipient-specific rejection reason when available
Provider acceptance outcome
accepted, rejected Recipient header type when known
to, cc, bcc Recipient occurrences rejected by the provider, or null when no recipient snapshot exists
0 <= x <= 50ISO 8601 timestamp when email was sent
The actual from address used for delivery after transformation. NULL if no transformation occurred or for older log entries.
pending, sent, failed, rejected Was this page helpful?