Skip to main content
POST
cURL
Rate Limit: 12 requests per second
Pass an Idempotency-Key header (UUID recommended) so retries don’t create duplicate campaigns.

Channel-specific Fields

Sending a channel-only field for the wrong integration_type returns a 400 INVALID_REQUEST.

Cycles

cycles is optional. When cycles.enabled is false (or omitted), the rest of the cycles block is ignored. When cycles.mode is cooldown, schedule* fields are rejected. Cycles can be enabled only at creation time; cycles.enabled and cycles.mode are immutable thereafter.

Examples

Phone-call campaign with cooldown cycles

WhatsApp campaign

Authorizations

Authorization
string
header
required

Add api-key YOUR_API_SECRET_KEY as the value of the Authorization header.

Headers

Idempotency-Key
string

Optional client-generated key (UUID recommended) to make the request idempotent. Replays within the dedup window return the original response.

Body

application/json

Campaign to be created

name
string
required
Maximum string length: 255
agent_id
string<uuid4>
required

public_id of the agent that will own this campaign.

integration_id
string
required

public_id of the integration to use. Must belong to agent_id.

integration_type
enum<string>
required
Available options:
phone_call,
whatsapp
description
string
timezone
string

IANA timezone. Defaults to America/Mexico_City.

retries
integer
default:1
Required range: 0 <= x <= 5
message_limit
integer
default:250
Required range: 1 <= x <= 10000
first_message
string

First message the Agent will say upon the call being answered. Phone-call only.

template
string

WhatsApp template name. WhatsApp only.

template_alt
string

Alternate WhatsApp template name. WhatsApp only.

scheduling
object
cycles
object

Cycles configuration block. Phone-call campaigns only.

Response

Campaign created successfully

success
boolean
campaign
object

Single Campaign detail with nested agent, integration and cycles config. The analytics field is included only when a snapshot is available for the campaign.