Skip to main content
POST

Authorizations

Authorization
string
header
required

Your API key (as_live_…), created under Settings → API keys.

Body

application/json

An SMS campaign to create. It is built, not sent — start it with POST /v1/campaigns/{id}/start. Target a list_id or a segment_id.

name
string
required

Campaign name (internal).

Example:

"September promo"

message
string
required

The SMS body. Personalize with {first_name}/{link}/{token}; vary with spin syntax {Hi|Hey}.

Example:

"Hi {first_name}! {Check out|See} our September offer: {link} Reply STOP to opt out."

list_id
string

Audience lead list. Provide this or segment_id.

Example:

"8f3c2b10-4d5e-4a6b-9c7d-1e2f3a4b5c6d"

number_id
string

Sending number (or pool_id).

pool_id
string

Send from a number pool (rotates across its numbers). Use instead of number_id for larger sends.

Example:

"7a1b..."

send_rate
integer
default:1

Send rate in messages per second.

Required range: 1 <= x <= 5
Example:

10

Link domain used to shorten {link}. Set together with destination_url (or use an offer).

Example:

"go.yourbrand.com"

destination_url
string

Where {link} points when not using an offer.

Example:

"https://yourbrand.com/lp"

follow_ups
object[]

Optional drip steps sent after the first message.

Maximum array length: 3
suppression_list_ids
string[]

Suppression lists to screen recipients against.

type
enum<string>

Campaign type.

Available options:
broadcast,
reply_based,
click_based,
realtime
Example:

"broadcast"

segment_id
string

Audience segment (snapshotted to a list at creation). Provide this or list_id.

Example:

"3c9a1f22-..."

offer_id
string

Offer to attribute clicks/conversions to; shortens {link} on its URL.

Example:

"b7e2..."

trigger_type
string

For reply_based/click_based: what triggers the response — any_reply, keyword, or code.

Example:

"keyword"

trigger_value
string

The keyword or code to match when trigger_type isn't any_reply.

Example:

"YES"

response_message
string

Instant reply (reply_based) / click response (click_based), sent the moment the trigger fires.

Example:

"Great — here's your link: {link}"

response_destination_url
string

Destination for {link} in the response message.

Link domain for the response message's {link}.

exclude_offer_sent
boolean

Skip contacts already sent this offer.

Example:

true

exclude_offer_replied
boolean

Skip contacts who already replied to this offer.

Example:

true

exclude_offer_clicked
boolean

Skip contacts who already clicked this offer.

Example:

true

skip_replied
boolean

Skip anyone who replied in this campaign.

Example:

true

include_replied_any
boolean

Only contacts who replied to ANY campaign.

Example:

true

include_clicked_any
boolean

Only contacts who clicked in ANY campaign.

Example:

true

scheduled_at
string

UTC ISO time to start automatically; omit to start manually.

Example:

"2026-09-20T15:00:00Z"

Response

One campaign.

ok
boolean
Example:

true

campaign
object

A campaign with its status and headline stats.