Channels · WhatsApp · Campaigns

Campaign APIs

Base URL & auth

  • Prefix: /api/business/public on https://api.engagive.io (full base: https://api.engagive.io/api/business/public).
  • Header: Authorization: Bearer <token> — create the token under Profile → API access token in the business app.
  • See also: Authentication, Errors & responses.

Bulk template campaigns for a WhatsApp account. Create starts in draft; use lifecycle actions to launch or schedule.

Get phone_id from Accounts (`GET …/accounts`). template_content_id must be an approved (non-draft) template content.

GET

List campaigns

Required permission: WhatsApp Campaigns — View

Paginated campaigns. Optional search (name) and status filter.

Path
/api/business/public/channels/whatsapp/accounts/:accountId/campaigns
Example success response (JSON)
{
  "success": true,
  "statusCode": 200,
  "data": [
    {
      "id": 100,
      "name": "August promo",
      "campaign_code": "august_promo",
      "status": "draft",
      "template_content_id": 10,
      "template_code": "order_shipped",
      "lang_code": "en_US",
      "total_recipients": 250,
      "counts_sent": 0,
      "counts_delivered": 0,
      "counts_read": 0,
      "counts_failed": 0,
      "scheduled_at": null,
      "created_at": "2026-08-05T00:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 10,
    "totalCount": 1,
    "totalPages": 1
  }
}

Try it

Runs in your browser — token is not stored

If the request fails with a network / CORS error, your API may not allow browser calls from this site. Use curl, Postman, or your server instead. See Postman.

Full request URL
GET https://api.engagive.io/api/business/public/channels/whatsapp/accounts/1/campaigns?page=1&pageSize=10
GET

Get campaign

Required permission: WhatsApp Campaigns — View

Path
/api/business/public/channels/whatsapp/accounts/:accountId/campaigns/:campaignId
Example success response (JSON)
{
  "success": true,
  "statusCode": 200,
  "data": {
    "id": 100,
    "name": "August promo",
    "campaign_code": "august_promo",
    "status": "draft",
    "phone_id": 1,
    "template_content_id": 10,
    "variable_mapping": {
      "body_1": "Customer"
    },
    "total_recipients": 250,
    "audience_batch_size": null,
    "batch_delay_minutes": null
  }
}

Try it

Runs in your browser — token is not stored

If the request fails with a network / CORS error, your API may not allow browser calls from this site. Use curl, Postman, or your server instead. See Postman.

Full request URL
GET https://api.engagive.io/api/business/public/channels/whatsapp/accounts/1/campaigns/100
POST

Create campaign

Required permission: WhatsApp Campaigns — Add

Creates a draft campaign. Requires phone_id (profile phone row) and approved template_content_id. Audience: audience_all_active or audience_contact_ids. Optional batching: audience_batch_size + batch_delay_minutes together.

Path
/api/business/public/channels/whatsapp/accounts/:accountId/campaigns
Example request body (JSON)
{
  "name": "August promo",
  "phone_id": 1,
  "template_content_id": 10,
  "audience_all_active": true,
  "variable_mapping": {
    "body_1": "Customer"
  }
}
Example success response (JSON)
{
  "success": true,
  "statusCode": 201,
  "message": "Campaign created",
  "data": {
    "id": 100,
    "name": "August promo",
    "campaign_code": "august_promo",
    "status": "draft",
    "template_content_id": 10,
    "total_recipients": 250,
    "phone_id": 1
  }
}

Try it

Runs in your browser — token is not stored

If the request fails with a network / CORS error, your API may not allow browser calls from this site. Use curl, Postman, or your server instead. See Postman.

Full request URL
POST https://api.engagive.io/api/business/public/channels/whatsapp/accounts/1/campaigns
PUT

Update campaign

Required permission: WhatsApp Campaigns — Edit

Update draft campaign fields (name, template, audience, batching, variable_mapping).

Path
/api/business/public/channels/whatsapp/accounts/:accountId/campaigns/:campaignId
Example request body (JSON)
{
  "name": "August promo (selected)",
  "phone_id": 1,
  "template_content_id": 10,
  "audience_contact_ids": [
    42,
    43,
    44
  ],
  "variable_mapping": {},
  "audience_batch_size": 1000,
  "batch_delay_minutes": 5
}
Example success response (JSON)
{
  "success": true,
  "statusCode": 200,
  "data": {
    "id": 100,
    "name": "August promo",
    "campaign_code": "august_promo",
    "status": "draft",
    "phone_id": 1,
    "template_content_id": 10,
    "variable_mapping": {
      "body_1": "Customer"
    },
    "total_recipients": 250,
    "audience_batch_size": null,
    "batch_delay_minutes": null
  }
}

Try it

Runs in your browser — token is not stored

If the request fails with a network / CORS error, your API may not allow browser calls from this site. Use curl, Postman, or your server instead. See Postman.

Full request URL
PUT https://api.engagive.io/api/business/public/channels/whatsapp/accounts/1/campaigns/100