Sending
Scheduled sends
Set send_at to an RFC 3339 timestamp and mailnix queues the message instead of dispatching it immediately. Available on paid plans.
Rules
send_atmay be at most 3 days in the future. The short horizon is deliberate: it keeps the blast radius of a forgotten time bomb small.- The message is fully validated at submit time (recipients, template render, suppression check happens again at dispatch).
- The response returns a
trace_idright away; the trace shows the queued state until dispatch.
curl -X POST https://api.mailnix.ch/v1/messages \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to": "customer@example.com",
"subject": "Reminder: appointment tomorrow",
"text": "See you at 14:00.",
"send_at": "2026-07-15T08:00:00Z"
}'The MCP tool email_send_test takes the same send_at argument.
Managing the queue
email_scheduled_list(status?, limit?)lists queued and cancelled scheduled sends (MCP).email_scheduled_cancel(trace_id)cancels a queued send before itssend_at; the call is idempotent. Once dispatched, a send cannot be cancelled.- The dashboard's Scheduled page shows the same queue with a cancel button per row.
Interaction with idempotency
idempotency_key works on scheduled sends exactly like immediate ones: a retry of the submit call returns the original trace instead of queueing a duplicate. See Idempotency.