Campaigns are sent through WhatsApp. An Ongoing Campaign has no fixed list: contacts join over time, manually, through the API, or through the RD Station Marketing integration. In the API, the Ongoing Campaign corresponds to the
EVERGREEN type.Base URL
Authentication
Send the workspace API Key in theX-API-Key header. See API introduction →.
Prerequisites
The API does not create campaigns. It only adds contacts and controls the messages of an Ongoing Campaign that already exists in BluBash.1
Create the Ongoing Campaign
In Campaigns, create a campaign of the Ongoing Campaign type. Choose the WhatsApp channel, the message (template or text), and the send limit. See Create a campaign →.
2
Copy the endpoint
Open the campaign, go to the Integrations tab, and expand Campaign API. Copy the Audience endpoint. The
campaignId is the part between /campaigns/ and /audience.3
Keep the campaign active
You cannot add contacts to a paused, cancelled, or failed campaign.
Endpoints
Add contacts to the audience
items array is one contact.
Request body
string
IANA time zone (for example,
America/New_York) applied to items whose datetime has no UTC offset and that do not set schedule.timezone.array
required
List of contacts with the schedule for each one. At least one item is required.
Contact resolution
When you sendidentifier instead of contact_id, BluBash looks for the contact in this order:
- By the channel identifier (for example, the normalized WhatsApp number).
- If not found and
emailis present, by email, case-insensitive.- If the contact found has no identifier on the channel, the
identifieris linked to it. - If the contact found has a different identifier on the channel, the API returns
400, to avoid merging different people.
- If the contact found has no identifier on the channel, the
- If still not found, it creates a new contact with
name,email, andidentifier.
Scheduling rules
Request example
Response fields
array
required
One result per item sent, in the same order as the request.
Response example
Cancel a queued message
Only messages with the
QUEUED status can be cancelled. SENDING, SENT, or FAILED messages cannot.Response
List campaign messages
Query parameters
number
default:"50"
Number of results per page.
number
default:"0"
Number of results to skip, for pagination.
Get a message
Message statuses
Recommended workflow
1
Set up the campaign in BluBash
Create the Ongoing Campaign and copy the endpoint from the Integrations tab.
2
Add contacts
Call
POST /api/v1/campaigns/{campaignId}/audience with the items array, for example on every new sign-up in your system.3
Choose the schedule
Use
schedule.type = immediate for an immediate send or schedule.type = absolute with datetime for a scheduled send.4
Cancel if needed
To stop a queued message, call
POST /api/v1/campaigns/{campaignId}/messages/{messageId}/cancel.5
Track delivery
Use
GET /api/v1/campaigns/{campaignId}/messages to check the status. In BluBash, contacts added through the API appear with the API source in the campaign details.Code examples
Error reference
Next steps
Manage campaigns
Track sends, pause, and resume campaigns.
Channels API
Connect the AI agent to your system’s chat.