Skip to main content
Archives a campaign. This is a soft delete: the campaign and its history are retained for reporting, but the campaign disappears from GET /campaigns, stops being returned by GET /campaigns/{id}, and can never be edited, resumed or re-launched. Archiving is also a stop. In one operation it:
  1. Sets the campaign’s status to archived and marks it deleted.
  2. Retires every contact that was still live (pending, scheduled, dialing, awaiting_disposition) to excluded.
  3. Cancels every call this campaign had waiting to be dialed.
Step 3 is best-effort by design: a call the dispatcher has already picked up belongs to the dispatcher and will complete normally, then settle. So archiving stops the campaign offering new calls immediately, while at most max_in_flight calls already on their way may still connect. If you need a clean stop with the campaign left readable, use POST /campaigns/{id}/stop instead. Required scope: campaigns:manage.

Path parameters

There is no request body and no query parameter. Archiving works from any status, including draft and already-terminal campaigns.

Archive or stop?

Archiving frees the campaign’s name: uniqueness is enforced only across non-archived campaigns, so you can create a fresh campaign with the same name afterwards.

Example request

Example response

A short acknowledgement rather than the full campaign object, because the campaign is no longer readable:
Calling it again returns 404 — the operation is not idempotent in its response, only in its effect.

Errors