Schedules an email for future delivery. Stamps sent=true, date_sent=<sendAt>, and a server-rendered body on the email, then enqueues a scheduled job to send the message at sendAt. Preconditions checked before scheduling: - Email exists and is owned by the caller's workspace - sendAt is strictly in the future - Email has a non-empty subject - Email has at least one recipient - Email has viewport_data to render to HTML (or a previously-rendered body) For immediate transmission, use send_email instead.
AuthorizationRequiredBearer <token>API key as Bearer token
In: header
application/jsonRequiredsendAtRequiredstringISO timestamp for delivery. Must be strictly in the future. The email must already have a subject, at least one recipient, and viewport_data (the send pipeline renders it to HTML automatically).
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"Format: "date-time"idRequiredstringEmail id, discoverable via list_emails
Send Email
Sends an email through Sparkpost immediately. Stamps date_sent + sent=true on the persisted document. Seamless flow: call with just `id` once the draft has subject, recipients, viewport_data, and reply_to_email set. The server pulls those fields from the persisted doc and renders viewport_data to HTML server-side if no body is already rendered. Only pass fields other than `id` when you explicitly need to override the persisted values for this one send.
Duplicate Email
Creates a draft copy of an existing email. The source's content and metadata (attachments, sender info, recipients, event refs) are cloned server-side; the caller names the source and any field-level overrides. An email that renders a Page accepts a `page_id` override; an email that renders embedded structured content accepts a `viewport_data` override. Emails in the content_blocks format cannot be duplicated through this API. Note that if `page_id` is omitted, a duplicate of the page is also created and used for the new email, so editing the new email's page will not affect others. Use this when the user asks to "duplicate", "clone", "copy", or "resend" an existing email, including the "duplicate and send to a different address" flow. After this tool returns, call send_email with the returned email's id to dispatch immediately, or schedule_email for a future send. The duplicate is always created as a draft: sent=false, no date_sent, automatic=false. Override only the fields that should differ from the source (most commonly recipient_emails); everything else falls back to the source.