Scheduled emails
List, change or cancel emails sent with sendAt.
Emails you send with sendAt wait here until their time. An API key sees and changes only the emails it scheduled; the dashboard (Email → Scheduled) shows everyone's.
A scheduled email is SCHEDULED until its time, then SENT (with sentAt), or FAILED with an error that says why (for example, the address was added to the do-not-email list meanwhile). CANCELLED ones are never sent. An email whose Gmail has used up its day stays SCHEDULED, with a later sendAt and the reason in error.
List them
/api/v1/emails/scheduledemail:writeQuery: status (SCHEDULED, SENT, FAILED or CANCELLED), search (recipient or subject), skip, limit (up to 100).
{
"data": [
{
"id": "6704a1c2a9e4b0a1b2c3d4e5",
"status": "SCHEDULED",
"to": "jane@northwind.io",
"cc": [],
"subject": "Following up on our call",
"from": "alex@yourcompany.com",
"sendAt": "2026-10-12T04:00:00.000Z",
"sentAt": null,
"error": null,
"source": "API",
"createdAt": "2026-10-07T11:00:00.000Z"
}
],
"total": 1,
"skip": 0,
"limit": 50
}Change one
/api/v1/emails/scheduled/{id}email:writeSend any of sendAt, subject, html, signatureId (null for none), trackOpens, trackClicks. Only an email that hasn't gone out can be changed.
curl -X PATCH "https://api.pedibee.com/api/v1/emails/scheduled/6704a1c2a9e4b0a1b2c3d4e5" \
-H "Authorization: Bearer $PEDIBEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sendAt": "2026-10-13T09:00:00+05:00" }'Cancel one
/api/v1/emails/scheduled/{id}email:writeCancels an email that hasn't gone out; it's kept in the list as CANCELLED.
Errors
| Status | When |
|---|---|
400 | The time is in the past or more than a year ahead, or the email has already gone out. |
403 | The key doesn't have email:write. |
404 | No such scheduled email for this key. |
