Skip to navigation

Pause a campaign

View as Markdown

Moves an active campaign to paused. No request body. From then on no new call starts and no new WhatsApp or email message goes out: queued jobs find the campaign is not active and are dropped, and the contacts they belonged to stay pending. Calls already in progress are not hung up, and scheduled redials are not placed while the campaign is paused.

Resume with PATCH /api/campaigns/{campaignId}/activate, which queues the remaining pending contacts again. A paused campaign does not use an active-campaign slot of the plan and never auto-completes.

Side effects. Updates the status, clears the campaign caches, sends an in-app notification and writes an audit entry.

Idempotency. Not idempotent: pausing a campaign that is not active (including one already paused) answers 400. Treat 400 CAMPAIGN_NOT_ACTIVE on a retry as “already paused” after checking GET /api/campaigns/{campaignId}.

Webhook events. campaign.paused ({ campaign_id, campaign_name, agent_id, channel, status: paused, reason: manual }), once per pause, and audit.log_recorded for webhooks subscribed to it. See Webhooks.

Access

  • Required scope: full. Admin-only route: read/write keys get 403; signed-in users need the admin or owner role.
  • Rate limit: Configuration mutations — 10 requests/min per workspace, shared with agent mutations, on top of the general API limit (120 to 600 requests/min by plan). See Rate limits.
  • Plan: Available on every plan.

Authentication

AuthorizationBearer

Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.

ScopeGET / HEADPOST / PUT / PATCH / DELETEAdmin-only routes
readYesNoNo
writeYesYesNo
fullYesYesYes

Operations restricted to admins or owners reject keys without the full scope with 403, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See Authentication.

Path parameters

campaignIdstringRequiredformat: "uuid"

UUID of the campaign to pause. An unknown, deleted or foreign campaign answers 404; a value that is not a UUID answers 400.

Response

The campaign is now paused.

dataobject

A campaign row as returned by the retrieve, create, update, activate and pause endpoints. Keys are snake_case, exactly as stored. The list endpoint returns a lighter CampaignListItem instead.

Removed from responses (2026-09-15). retry_policy, voicemail_action and voicemail_message were legacy columns nothing read; none of them was ever settable through this API and none is returned any more. Redials come from max_retry_attempts and retry_interval_minutes; voicemail detection is an agent setting (enableVoicemailDetection).

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error