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.