Launch a campaign
POST /campaigns/{id}/launch
Transition a draft campaign to running. The dispatcher:
- Validates that the sending domain is verified.
- Creates one
campaign_sendsrow per valid recipient on the list. - Begins enqueuing emails at the configured
per_minute_caprate, within thesend_window_start_hour/end_hourwindow.
Example
Section titled “Example”curl -X POST https://mail.3ava.com/api/campaigns/camp_a1b2.../launch \ -H "Authorization: Bearer am_YOUR_KEY"Response
Section titled “Response”{ "id": "camp_a1b2...", "status": "running", "total_recipients": 19872, "sent_count": 0, "scheduled_start_at": "2026-04-22T22:35:00Z"}Auto-pause
Section titled “Auto-pause”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.