Base URL
Authentication
All requests require your Workspace API Key in theX-API-Key header.
Prerequisites
Evergreen campaigns must be created and configured in the BluBash platform before you can use this API. The API covers audience ingestion and message dispatch only.1
Create an evergreen campaign in the platform
In the BluBash admin panel, create a new campaign with
kind = EVERGREEN.2
Configure channel, message, and rate limits
Set up the channel, message template, and rate limit rules for the campaign.
3
Copy the campaignId
Save the campaign and copy the
campaignId shown in the platform. You will use this ID in every API call below.Add contacts to audience
items array represents one contact and its scheduling configuration.
Request body
string
An IANA timezone name (e.g.
America/New_York) applied to all items whose datetime has no UTC offset and no schedule.timezone specified.array
required
An array of contact + schedule objects. At least one item is required.
Contact resolution
When you provideidentifier instead of contact_id, the platform resolves the contact in this order:
- Looks up the contact by the channel identifier (e.g. normalized WhatsApp number).
- If not found and
emailis provided, searches by email (case-insensitive).- If found without a channel identifier, links the
identifierto the contact. - If found with a different channel identifier, returns a
400error to prevent silent identity merging.
- If found without a channel identifier, links the
- If still not found, creates a new contact using
name,email, andidentifier.
Scheduling rules
Example request
Response fields
array
required
One entry per input item, in the same order as the request.
Example response
Cancel a queued message
Only messages with status
QUEUED can be cancelled. Messages that are already SENDING, SENT, or FAILED cannot be cancelled.Response
List campaign messages
Query parameters
number
default:"50"
Number of results to return per page.
number
default:"0"
Number of results to skip for pagination.
Get a specific message
Message statuses
Recommended workflow
1
Configure the campaign in the platform
Create an evergreen campaign in the BluBash admin panel and copy the
campaignId.2
Add contacts to the audience
Call
POST /api/v1/campaigns/:campaignId/audience with your items array.3
Choose a schedule per contact
Use
schedule.type = immediate for instant delivery, or schedule.type = absolute with a datetime for scheduled delivery.4
Cancel if needed
If you need to stop a queued message, call
POST /api/v1/campaigns/:campaignId/messages/:messageId/cancel.5
Monitor message status
Use
GET /api/v1/campaigns/:campaignId/messages to inspect delivery status across the campaign.