Campaign
Create, start, pause and monitor drip / marketing campaigns and their recipients.
httpAuthorizationBearer <token>application/json- response
data*string|array<string>meta*stringcurl -X GET 'https://aexrux.com/api/v1/campaigns/statistics'{ "data": "string", "meta": "string"}httpAuthorizationBearer <token>application/json- response
data*array<array<unknown>>meta*curl -X GET 'https://aexrux.com/api/v1/campaigns'{ "data": [ [ null ] ], "meta": { "count": 0 }}Routes through the web WaCampaignsController::store — the SINGLE real
dispatch path. now campaigns fire immediately; scheduled/recurring
are armed for the heartbeat sweeper. (The mobile-app controller only
persists rows and never dispatches, so we deliberately don't use it.)
The public schedule_type=later maps to the web vocabulary scheduled,
and recipient phone numbers ride in as manual_numbers — the web path
materialises a workspace Contact for each, so sends are always scoped to
the caller's own workspace.
httpAuthorizationBearer <token>application/json- body
Create a campaign — a multi-recipient send (template, custom message or flow) with optional A/B testing. Scramble reads these rules to document the request body.
Mirrors the input keys the existing App\CampaignController::store accepts (campaign_name / device_id / campaign_type / schedule_type / template_id(s) / flow_id / custom_message / send_date+send_time / timezone / ab_* / contacts), exposed under public-facing names. Recipients are supplied as a list of phone numbers in international format.
campaign_name*stringCampaign label shown in the dashboard. Required.
length <= 255device_id*stringSending device — the device's phone number or id. Required.
campaign_type*stringWhat the campaign sends. Required.
"custom""template""flow"schedule_type*stringWhen to send: now, later (needs send_date+send_time), or recurring. Required.
"now""later""recurring"template_id?|WaTemplate id (required for non-A/B template campaigns).
template_id_a?|A/B testing: the two competing WaTemplate ids.
template_id_b?integer|nullflow_id?|Flow id (required for flow campaigns).
custom_message?|Free-text message body (required for custom campaigns).
length <= 4096send_date?|Date to send on (Y-m-d) — required when schedule_type=later.
date-timesend_time?|Time to send at (HH:MM) — required when schedule_type=later.
length <= 16timezone?|IANA timezone for send_date/send_time. Defaults to UTC.
length <= 64ab_testing?|Enable A/B testing (template campaigns only).
ab_split?|Percentage of recipients sent variant A (10-90). Defaults to 50.
10 <= value <= 90contacts*array<>Recipient phone numbers in international format. At least one required.
1 <= itemsapplication/json- response
data*array<unknown>meta*stringcurl -X POST 'https://aexrux.com/api/v1/campaigns' \ -H 'Content-Type: application/json' \ -d '{ "campaign_name": "string", "device_id": "string", "campaign_type": "custom", "schedule_type": "now", "contacts": [ "string" ]}'{ "data": [ null ], "meta": "string"}httpAuthorizationBearer <token>id*integerapplication/json- response
data*array<unknown>meta*curl -X GET 'https://aexrux.com/api/v1/campaigns/0'{ "data": [ null ], "meta": { "counts": "string", "metrics": "string" }}httpAuthorizationBearer <token>id*integerapplication/json- response
data*meta*stringcurl -X DELETE 'https://aexrux.com/api/v1/campaigns/0'{ "data": { "deleted": true, "message": "string" }, "meta": "string"}httpAuthorizationBearer <token>id*integerapplication/json- response
data*array<unknown>meta*stringcurl -X POST 'https://aexrux.com/api/v1/campaigns/0/stop'{ "data": [ null ], "meta": "string"}Broadcast
Send the same message to many contacts at once and track each broadcast's progress and per-recipient delivery.
Channel
List every messaging channel connected to your workspace — Unofficial WhatsApp (QR), Official WhatsApp (Cloud API / Twilio), Facebook Messenger, Instagram and Telegram — each with its id, label and connection status; and bulk-send one message to many recipients on a channel (the channel equivalent of Broadcast, with a per-recipient result list). Use the listing to discover which channel and connection you can send on with the Message endpoint.