Get campaign performance
Returns distribution and engagement performance for a campaign. No cost, revenue or margin fields are exposed on the public API.
Returns distribution and engagement performance for a campaign. No cost, revenue or margin fields are exposed on the public API.
Authorization
clientKey Your Oppizi client key. Send it as Authorization: Bearer <client-key>. Scoped to your client account only.
In: header
Path Parameters
The campaign id.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/client/campaigns/string/performance"{ "success": true, "data": { "distributed": 42310, "scans": 2874, "reach": 38100, "conversions": 512, "timeline": [ { "date": "2026-03-04", "distributed": 3200, "scans": 210 } ] }}{ "success": false, "error": "Unauthorized"}{ "success": false, "error": "Unauthorized"}Get campaign coupons GET
Lists the flyer/promo codes for your campaign. Each row's `code` is the value to send as `coupon` when recording a tracking event. Scoped to your client — a campaign that is not yours returns an empty page.
Your campaign analytics view GET
A curated analytics view for your OWN campaign. `slug` selects the view: overview (volume series over time), by-week and by-city (per-period / per-territory tables), ab-test (flyer-variant table), timeline (mission progress) and creative (your artwork performance). Includes your OWN value figures (revenue, ROI, CPA, spend/total and cost-per-scan) where available; Oppizi cost-to-deliver / margin figures (hard cost, distribution cost, BA payout) are stripped by an allowlist. Ownership is checked first — a campaign that is not yours returns 404. Notes: - Curated by an allowlist: any Oppizi cost-to-deliver / margin series (hardCost, distributionCost, baPayout, margin) is dropped. Composed from: ownership check (PG) then the matching /ai analytics upstream, curated to a value/volume allowlist (Oppizi-cost keys dropped)