Scheduled messages

Pass scheduled_at (ISO timestamp or epoch ms, up to 30 days out) to POST /v1/messages and the message is queued instead of sent:

bash
curl -X POST https://api.deliveredsms.com/v1/messages   -H "Authorization: Bearer $DELIVERED_API_KEY"   -H "Content-Type: application/json"   -d '{"to":"+14155550132","from":"+15005550110","body":"Reminder!","scheduled_at":"2026-09-01T15:00:00Z"}'

The response is a scheduled_message with a job_ id. Delivery happens on the next queue flush after the timestamp (within a minute).

The schedule reserves nothing

Opt-out and quota are re-checked at send time, not at scheduling. A recipient who opts out between scheduling and sending is skipped; a schedule does not hold quota.

Listing and canceling

GET /api/developers/scheduled lists pending jobs; DELETE /api/developers/scheduled?id=job_... cancels one that has not sent yet. Cancellation races are settled atomically; a job mid-send cannot be canceled.