How to Create and Update Offers via the CAKE API

This article will cover the following:

When to use these endpoints:
Use these write endpoints to create offers in bulk, automate offer setup during advertiser onboarding, or update payout and status without logging into the CAKE UI.
Authentication: All CAKE API requests require your api_key parameter. Find yours under Setup → System Access → API Keys.
Part of a series: This focused guide is part of the complete CAKE API — Offers reference, which documents all available endpoints for this feature area.

Available Endpoints

Create Offer

Creates a new offer in CAKE. Use this endpoint to programmatically onboard offers when new advertiser products are added in an external system, eliminating manual UI entry.

When to use: Building an integration that auto-creates CAKE offers when advertisers add products to an external platform.
POST /api/2/offer.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
offer_namestringYesDisplay name for the offer.
advertiser_idintegerYesID of the advertiser running this offer.
vertical_idintegerYesVertical category the offer belongs to.
offer_urlstringYesThe tracking URL affiliates will use.
preview_urlstringNoLanding page preview URL for affiliates.
offer_statusstringNoactive | inactive | pending. Default: active.
payoutdecimalNoAffiliate payout amount.
payout_typestringNocpa | cpc | cpm | revshare
revenuedecimalNoAdvertiser revenue amount.
revenue_typestringNocpa | cpc | cpm | revshare
currency_idintegerNoCurrency ID (1 = USD).
session_hoursintegerNoCookie duration in hours.
expiration_datedatetimeNoOffer expiry (YYYY-MM-DD HH:MM:SS).
offer_descriptionstringNoInternal description visible to affiliates in their portal.

Sample request

POST https://yourdomain.cakemarketing.com/api/2/offer.json { "api_key": "YOUR_API_KEY", "offer_name": "Home Warranty Lead - Premium", "advertiser_id": 101, "vertical_id": 7, "offer_url": "https://track.yourdomain.com/aff_c?offer_id={offer_id}&aff_id={aff_id}", "offer_status": "active", "payout": 24.00, "payout_type": "cpa", "revenue": 30.00, "currency_id": 1, "session_hours": 24 }

Sample response

{ "request_status": "Success", "offer": { "offer_id": 12346, "offer_name": "Home Warranty Lead - Premium", "offer_status": "active", "payout": 24.00, "payout_type": "CPA", "revenue": 30.00, "created_date": "2026-06-19 09:15:00" } }

Update Offer

Updates an existing offer's payout, status, or expiry without touching the CAKE UI — essential for bulk updates or automated campaign management via script.

When to use: Automated payout adjustments, pausing expired offers on a schedule, or syncing offer status changes from an external system.
POST /api/2/update_offer.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
offer_idintegerYesID of the offer to update.
offer_namestringNoNew display name.
offer_statusstringNoactive | inactive | pending
payoutdecimalNoUpdated affiliate payout.
revenuedecimalNoUpdated advertiser revenue.
expiration_datedatetimeNoNew expiry date (YYYY-MM-DD HH:MM:SS).

Sample request

POST https://yourdomain.cakemarketing.com/api/2/update_offer.json { "api_key": "YOUR_API_KEY", "offer_id": 12345, "offer_status": "inactive", "payout": 20.00, "expiration_date": "2026-09-30 23:59:59" }

Sample response

{ "request_status": "Success", "offer": { "offer_id": 12345, "offer_name": "Auto Insurance Quote - US", "offer_status": "inactive", "payout": 20.00, "expiration_date": "2026-09-30 23:59:59" } }


Update Offer

Updates an existing offer's payout, status, or expiry without touching the CAKE UI — essential for bulk updates or automated campaign management via script.

When to use: Automated payout adjustments, pausing expired offers on a schedule, or syncing offer status changes from an external system.
POST /api/2/update_offer.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
offer_idintegerYesID of the offer to update.
offer_namestringNoNew display name.
offer_statusstringNoactive | inactive | pending
payoutdecimalNoUpdated affiliate payout.
revenuedecimalNoUpdated advertiser revenue.
expiration_datedatetimeNoNew expiry date (YYYY-MM-DD HH:MM:SS).

Sample request

POST https://yourdomain.cakemarketing.com/api/2/update_offer.json { "api_key": "YOUR_API_KEY", "offer_id": 12345, "offer_status": "inactive", "payout": 20.00, "expiration_date": "2026-09-30 23:59:59" }

Sample response

{ "request_status": "Success", "offer": { "offer_id": 12345, "offer_name": "Auto Insurance Quote - US", "offer_status": "inactive", "payout": 20.00, "expiration_date": "2026-09-30 23:59:59" } }



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.