Skip to content

List campaigns

Returns campaigns as virtual aggregations over ad documents grouped by platform campaign ID. Metrics (spend, impressions, clicks, etc.) are summed across all ads in each campaign. Campaign status is derived from child ad statuses (active > pending_review > paused > error > completed > cancelled > rejected).

GET /v1/ads/campaigns

Returns campaigns as virtual aggregations over ad documents grouped by platform campaign ID. Metrics (spend, impressions, clicks, etc.) are summed across all ads in each campaign. Campaign status is derived from child ad statuses (active > pending_review > paused > error > completed > cancelled > rejected).

Parameters

  • None (query, any)

  • limit (query, integer)

  • source (query, string) — all (default) returns both Zernio-created ads and those discovered from the platform's ad manager — matches the web UI's default view. Pass zernio to restrict to isExternal=false only. Status is NOT filtered by default — use the status param fo...

  • platform (query, string)

  • status (query, any) — Filter by derived campaign status (post-aggregation)

  • adAccountId (query, string) — Platform ad account ID (e.g. act_123 for Meta)

  • accountId (query, string) — Social account ID

  • profileId (query, string) — Profile ID

Responses

200 — Paginated campaigns

  • campaigns (array)
  • pagination ($ref)

401

403 — Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.