Campaigns
API reference descriptions are provided in English to preserve the exact published contract.
- GETList resumable campaign builder drafts
campaignBuilderDrafts.list - POSTCreate a resumable campaign builder draft
campaignBuilderDrafts.create - POSTStart or resume a campaign from an approved template
campaignBuilderDrafts.fromTemplate - GETFetch a campaign builder draft
campaignBuilderDrafts.retrieve - PATCHSave campaign builder progress
campaignBuilderDrafts.update - DELETEDelete a campaign builder draft
campaignBuilderDrafts.delete - POSTPreview current consent and suppression for one observed saved-draft audience slice
campaignBuilderDrafts.consentPreview - GETList campaigns and authoritative planning state
campaigns.list - POSTCreate a campaign draft
campaigns.create - GETFetch a campaign
campaigns.retrieve - DELETEDelete a campaign draft
campaigns.delete - POSTApprove a campaign
campaigns.approve - POSTRecord an idempotent campaign click or conversion
campaigns.attributionEvents - GETList campaign planning batches
campaigns.batches.list - POSTCancel a campaign
campaigns.cancel - PATCHSet the frequency policy, money budget cap, account pacing and transport
campaigns.controls.update - POSTDry-run campaign admission
campaigns.dryRun - GETList campaign exclusions
campaigns.exclusions.list - GETRead campaign experiment, holdout and attribution configuration
campaigns.experiment.list - PUTConfigure deterministic campaign variants and holdout
campaigns.experiment.update - GETReport campaign outcomes and cost by variant with honest denominators
campaigns.experimentReport.list - POSTPause a campaign
campaigns.pause - GETRead owned campaign retained performance
campaigns.performance.list - POSTReject a campaign
campaigns.reject - POSTResume a campaign
campaigns.resume - POSTCreate a draft campaign for retryable failed recipients
campaigns.retryEligible - GETEvaluate the current campaign authorization decision without mutating it
campaigns.review.list - POSTAcknowledge an allowed campaign review snapshot
campaigns.review.acknowledge - PATCHEdit a draft or scheduled campaign window
campaigns.schedule.update - POSTStart a campaign
campaigns.start - POSTSubmit a campaign
campaigns.submit - POSTSend a billed campaign sample to at most 10 contacts
campaigns.testSend - POSTWithdraw a pending campaign approval request
campaigns.withdraw
List resumable campaign builder drafts
GET/v1/accounts/{AC}/campaign-builder-drafts
campaignBuilderDrafts.listSDK operation getV1AccountsByAcCampaignBuilderDrafts
Parameters
limitinteger (1–100)querycursorstring (max 2048 chars)query
Create a resumable campaign builder draft
POST/v1/accounts/{AC}/campaign-builder-drafts
campaignBuilderDrafts.createSDK operation postV1AccountsByAcCampaignBuilderDrafts
Request body
currentStepinteger (1–9)RequireddataobjectRequirednamestring (max 256 chars)Requiredversioninteger (1–)
Start or resume a campaign from an approved template
POST/v1/accounts/{AC}/campaign-builder-drafts/from-template
campaignBuilderDrafts.fromTemplateSDK operation postV1AccountsByAcCampaignBuilderDraftsFromTemplate
Request body
templateSidstring (TM… SID)Required
Fetch a campaign builder draft
GET/v1/accounts/{AC}/campaign-builder-drafts/{CD}
campaignBuilderDrafts.retrieveSDK operation getV1AccountsByAcCampaignBuilderDraftsByCd
Parameters
CDstring (CD… SID)Required
Save campaign builder progress
PATCH/v1/accounts/{AC}/campaign-builder-drafts/{CD}
campaignBuilderDrafts.updateSDK operation patchV1AccountsByAcCampaignBuilderDraftsByCd
Parameters
CDstring (CD… SID)Required
Request body
currentStepinteger (1–9)RequireddataobjectRequirednamestring (max 256 chars)Requiredversioninteger (1–)
Delete a campaign builder draft
DELETE/v1/accounts/{AC}/campaign-builder-drafts/{CD}
campaignBuilderDrafts.deleteSDK operation deleteV1AccountsByAcCampaignBuilderDraftsByCd
Parameters
CDstring (CD… SID)Required
Preview current consent and suppression for one observed saved-draft audience slice
POST/v1/accounts/{AC}/campaign-builder-drafts/{CD}/consent-preview
campaignBuilderDrafts.consentPreviewSDK operation postV1AccountsByAcCampaignBuilderDraftsByCdConsentPreview
Parameters
CDstring (CD… SID)Required
Request body
expectedVersioninteger (1–9007199254740991)Requiredcursorstring (max 4096 chars)limitinteger (1–100)
List campaigns and authoritative planning state
GET/v1/accounts/{AC}/campaigns
campaigns.listSDK operation getV1AccountsByAcCampaigns
List campaigns with their state and planning progress.
Parameters
limitinteger (1–100)querycursorstring (max 2048 chars)querystateenumqueryDRAFTPENDING_APPROVALSCHEDULEDPLANNINGRUNNINGPAUSEDCOMPLETINGCOMPLETEDCANCELEDFAILED
Create a campaign draft
POST/v1/accounts/{AC}/campaigns
campaigns.createSDK operation postV1AccountsByAcCampaigns
Create a campaign draft: who receives which template, when, and how fast. Nothing is sent until the campaign is started.
Request body
audienceobjectRequiredcontentSidstring (HX… SID)Requirednamestring (max 256 chars)RequiredpacingobjectRequiredShow 2 child attributes
perSenderPerMinuteinteger (1–1000000)RequiredperAccountPerMinuteinteger (1–1000000)
scheduleobjectRequiredShow 4 child attributes
endAtstring (date-time)RequiredstartAtstring (date-time)RequiredquietHoursobjecttimezoneModeenumsenderrecipient
budgetCapstring (pattern ^[0-9][0-9,]*(\.[0-9]+)?$, max 24 chars)Budget cap in the campaign currency's own units, for example "500" for JPY or "12.50" for GBP.
budgetCapMinorinteger (0–)builderDraftSidstring (CD… SID)builderDraftVersioninteger (1–9007199254740991)Saved builder draft version, required for first materialization with builderDraftSid. Retries of an already converted owned, unexpired draft return its existing campaign.
currencystring (pattern ^[A-Z]{3}$)frequencyPolicyobject | nullheaderMediaSidstring (ME… SID)Media sent as the header of an IMAGE, VIDEO or DOCUMENT template. Meta needs the header asset on every send; without this the asset the template was submitted with is used, and a campaign with neither cannot be submitted.
requiresApprovalbooleansenderPoolSidstring (SP… SID)senderSidsstring (WA… SID)[]transportenumcloud_apimarketing_messagesvariablesMappingobjectTemplate placeholder → source. A source is a contact field path (displayName, locale, timezone, attributes.<key>) or
literal:<text>for a fixed value; a placeholder with no entry reads attributes.<placeholder>. A contact whose sources resolve to no scalar is excluded with ADDRESSING_UNSUPPORTED and the failing placeholder in detail.
Fetch a campaign
GET/v1/accounts/{AC}/campaigns/{CP}
campaigns.retrieveSDK operation getV1AccountsByAcCampaignsByCp
Fetch one campaign with its schedule, audience, counts and cost so far.
Parameters
CPstring (CP… SID)Required
Delete a campaign draft
DELETE/v1/accounts/{AC}/campaigns/{CP}
campaigns.deleteSDK operation deleteV1AccountsByAcCampaignsByCp
Parameters
CPstring (CP… SID)Required
Approve a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/approve
campaigns.approveSDK operation postV1AccountsByAcCampaignsByCpApprove
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Record an idempotent campaign click or conversion
POST/v1/accounts/{AC}/campaigns/{CP}/attribution-events
campaigns.attributionEventsSDK operation postV1AccountsByAcCampaignsByCpAttributionEvents
Parameters
CPstring (CP… SID)Required
Request body
eventTypeenumRequiredclickconversionexternalEventIdstring (max 200 chars)RequiredoccurredAtstring (date-time)RequiredcontactSidstring (CT… SID)currencystring (pattern ^[A-Z]{3}$)messageSidstring (SM… SID)propertiesobjectvalueMinorinteger (0–)
List campaign planning batches
GET/v1/accounts/{AC}/campaigns/{CP}/batches
campaigns.batches.listSDK operation getV1AccountsByAcCampaignsByCpBatches
Parameters
CPstring (CP… SID)Requiredlimitinteger (1–100)querycursorstring (max 2048 chars)query
Cancel a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/cancel
campaigns.cancelSDK operation postV1AccountsByAcCampaignsByCpCancel
Cancel a campaign. Recipients not yet sent to are skipped; this cannot be undone.
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Set the frequency policy, money budget cap, account pacing and transport
PATCH/v1/accounts/{AC}/campaigns/{CP}/controls
campaigns.controls.updateSDK operation patchV1AccountsByAcCampaignsByCpControls
Parameters
CPstring (CP… SID)Required
Request body
budgetCapstring (pattern ^[0-9][0-9,]*(\.[0-9]+)?$, max 24 chars) | nullbudgetCapMinorinteger (0–) | nullfrequencyPolicyobject | nullheaderMediaSidstring (ME… SID) | nullperAccountPerMinuteinteger (1–1000000) | nulltransportenumcloud_apimarketing_messages
Dry-run campaign admission
POST/v1/accounts/{AC}/campaigns/{CP}/dry-run
campaigns.dryRunSDK operation postV1AccountsByAcCampaignsByCpDryRun
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
List campaign exclusions
GET/v1/accounts/{AC}/campaigns/{CP}/exclusions
campaigns.exclusions.listSDK operation getV1AccountsByAcCampaignsByCpExclusions
Parameters
CPstring (CP… SID)Requiredlimitinteger (1–100)querycursorstring (max 2048 chars)query
Read campaign experiment, holdout and attribution configuration
GET/v1/accounts/{AC}/campaigns/{CP}/experiment
campaigns.experiment.listSDK operation getV1AccountsByAcCampaignsByCpExperiment
Parameters
CPstring (CP… SID)Required
Configure deterministic campaign variants and holdout
PUT/v1/accounts/{AC}/campaigns/{CP}/experiment
campaigns.experiment.updateSDK operation putV1AccountsByAcCampaignsByCpExperiment
Parameters
CPstring (CP… SID)Required
Request body
attributionWindowDaysinteger (1–90)RequiredenabledbooleanRequiredholdoutBasisPointsinteger (0–5000)RequiredprimaryEventenumRequiredclickconversionvariantsobject[]Required
Report campaign outcomes and cost by variant with honest denominators
GET/v1/accounts/{AC}/campaigns/{CP}/experiment-report
campaigns.experimentReport.listSDK operation getV1AccountsByAcCampaignsByCpExperimentReport
Parameters
CPstring (CP… SID)Required
Pause a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/pause
campaigns.pauseSDK operation postV1AccountsByAcCampaignsByCpPause
Pause a running campaign. Messages already handed to WhatsApp still deliver.
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Read owned campaign retained performance
GET/v1/accounts/{AC}/campaigns/{CP}/performance
campaigns.performance.listSDK operation getV1AccountsByAcCampaignsByCpPerformance
Parameters
CPstring (CP… SID)Requiredfromstring (date-time)querytostring (date-time)query
Reject a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/reject
campaigns.rejectSDK operation postV1AccountsByAcCampaignsByCpReject
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Resume a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/resume
campaigns.resumeSDK operation postV1AccountsByAcCampaignsByCpResume
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Create a draft campaign for retryable failed recipients
POST/v1/accounts/{AC}/campaigns/{CP}/retry-eligible
campaigns.retryEligibleSDK operation postV1AccountsByAcCampaignsByCpRetryEligible
Parameters
CPstring (CP… SID)Required
Request body
namestring (max 256 chars)
Evaluate the current campaign authorization decision without mutating it
GET/v1/accounts/{AC}/campaigns/{CP}/review
campaigns.review.listSDK operation getV1AccountsByAcCampaignsByCpReview
Parameters
CPstring (CP… SID)Required
Acknowledge an allowed campaign review snapshot
POST/v1/accounts/{AC}/campaigns/{CP}/review/acknowledge
campaigns.review.acknowledgeSDK operation postV1AccountsByAcCampaignsByCpReviewAcknowledge
Parameters
CPstring (CP… SID)Required
Request body
acknowledgeCostbooleanRequiredacknowledgeLivebooleanRequired
Edit a draft or scheduled campaign window
PATCH/v1/accounts/{AC}/campaigns/{CP}/schedule
campaigns.schedule.updateSDK operation patchV1AccountsByAcCampaignsByCpSchedule
Parameters
CPstring (CP… SID)Required
Request body
endAtstring (date-time)RequiredstartAtstring (date-time)RequiredtimezoneModeenumRequiredsenderrecipientperSenderPerMinuteinteger (1–1000000)quietHoursobject | null
Start a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/start
campaigns.startSDK operation postV1AccountsByAcCampaignsByCpStart
Start a campaign. It must have passed review; a campaign that needs approval waits for it.
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Submit a campaign
POST/v1/accounts/{AC}/campaigns/{CP}/submit
campaigns.submitSDK operation postV1AccountsByAcCampaignsByCpSubmit
Parameters
CPstring (CP… SID)Required
Request body
reasonstring (max 512 chars)
Send a billed campaign sample to at most 10 contacts
POST/v1/accounts/{AC}/campaigns/{CP}/test-send
campaigns.testSendSDK operation postV1AccountsByAcCampaignsByCpTestSend
Parameters
CPstring (CP… SID)Required
Request body
contactSidsstring (CT… SID)[]Required
Withdraw a pending campaign approval request
POST/v1/accounts/{AC}/campaigns/{CP}/withdraw
campaigns.withdrawSDK operation postV1AccountsByAcCampaignsByCpWithdraw
Parameters
CPstring (CP… SID)Required