Parameters
campaign
dictionary
name
string
RequiredDescription
Name of the campaign.
description
string
channel
string
RequiredDescription
Delivery channel: `email`, `push`, or `sms`.
audience_type
string
RequiredDescription
Audience targeting mode: `all_users`, `user_attributes`, `audience_ids`, or `custom`.
audience_config
dictionary
Description
Configuration object required for `audience_ids` (`{ audience_ids: [...] }`), `custom` (`{ emails: [...] }` / `{ phones: [...] }`), or `user_attributes` (`{ audience_type: 'user', filters: [...] }`).
schedule_type
string
RequiredDescription
`immediate` or `scheduled`.
status
string
Description
Initial status: `draft` (default), `active`, or `scheduled`.
subject
string
Description
Subject line (required for email campaigns).
content
dictionary
RequiredDescription
Content object. For email: `{ html, text }`. For SMS: `{ message }`. For push: `{ title, body }`.
capping_per_minute
number
Description
Maximum number of recipient rows processed per minute (1-100000). Leave null or omit for standard rate.
scheduled_at
string
Description
ISO-8601 date string for future scheduled dispatch (required when `schedule_type` is `scheduled`).
POST/v1/campaigns
bash
curl https://api.tradly.app/v1/campaigns \
-H "Authorization: Bearer YOUR_PUBLISHABLE_OR_SECRET_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"campaign": {
"name": "Summer Promotion",
"description": "Seasonal discount announcement",
"channel": "email",
"audience_type": "all_users",
"audience_config": null,
"schedule_type": "immediate",
"status": "draft",
"subject": "Summer Sale is Live!",
"content": {
"html": "<h1>Summer Sale!</h1><p>Enjoy 20% off all items today.</p>",
"text": "Summer Sale! Enjoy 20% off all items today."
},
"capping_per_minute": 600
}
}'RESPONSE
json
{
"status": true,
"data": {
"campaign": {
"id": 101
}
}
}