CAKE API — Reporting

This article will cover the following:

Why use this API?
Use the Reporting API to feed CAKE performance data into external BI tools, automate daily report delivery, build custom client-facing dashboards, or reconcile CAKE numbers against advertiser data.
Authentication: All CAKE API requests require your api_key parameter. Find yours under Setup → System Access → API Keys.

Overview

CAKE's Reporting API aggregates click, impression, conversion, and revenue data across every dimension — offers, affiliates, advertisers, creatives, sub IDs, countries, and time. Data reflects activity tracked within the platform; clicks are recorded when tracking links fire, conversions when a postback or pixel fires successfully. Access reports through the CAKE dashboard at Reports, or pull programmatically via the API.



Key Concepts

  • EPC (Earnings Per Click) — Average affiliate earnings divided by total clicks. Measures offer quality and affiliate efficiency.
  • Conversion Statusapproved, pending, rejected. Payouts typically only disbursed for approved conversions.
  • Sub ID — Custom affiliate tracking parameter (&s1=) used to segment traffic. CAKE equivalent of UTM parameters.
  • Pagination — All report endpoints support start_at_row and row_limit for retrieving large datasets in chunks.


Available Actions

Offer Report

Aggregates performance at the offer level — clicks, conversions, payout, revenue, EPC, and conversion rate for each offer over a date range. Access via Reports → Offer Report in CAKE.

When to use: Identify highest/lowest performing offers, monitor revenue trends, compare performance across verticals or affiliates.
GET /api/2/report/offer.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart of reporting range (YYYY-MM-DD).
end_datedateYesEnd of reporting range (YYYY-MM-DD).
offer_idintegerNoFilter to a single offer.
affiliate_idintegerNoFilter to a single affiliate.
advertiser_idintegerNoFilter to a single advertiser.
vertical_idintegerNoFilter by vertical.
country_idintegerNoFilter by country.
start_at_rowintegerNoPagination offset. Default 1.
row_limitintegerNoMax rows. Default 100, max 10000.
sort_fieldstringNoconversions | clicks | revenue | epc
sort_descendingbooleanNotrue for descending.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/offer.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-31&sort_field=conversions&sort_descending=true&row_limit=50

Sample response

{ "request_status": "Success", "response": { "data": { "offers": [ { "offer_id": 12345, "offer_name": "Auto Insurance Quote - US", "clicks": 8420, "unique_clicks": 7930, "conversions": 312, "conversion_rate": 3.71, "payout": 5616.00, "revenue": 6864.00, "profit": 1248.00, "epc": 0.667 } ], "totals": { "clicks": 8420, "conversions": 312, "payout": 5616.00, "revenue": 6864.00 } } } }


Affiliate Report

Aggregates clicks, conversions, and earnings by affiliate. Use to generate affiliate-facing statements, identify top performers, or automate tier reclassification.

When to use: Build affiliate earnings dashboards, identify top performers for tier upgrades, or automate performance-based payout adjustments.
GET /api/2/report/affiliate.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart date (YYYY-MM-DD).
end_datedateYesEnd date (YYYY-MM-DD).
affiliate_idintegerNoFilter to a single affiliate.
offer_idintegerNoFilter to a single offer.
start_at_rowintegerNoPagination offset.
row_limitintegerNoMax rows. Default 100, max 10000.
sort_fieldstringNoclicks | conversions | payout | epc
sort_descendingbooleanNotrue for descending.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/affiliate.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-31&sort_field=payout&sort_descending=true

Sample response

{ "request_status": "Success", "response": { "data": { "affiliates": [ { "affiliate_id": 67890, "affiliate_name": "MediaBridge Partners", "clicks": 3210, "conversions": 142, "conversion_rate": 4.42, "payout": 2556.00, "epc": 0.796 } ] } } }


Advertiser Report

Aggregates performance by advertiser — clicks, conversions, and revenue. Use for advertiser billing reconciliation or revenue reporting.

