Schedules a newsletter for future delivery. Stamps sent=true, date_sent=<sendAt>, and a server-rendered body on the newsletter, then enqueues a Firestore trigger row that fires the actual Sparkpost transmission at sendAt. Does NOT call Sparkpost itself — that happens at fire time. Preconditions checked before scheduling: - Newsletter exists and is owned by the caller's workspace - sendAt is strictly in the future - Newsletter has a non-empty subject - Newsletter has at least one recipient - Newsletter has viewport_data (or a previously-rendered body) — the server renders viewport_data to HTML and persists it as body for the trigger to consume. For immediate transmission, use send_newsletter instead.
AuthorizationRequiredBearer <token>API key as Bearer token
In: header
application/jsonRequiredsendAtRequiredstringISO timestamp for delivery. Must be strictly in the future. The newsletter 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"idRequiredstringNewsletter id, discoverable via list_newsletters
Send Newsletter
Sends a newsletter 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 → HTML server-side if no body is already rendered. Only pass subject/senderName/replyToEmail/recipients/html/attachments when you explicitly need to override the persisted values for this one send. The Sparkpost API must be configured server-side; calls return 503 when SPARKPOST_API_KEY is unset.
List Newsletter Email Events
Lists Sparkpost bounce or open events for a sent newsletter. Returns one cursor-paginated page. Events outside the (date_sent - 1 day, now + 1 day) window aren't returned even if Sparkpost has them.