Sending
Retrieve, list, reschedule, and cancel emails
Look up what you sent, and change your mind about what hasn't gone yet.
Retrieve an email
GET
/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33ccurl https://api.chebu.io/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c \
-H "Authorization: Bearer $CHEBU_API_KEY"JSON
{
"object": "email",
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
"from": "Northwind <[email protected]>",
"to": ["[email protected]"],
"cc": [],
"bcc": [],
"reply_to": ["[email protected]"],
"subject": "Your receipt #1042",
"html": "<p>Thanks for your order.</p>",
"text": "Thanks for your order.",
"created_at": "2026-09-27T10:04:12.418Z",
"scheduled_at": null,
"last_event": "delivered",
"tags": [
{ "name": "category", "value": "receipt" }
]
}Events
last_event is the latest thing that happened to the email:
| Value | Meaning |
|---|---|
queued | Accepted and waiting to send. |
scheduled | Waiting for its scheduled_at time. |
sent | Handed to the sending network. |
delivered | Accepted by the recipient's server. |
delivery_delayed | Delivery failed for now and is being retried. |
bounced | Rejected for good by the recipient's server. |
complained | Marked as spam by the recipient. |
opened | Opened, with open tracking on. |
clicked | A link was clicked, with click tracking on. |
failed | Couldn't be sent. |
canceled | Canceled before it was sent. |
suppressed | Skipped because the address is suppressed. |
List emails
Newest first. limit is 1 to 100 (default 20). To page, pass the last id you saw as after for older emails, or the first as before for newer ones. has_more says whether there's another page. List items leave html and text as null; fetch an email by ID to read its body.
GET
/emailscurl https://api.chebu.io/emails?limit=20 \
-H "Authorization: Bearer $CHEBU_API_KEY"JSON
{
"object": "list",
"has_more": true,
"data": [
{
"object": "email",
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
"from": "Northwind <[email protected]>",
"to": ["[email protected]"],
"cc": [],
"bcc": [],
"reply_to": ["[email protected]"],
"subject": "Your receipt #1042",
"html": null,
"text": null,
"created_at": "2026-09-27T10:04:12.418Z",
"scheduled_at": null,
"last_event": "delivered",
"tags": [
{ "name": "category", "value": "receipt" }
]
}
]
}Reschedule an email
Only while the email is still scheduled. scheduled_at takes the same formats as when sending.
PATCH
/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33ccurl -X PATCH https://api.chebu.io/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c \
-H "Authorization: Bearer $CHEBU_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "scheduled_at": "2026-10-01T09:00:00Z" }'JSON
{
"object": "email",
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c"
}Cancel an email
Works while the email is scheduled or still queued. Its last_event becomes canceled.
POST
/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/cancelcurl -X POST https://api.chebu.io/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/cancel \
-H "Authorization: Bearer $CHEBU_API_KEY"JSON
{
"object": "email",
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c"
}