Skip to navigation

Retrieve a campaign

View as Markdown

Returns the full campaign row: status, channel, schedule, retry settings, product context and the WhatsApp or email content. Unlike the list, it has no contact aggregates. For those use GET /api/campaigns, and for the contacts themselves GET /api/campaigns/{campaignId}/contacts.

Poll this after PATCH /api/campaigns/{campaignId}/activate to find out when status becomes completed, or better, subscribe to the campaign.completed webhook. A paused campaign with a non-null blocked_reason was paused by the system and needs the fix it describes.

Consistency. Cached for up to 120 seconds. API mutations clear the cache at once. A status change the system makes by itself (auto-completion, system pause) can take up to 120 seconds to appear here.

Access

  • Required scope: read (or write/full).
  • Rate limit: General API — 120 to 600 requests/min per workspace depending on 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, as returned in id by GET /api/campaigns. A campaign from another workspace or a deleted one answers 404; a value that is not a UUID answers 400.

Response

The campaign.
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
429
Too Many Requests Error