Docs
Esc

Suggested

QuickstartGet started
Webhooks and signaturesMessaging
Create a messagemessages.create · POST /v1/accounts/{AC}/messages
RATE_LIMITED429 · Rate limit exceeded.
message.deliveredMessage resource
Contents

API reference

Campaigns

API reference descriptions are provided in English to preserve the exact published contract.

List resumable campaign builder drafts

GET/v1/accounts/{AC}/campaign-builder-drafts

campaignBuilderDrafts.listSDK operation getV1AccountsByAcCampaignBuilderDrafts

Parameters

  • limitinteger (1–100)query
  • cursorstring (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)Required
  • dataobjectRequired
  • namestring (max 256 chars)Required
  • versioninteger (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)Required
  • dataobjectRequired
  • namestring (max 256 chars)Required
  • versioninteger (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)Required
  • cursorstring (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)query
  • cursorstring (max 2048 chars)query
  • stateenumquery

    DRAFTPENDING_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

  • audienceobjectRequired
  • contentSidstring (HX… SID)Required
  • namestring (max 256 chars)Required
  • pacingobjectRequired
    Show 2 child attributes
    • perSenderPerMinuteinteger (1–1000000)Required
    • perAccountPerMinuteinteger (1–1000000)
  • scheduleobjectRequired
    Show 4 child attributes
    • endAtstring (date-time)Required
    • startAtstring (date-time)Required
    • quietHoursobject
    • timezoneModeenum

      senderrecipient

  • 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 | null
  • headerMediaSidstring (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.

  • requiresApprovalboolean
  • senderPoolSidstring (SP… SID)
  • senderSidsstring (WA… SID)[]
  • transportenum

    cloud_apimarketing_messages

  • variablesMappingobject

    Template 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

  • eventTypeenumRequired

    clickconversion

  • externalEventIdstring (max 200 chars)Required
  • occurredAtstring (date-time)Required
  • contactSidstring (CT… SID)
  • currencystring (pattern ^[A-Z]{3}$)
  • messageSidstring (SM… SID)
  • propertiesobject
  • valueMinorinteger (0–)

List campaign planning batches

GET/v1/accounts/{AC}/campaigns/{CP}/batches

campaigns.batches.listSDK operation getV1AccountsByAcCampaignsByCpBatches

Parameters

  • CPstring (CP… SID)Required
  • limitinteger (1–100)query
  • cursorstring (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) | null
  • budgetCapMinorinteger (0–) | null
  • frequencyPolicyobject | null
  • headerMediaSidstring (ME… SID) | null
  • perAccountPerMinuteinteger (1–1000000) | null
  • transportenum

    cloud_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)Required
  • limitinteger (1–100)query
  • cursorstring (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)Required
  • enabledbooleanRequired
  • holdoutBasisPointsinteger (0–5000)Required
  • primaryEventenumRequired

    clickconversion

  • variantsobject[]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)Required
  • fromstring (date-time)query
  • tostring (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

  • acknowledgeCostbooleanRequired
  • acknowledgeLivebooleanRequired

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)Required
  • startAtstring (date-time)Required
  • timezoneModeenumRequired

    senderrecipient

  • perSenderPerMinuteinteger (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