Page through your sent emails with optional filters
/v1/send/emailsReturn emails on the account, newest first, with offset pagination and optional filters.
limitinteger50offsetinteger0statusstringqueuedprocessingsentdeliveredbouncedcomplainedfailedfromstringtostringstartDatestringendDatestringcurl "https://api.do.dev/v1/send/emails?status=bounced&startDate=2026-09-01T00:00:00Z&limit=50" \
-H "Authorization: Bearer $SEND_API_KEY"{
"emails": [
{
"id": "msg_3f9c2a1d7b8e4c0f9a1b2",
"from": { "email": "receipts@mail.example.com", "name": "Example Store" },
"to": ["customer@example.net"],
"subject": "Your order #4821 has shipped",
"status": "bounced",
"statusDetails": "Permanent: General (550 5.1.1 user unknown)",
"createdAt": 1757000000000,
"sentAt": 1757000001200,
"bouncedAt": 1757000004100
}
],
"pagination": { "limit": 50, "offset": 0, "total": 1, "hasMore": false }
}| Field | Type | Description |
|---|---|---|
emails | object[] | Email objects with the same fields as Get an email. |
pagination.limit | integer | The page size used. |
pagination.offset | integer | The offset used. |
pagination.total | integer or null | Total emails matching the filters, or null when the count is temporarily unavailable. |
pagination.hasMore | boolean | true if another page exists after this one. |
To page, increase offset by limit while pagination.hasMore is true.
{
"error": {
"code": "validation_error",
"message": "Validation failed",
"details": [
{ "field": "limit", "message": "'limit' must be between 1 and 100" }
]
}
}