Skip to main content
The Campaigns API lets you programmatically create and launch broadcast campaigns — useful for integrating WaMatrix with your own scheduling system or triggering campaigns from external events.
Only Meta-approved message templates can be used in campaigns. Ensure your template has status: "approved" before referencing it in a campaign. See the Templates API for details on submitting and checking template status.

GET /workspaces//campaigns

List all broadcast campaigns in a workspace, with optional filtering by status and pagination.

Path Parameters

string
required
The unique ID of the workspace whose campaigns you want to list.

Query Parameters

string
Filter campaigns by their current status. Accepted values: draft, scheduled, running, completed, failed.
integer
Page number to retrieve. Defaults to 1.
integer
Number of results per page. Defaults to 20. Maximum is 100.

Request

List campaigns

Response


POST /workspaces//campaigns

Create a new broadcast campaign. If scheduled_at is provided the campaign is saved with status: "scheduled". If omitted the campaign is saved as "draft" and can be launched manually using the launch endpoint.

Path Parameters

string
required
The unique ID of the workspace to create the campaign in.

Body Parameters

string
required
A human-readable name for the campaign (e.g. "June Summer Sale").
string
required
The ID of the WhatsApp channel (connected number) to send the campaign from.
string
required
The exact name of the approved template to use (e.g. summer_sale_announcement). The template must have status: "approved".
string
required
The language code of the template to use (e.g. en, es, pt_BR).
object
required
Defines the audience for the campaign. Provide exactly one of the following:
string
An ISO 8601 datetime string for when to send the campaign (e.g. "2024-07-15T10:00:00Z"). If omitted, the campaign is saved as a draft and must be launched manually.
object
Maps template variable numbers to contact field names, so each message is personalised with the recipient’s data. For example, {"1": "first_name", "2": "order_number"} replaces {{1}} in the template with the contact’s first_name field.

Request

Create a campaign

Response


POST /workspaces//campaigns//launch

Immediately launch a campaign that is in draft status. Use this endpoint when you want to send a campaign right now without setting a scheduled_at time.

Path Parameters

string
required
The unique ID of the workspace.
string
required
The unique ID of the draft campaign to launch.

Request

Create and immediately launch a campaign

Response


GET /workspaces//campaigns//stats

Retrieve real-time delivery and engagement statistics for a campaign.

Path Parameters

string
required
The unique ID of the workspace.
string
required
The unique ID of the campaign.

Request

Get campaign stats

Response