Skip to content

Launch a campaign

POST /campaigns/{id}/launch

Transition a draft campaign to running. The dispatcher:

  1. Validates that the sending domain is verified.
  2. Creates one campaign_sends row per valid recipient on the list.
  3. Begins enqueuing emails at the configured per_minute_cap rate, within the send_window_start_hour/end_hour window.
Terminal window
curl -X POST https://mail.3ava.com/api/campaigns/camp_a1b2.../launch \
-H "Authorization: Bearer am_YOUR_KEY"
{
"id": "camp_a1b2...",
"status": "running",
"total_recipients": 19872,
"sent_count": 0,
"scheduled_start_at": "2026-04-22T22:35:00Z"
}

The campaign auto-pauses if either of these crosses the safety threshold over a rolling 1-hour window:

  • Bounce rate > 3%
  • Complaint rate > 0.1%

When auto-paused, pause_reason is set on the campaign record and a campaign.auto_paused webhook fires. Resume with /resume once you’ve investigated.