filters object from GET responses — only send what you need.
Create defaults
Still required (no default for the key itself):
name, mode, pages, domain, alias, and in filters: geolocation, referer, query, domain, browser, browser_language, isp, os, user_agent, blacklist.
Inside required objects you may omit nested defaults (e.g. send "domain": {}, "referer": { "block_null": true, "domains": [] }).
To target a single ad network, send only that network as true (e.g. "facebook": true). All other networks default to false.
Pages / offers business rules
Returns422 if violated:
Minimal example
Production-safe body with only non-default values:active, all other ad networks, deny_always (false), bots, proxy, adspy, cloakup_ai, state, city, network_type, device, and every allow / remove_params flag.
Update (PUT)
PUT /v1/campaigns/:id uses the same full body as create. This is not a partial PATCH — send the complete CampaignBody.