Your campaign scan analytics
QR/scan analytics for your OWN campaign — unique scans, scan CVR, flyers distributed/inserted, inserting progress and average time between scans. Ownership is checked first (404 if the campaign is not yours). Monetary figures (e.g. cost-per-scan derived from Oppizi hard cost) are dropped. Notes: - The "Scans CPA" (an Oppizi-cost amount) is intentionally dropped. Composed from: ownership check (PG) then the /ai scans upstream, curated to a volume/CVR allowlist
QR/scan analytics for your OWN campaign — unique scans, scan CVR, flyers distributed/inserted, inserting progress and average time between scans. Ownership is checked first (404 if the campaign is not yours). Monetary figures (e.g. cost-per-scan derived from Oppizi hard cost) are dropped.
Notes:
- The "Scans CPA" (an Oppizi-cost amount) is intentionally dropped.
Composed from: ownership check (PG) then the /ai scans upstream, curated to a volume/CVR allowlist
Authorization
clientKey Your Oppizi client key. Send it as Authorization: Bearer <client-key>. Scoped to your client account only.
In: header
Path Parameters
Numeric campaign id (must belong to the calling key’s client).
Response Body
application/json
curl -X GET "https://example.com/client/campaigns/string/scans"{ "success": true, "data": { "quantity": { "title": "Unique Scans", "value": 342 }, "cvr": { "title": "Scans CVR", "value": 5.1, "type": "PERCENT" }, "flyers": { "title": "Flyers distributed", "value": 20000 } }}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)
Your campaign price GET
The price of your OWN campaign as shown in the Oppizi UI — subtotal, tax, total, any discount (amountOff/percentOff), plus the currency sign. Only your client’s campaign; a campaign that is not yours returns 404. Oppizi-internal cost/margin fields are never included. Notes: - For an ad-hoc quote BEFORE a campaign exists, use the calculators (client-calc-*). Composed from: ownership check (Campaign.client_id = key.clientId) then sales-ai /cost, curated to a client-price allowlist + currency