Get a campaign
One campaign with its counts and analytics: per-source figures and the failed contacts grouped by reason. delivery_rate and read_rate are null on a number that does not report receipts.
Set up WhatsApp first. Connect a WhatsApp number in the dashboard or with Connect numbers. Included on every paid plan. See plans.
campaign_idrequiredcurl -X GET 'https://backend.omnidim.io/api/v1/whatsapp/campaigns/{campaign_id}' \ -H 'Authorization: Bearer YOUR_API_KEY'
{ "id": 0, "name": "string", "status": "draft", "pause_reason": "human", "campaign_mode": "broadcast", "send_mode": "review", "data_source": "csv", "is_dynamic": false, "phone_number_id": 0, "template": { "id": 0, "name": "string" }, "agent_id": 0, "variable_mapping": "string", "counts": { "total": 0, "sent": 0, "delivered": 0, "read": 0, "replied": 0, "failed": 0, "skipped": 0, "opted_out": 0 }, "receipts_reported": false, "delivery_rate": 0, "read_rate": 0, "reply_rate": 0, "spend": { "amount": 0, "currency": "USD" }, "created_at": "string", "analytics": { "pending": 0, "failures": [ { "category": "string", "count": 0 } ], "by_source": "string" } }
BearerAuthAuthorizationBearer <token>Bearer token authentication. Obtain your API key from the OmniDimension dashboard.
campaign_id*integerId of a WhatsApp campaign, from listWhatsappCampaigns.
Response body
application/jsonThe campaign with analytics.
application/jsonid?integername?stringstatus?string"draft""scheduled""in_progress""paused""completed""failed""cancelled"pause_reason?stringWhy it paused, or null. Only human waits for you; the rest resume on their own.
"human""balance""channel_down""monthly_limit"campaign_mode?string"broadcast""broadcast_reply"send_mode?string"review""on_arrival"data_source?string"csv""webhook"is_dynamic?booleanphone_number_id?integertemplate?agent_id?integerThe agent that answers replies, when one is attached.
variable_mapping?Template field to contact field or static text.
counts?receipts_reported?booleanThis number reports delivery and read receipts, so the rates are real.
delivery_rate?numberDelivered as a percentage of sent. Null when receipts are not reported.
read_rate?numberRead as a percentage of delivered. Null when receipts are not reported.
reply_rate?numberReplied as a percentage of sent.
spend?What the campaign cost so far. Null without billing access.
created_at?stringanalytics?Added to getWhatsappCampaign only.
Create a campaign
Create a campaign as a draft. It sends nothing until you launch it. Add contacts and launch it in the next calls. Only an approved template can be used, so every campaign starts with one. Scheduling is not offered.
List campaign contacts
Per-contact status for a campaign, oldest first. A contact that read the message and then replied STOP counts as read and opted out.
