Campaigns
Plan a campaign and fill its calendar.
POST /campaigns
Creates the campaign, has the strategy agent write the plan, and (unless you say otherwise) fills the calendar with posts and creatives.
| Field | Required | Notes |
|---|---|---|
brand |
yes | Brand slug or id. |
name |
yes | What you would call it internally. |
objective |
no | product_launch, sales, awareness, leads, retention, seasonal. Defaults to awareness. |
goal |
no | Plain English. This is what the strategy is built from, so write it like you would brief a person. |
platforms |
no | Array of channel slugs. Defaults to the connected social channels. |
starts_on, ends_on |
no | Defaults to today plus the objective default length. |
posts_per_week |
no | Defaults to the brand cadence. |
generate |
no | false to plan without writing the content yet. |
{
"data": {
"id": "9a0c…",
"name": "Winter collection launch",
"objective": "product_launch",
"status": "planned",
"starts_on": "2026-10-01",
"ends_on": "2026-10-15",
"content_count": 12,
"strategy": {
"positioning": "…",
"promise": "…",
"angles": [{ "name": "The reveal", "angle": "product_spotlight", "funnel_stage": "awareness" }],
"kpi_targets": { "reach": 42000, "engagement": 2310, "conversions": 147 }
}
},
"content_created": 12
}
GET /campaigns and GET /campaigns/{id}
List and read. Filter the list with ?status=active.