When to use: Generate advertiser-facing revenue statements or audit conversion delivery before sending invoices.
GET /api/2/report/advertiser.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart date (YYYY-MM-DD).
end_datedateYesEnd date (YYYY-MM-DD).
advertiser_idintegerNoFilter to a single advertiser.
offer_idintegerNoFilter to a single offer.
start_at_rowintegerNoPagination offset.
row_limitintegerNoMax rows. Default 100, max 10000.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/advertiser.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-31&advertiser_id=1021

Sample response

{ "request_status": "Success", "response": { "data": { "advertisers": [ { "advertiser_id": 1021, "advertiser_name": "Acme Financial Services", "clicks": 12500, "conversions": 487, "revenue": 10714.00 } ] } } }


Conversion Report

Row-level visibility into individual conversion events including status. Critical for fraud review, payout reconciliation, and postback debugging.

When to use: Audit individual conversion records; filter by status to find rejections; debug postback issues by inspecting conversion-level data.
GET /api/2/report/conversion.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart date (YYYY-MM-DD).
end_datedateYesEnd date (YYYY-MM-DD).
offer_idintegerNoFilter by offer.
affiliate_idintegerNoFilter by affiliate.
conversion_statusstringNoapproved | pending | rejected
start_at_rowintegerNoPagination offset.
row_limitintegerNoMax rows. Default 100, max 10000.
sort_fieldstringNoField to sort by.
sort_descendingbooleanNotrue for descending.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/conversion.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-31&offer_id=12345&conversion_status=approved&row_limit=100

Sample response

{ "request_status": "Success", "response": { "data": { "conversions": [ { "conversion_id": 998877, "conversion_date": "2026-01-15 14:30:00", "offer_id": 12345, "affiliate_id": 67890, "payout": 18.00, "revenue": 22.00, "conversion_status": "approved", "unique_id": "ORD-98765" } ] } } }


Sub ID Report

Breaks down performance by Sub ID values — identify which sub-publishers, placements, or channels drive the best results within a campaign.

When to use: Identify best-performing sub-publishers or traffic placements within an affiliate's campaign.
GET /api/2/report/subid.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart date (YYYY-MM-DD).
end_datedateYesEnd date (YYYY-MM-DD).
offer_idintegerNoFilter to a single offer.
affiliate_idintegerNoFilter to a single affiliate.
sub_idstringNoFilter to a specific Sub ID value.
start_at_rowintegerNoPagination offset.
row_limitintegerNoMax rows. Default 100, max 10000.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/subid.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-31&affiliate_id=67890&offer_id=12345

Sample response

{ "request_status": "Success", "response": { "data": { "rows": [ { "sub_id": "email_list_a", "clicks": 1820, "conversions": 94, "payout": 1692.00, "epc": 0.930 }, { "sub_id": "display_banner", "clicks": 1390, "conversions": 48, "payout": 864.00, "epc": 0.622 } ] } } }


Daily Report

Aggregates performance by day — use to track daily trends, spot traffic anomalies, or build time-series charts in external dashboards.

When to use: Build time-series performance charts, detect daily traffic anomalies, or automate daily performance emails.
GET /api/2/report/daily.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
start_datedateYesStart date (YYYY-MM-DD).
end_datedateYesEnd date (YYYY-MM-DD).
offer_idintegerNoFilter by offer.
affiliate_idintegerNoFilter by affiliate.
advertiser_idintegerNoFilter by advertiser.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/report/daily.json?api_key=YOUR_API_KEY&start_date=2026-01-01&end_date=2026-01-07&offer_id=12345

Sample response

{ "request_status": "Success", "response": { "data": { "rows": [ { "date": "2026-01-01", "clicks": 1200, "conversions": 44, "payout": 792.00, "revenue": 968.00 }, { "date": "2026-01-02", "clicks": 1350, "conversions": 52, "payout": 936.00, "revenue": 1144.00 } ] } } }


If you have any questions, please reach out to your dedicated CAKE Client Success Manager/Account Manager or contact the CAKE Support Team at support@getCAKE.com.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.