Campaigns
Get a campaign
GET
/campaigns/{campaignId}Scope campaigns:readReturns a broadcast you started with Start a campaign: whether it is scheduled, sending or done, and where its recipients have got to.
The counts only ever narrow: every delivered message was sent, and every read one was delivered, even when WhatsApp never sent the delivered receipt.
Path parameters
campaignIdstringrequiredThe
campaignIdStart a campaign returned.
Good to know
statusisscheduled,sending,paused,completed,failedorcancelled.recipients.pendingare still waiting to go.failedones have WhatsApp's reason in the campaign report in the dashboard.- Counts follow delivery receipts, so
deliveredandreadkeep rising for a while aftercompleted.
Errors
| Status | Code | When |
|---|---|---|
| 404 | NOT_FOUND | No broadcast with that id in your workspace. An API campaign is not a broadcast and is not shown here. |
Plus the errors any endpoint can return, such as a missing key or scope. See Errors.
Request
# macOS, Linux or Git Bash, with WAMAFY_API_KEY set. The quoting does not work in Windows cmd or PowerShell.
curl "https://api.wamafy.com/api/v1/public/campaigns/3c5e7a9b-1d2f-4a6c-8e0b-2d4f6a8c0e13" \
-H "Authorization: Bearer $WAMAFY_API_KEY"Response 200
{
"success": true,
"data": {
"campaignId": "3c5e7a9b-1d2f-4a6c-8e0b-2d4f6a8c0e13",
"name": "Diwali VIP",
"templateName": "diwali_offer",
"status": "completed",
"scheduledAt": null,
"startedAt": "2026-10-07T10:00:00.000Z",
"completedAt": "2026-10-07T10:02:11.000Z",
"recipients": {
"total": 1240,
"pending": 0,
"sent": 1218,
"delivered": 1190,
"read": 802,
"failed": 22
}
}
}Base URL https://api.wamafy.com/api/v1/public