Launch a campaign — activate + run the launch pipeline (alias /send)
Marks the campaign ready: sets status: active and runs the full
launch pipeline campaign-keyed (sender gate, duplicate auto-cancel,
per-account scheduling). Idempotent on an already-active campaign.
Launch is “mark ready”, never “force”. There are NO override
knobs — send windows, daily caps, spacing, and duplicate settings
are the campaign’s own persisted config, set through the agent,
never per-call. POST /campaigns/{campaignId}/send is an alias.
?dryRun=true returns { dryRun: true, campaignId, wouldLaunch: true }
with no writes.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Transport-level replay protection — any v2 POST may send it
(1–255 printable ASCII characters; UUIDs recommended). The first
response for a key is recorded and replayed verbatim for retries
with the same key + method/path/body for 24 hours; replayed
responses carry the Idempotency-Replay: true response header.
Reusing a key with a different request — or retrying while the
original is still in flight — returns 409 IDEMPOTENCY_ERROR.
5xx responses are never recorded (the retry re-executes).
1 - 255^[\x21-\x7e]{1,255}$Path Parameters
The campaign id (a first-class campaigns row).
Query Parameters
Response
The transition result — or the dryRun report.
- Option 1
- Option 2
Result of a deterministic lifecycle transition
(launch / send / pause / resume). Carries the transition
facts in exactly one of launch / pause / resume depending on
which transition ran.
"campaign"draft, active, paused Drafts scheduled by this transition (0 unless launching/resuming).
Present on a launch/resume that scheduled work.
Present on a pause.
Present on a resume.