Appcharge Offer Designs API
The Offer Designs API from Appcharge — 2 operation(s) for offer designs.
The Offer Designs API from Appcharge — 2 operation(s) for offer designs.
openapi: 3.0.3
info:
title: Appcharge Assets Offer Designs API
version: 1.0.0
description: Appcharge is a monetization platform for mobile games, providing a direct-to-consumer (D2C) web store, mobile Checkout SDK, and Payment Links so publishers can sell in-game offers outside the app stores. This API covers checkout sessions, refunds, coupons and promo codes, price localization, financial and analytics reporting, web store offers (bundles, daily bonuses, rolling/special offers, progress bars, reward calendars, triggered popups), offer components (products, badges, offer designs), game-portal content, media assets, translations, and player personalization/authentication callbacks. Authentication uses the x-publisher-token header; webhooks are signed with an HMAC-SHA256 signature.
contact:
name: Appcharge Developer Support
url: https://docs.appcharge.com/
x-apievangelist-source: https://docs.appcharge.com/api-reference (Mintlify embedded OpenAPI fragments)
x-apievangelist-method: searched
x-apievangelist-generated: '2026-07-17'
servers:
- url: https://api.appcharge.com
description: Production
- url: https://api-sandbox.appcharge.com
description: Sandbox
tags:
- name: Offer Designs
paths:
/components/v1/offer-design:
post:
tags:
- Offer Designs
description: Creates a post purchase popup design.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostPurchasePopupDesignCreate'
responses:
'200':
description: Offer design created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PostPurchasePopupDesignResponse'
'400':
description: Bad request. Invalid input or validation failure.
operationId: postComponentsV1OfferDesign
get:
tags:
- Offer Designs
summary: Get Offer Designs
description: Retrieves a list of all offer designs.
operationId: get-offer-designs
parameters:
- name: x-publisher-token
in: header
required: true
description: Publisher token, as displayed in the Publisher Dashboard.
schema:
type: string
responses:
'200':
description: Offer designs retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/GetAllOfferDesignsResponse'
/components/v1/offer-design/{externalId}:
parameters:
- in: path
name: externalId
required: true
schema:
type: string
description: Design ID that you defined.
delete:
tags:
- Offer Designs
description: Deletes a post purchase popup design.
responses:
'200':
description: Post purchase popup design deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PostPurchasePopupDesignResponse'
'404':
description: Offer design not found.
operationId: deleteComponentsV1OfferDesignExternalid
put:
tags:
- Offer Designs
description: Updates a post purchase popup design.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostPurchasePopupDesignUpdate'
responses:
'200':
description: Offer design updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PostPurchasePopupDesignResponse'
'400':
description: Bad request. Invalid input or validation failure.
'404':
description: Offer design not found.
operationId: putComponentsV1OfferDesignExternalid
components:
schemas:
OfferTitleCreate:
type: object
properties:
text:
type: string
description: Offer title.
example: Your daily bonus!
fontColor:
type: string
description: Title font color.
example: '#FFFFFF'
fontSize:
type: number
description: Font size in pixels.
example: 20
fontWeight:
type: string
description: Font weight.
example: normal
required:
- text
- fontColor
- fontSize
- fontWeight
OfferTitle:
type: object
properties:
text:
type: string
description: Offer title.
example: Limited Time Offer
fontColor:
description: 'Title font color.
**Note:** For Daily Bonuses and Triggered Popups, this property is returned as a string. For Special Offers, this property is returned as an object as shown below.'
additionalProperties: true
properties:
colorOne:
type: string
description: Primary title font color. Only relevant for Special Offers.
example: '#FFFFFF'
colorTwo:
type: string
description: Secondary title font color. Only relevant for Special Offers.
example: '#FDFCF9'
direction:
type: string
description: Color transition direction. Only relevant for Special Offers.
example: to right
example: '#FFFFFF'
fontSize:
type: number
description: Font size in pixels.
example: 20
fontWeight:
type: string
description: Font weight.
example: bold
OfferDesignResponse:
type: object
description: Information about an offer design. The response can include fields for multiple offer design types; fields that are specific to an offer type are marked in their descriptions.
properties:
id:
type: string
description: Offer design ID.
example: 68b3e3473e2ea6249862bddf
offerUiType:
type: string
enum:
- SpecialOffer
- Bundle
- PopUp
- RollingOffer
description: Type of offer design.
example: Bundle
offerUiSubType:
type: string
enum:
- DailyBonus
- PostPurchase
- RewardCalendar
description: Popup design subtype. Only relevant when `offerUiType` is `PopUp`.
example: DailyBonus
name:
type: string
description: Offer design name.
example: Starter Bundle Design
externalId:
type: string
description: Offer design ID that you defined.
example: starter-bundle-design
backgroundImageUrl:
type: string
format: url
description: Background image URL for the offer design.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/background.png
externalBackgroundImageUrl:
type: string
format: url
description: Original background image URL when the design uses an external image URL.
example: https://cdn.example.com/assets/background.png
backgroundExternalImageUrl:
type: string
format: url
description: Original background image URL when an external image URL is used. Only relevant for Rolling Offers.
example: https://cdn.example.com/assets/background.png
title:
description: Title configuration. Only relevant for Special Offers, Daily Bonuses, and Triggered Popups.
allOf:
- $ref: '#/components/schemas/OfferTitle'
buttonSuffixImage:
type: string
description: Button asset suffix. Only relevant for Bundles and Special Offers.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/bundle-button-suffix.png
buttonSuffixAnimation:
type: string
description: Button asset suffix animation. Only relevant for Bundles and Special Offers.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/bundle-button-suffix-animation.json
backgroundColor:
description: "Background color. \n\n**Note:** For Rolling Offers, this property is returned as a string. For Bundles, this property is returned as an object as shown below."
additionalProperties: true
properties:
colorOne:
type: string
description: Primary color.
example: '#E7CF88'
colorTwo:
type: string
description: Secondary color.
example: '#FDFCF9'
gradientDirection:
type: string
enum:
- to top
- to bottom
- to left
- to right
- to top left
- to top right
- to bottom left
- to bottom right
description: Gradient direction.
example: to right
backgroundOpacity:
type: number
description: Background opacity value. Only relevant for Rolling Offers.
example: 80
headerImage:
type: string
format: url
description: Header image URL. Only relevant for Rolling Offers.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/header.png
arrowColor:
type: string
description: Arrow color. Only relevant for Rolling Offers.
example: '#ffffff'
borderColor:
description: Border color configuration. Only relevant for Rolling Offers.
allOf:
- $ref: '#/components/schemas/ColorDetails'
borderWidth:
type: number
description: Border width in pixels. Only relevant for Rolling Offers.
example: 2
subRollingOffer:
description: Sub rolling offer configuration. Only relevant for Rolling Offers.
allOf:
- $ref: '#/components/schemas/SubRollingOfferResponse'
rewardCalendar:
description: Reward calendar design configuration. Only relevant for Reward Calendars.
allOf:
- $ref: '#/components/schemas/RewardCalendarDesignBlockResponse'
PostPurchasePopupDesignCreate:
title: Post Purchase Popup Design
type: object
description: Creates a post purchase popup design.
properties:
offerUiType:
type: string
enum:
- PopUp
description: Type of offer design.
example: PopUp
name:
type: string
description: Offer design name.
example: Post Purchase Popup Design
externalId:
type: string
description: Design ID that you define.
example: post-purchase-popup-design
backgroundImageUrl:
type: string
format: url
description: 'Background image URL in PNG or JPEG format.
For uploaded files, this is the Appcharge-hosted CDN URL. For external image URLs, this is the original image URL served from the provided URL. External image URLs are saved and used as-is, and Appcharge doesn''t download, copy, upload, or host them. Images must remain available at the provided URLs.
We recommend uploading image files instead of using external URLs when possible.'
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/background.png
title:
allOf:
- $ref: '#/components/schemas/OfferTitleCreate'
offerUiSubType:
type: string
enum:
- PostPurchase
description: Popup design subtype. Use `PostPurchase` for post purchase popup designs.
example: PostPurchase
required:
- offerUiType
- name
- externalId
- backgroundImageUrl
- offerUiSubType
RewardCalendarDesignBlockResponse:
type: object
description: Information about the reward calendar design.
properties:
collectibleBadgeImage:
type: string
format: url
description: Badge image to display when a reward is able to be collected.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/collectible-badge.png
lockedBadgeImage:
type: string
format: url
description: Badge image to display when a reward is locked.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/locked-badge.png
backgroundColor:
type: string
pattern: ^#[0-9a-fA-F]{6}$
description: Reward calendar background color in hex format.
example: '#101225'
collectIconImage:
type: string
format: url
description: Icon image displayed when a reward has been collected.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/collect-icon.png
lockedIconImage:
type: string
format: url
description: Icon image displayed when a reward is locked.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/locked-icon.png
dayFontColor:
type: string
pattern: ^#[0-9a-fA-F]{6}$
description: Day label font color in hex format.
example: '#FFFFFF'
subRewardBackgroundImage:
type: string
format: url
description: Sub reward background image URL.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/sub-reward-background.png
mainRewardBackgroundImage:
type: string
format: url
description: Main reward background image URL.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/main-reward-background.png
headerImage:
type: string
format: url
description: Header image URL.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/header.png
OfferTitleResponse:
type: object
properties:
text:
type: string
description: Offer title.
example: Your daily bonus!
fontColor:
type: string
description: Title font color.
example: '#FFFFFF'
fontSize:
type: number
description: Font size in pixels.
example: 20
fontWeight:
type: string
description: Font weight.
example: normal
SubRollingOfferResponse:
type: object
properties:
backgroundImageUrl:
type: string
format: url
description: Background image URL for the sub rolling offer.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/sub-background.png
backgroundExternalImageUrl:
type: string
format: url
description: Original background image URL for the sub rolling offer when an external image URL is used.
example: https://cdn.example.com/assets/background.png
collectText:
type: string
description: Text displayed for the collect action.
example: FREE
ColorDetails:
type: object
description: Color details returned by offer designs.
properties:
colorOne:
type: string
description: Primary color.
example: '#FFFFFF'
colorTwo:
type: string
description: Secondary color.
example: '#FDFCF9'
direction:
type: string
description: Direction of the color transition.
example: to right
PostPurchasePopupDesignResponse:
title: Post Purchase Popup Design
type: object
properties:
id:
type: string
description: Design ID.
example: 6a09aa1018b751228b09faed
offerUiType:
type: string
enum:
- PopUp
description: Type of offer design.
example: PopUp
name:
type: string
description: Offer design name.
example: Post Purchase Popup Design
externalId:
type: string
description: Design ID that you defined.
example: post-purchase-popup-design
backgroundImageUrl:
type: string
format: url
description: Background image URL. For uploaded files, this is the Appcharge-hosted CDN URL. For external image URLs, this is the original image URL served from the provided URL.
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/background.png
title:
allOf:
- $ref: '#/components/schemas/OfferTitleResponse'
externalBackgroundImageUrl:
type: string
format: url
description: Original background image URL when the design uses an external image URL. This URL is used as provided to serve the image.
example: https://cdn.example.com/assets/background.png
offerUiSubType:
type: string
enum:
- PostPurchase
description: Popup design subtype. Use `PostPurchase` for post purchase popup designs.
example: PostPurchase
GetAllOfferDesignsResponse:
type: array
items:
$ref: '#/components/schemas/OfferDesignResponse'
PostPurchasePopupDesignUpdate:
title: Post Purchase Popup Design
type: object
description: Updates a post purchase popup design.
properties:
offerUiType:
type: string
enum:
- PopUp
description: Type of offer design.
example: PopUp
name:
type: string
description: Offer design name.
example: Post Purchase Popup Design Updated
externalId:
type: string
description: Design ID that you define.
example: post-purchase-popup-design
backgroundImageUrl:
type: string
format: url
description: 'Background image URL in PNG or JPEG format.
For uploaded files, this is the Appcharge-hosted CDN URL. For external image URLs, this is the original image URL served from the provided URL. External image URLs are saved and used as-is, and Appcharge doesn''t download, copy, upload, or host them. Images must remain available at the provided URLs.
We recommend uploading image files instead of using external URLs when possible.'
example: https://media.appcharge.com/media/65cb7861ec8924a6b69a0f59/background-v2.png
title:
allOf:
- $ref: '#/components/schemas/OfferTitleCreate'
offerUiSubType:
type: string
enum:
- PostPurchase
description: Popup design subtype. Use `PostPurchase` for post purchase popup designs.
example: PostPurchase
securitySchemes:
PublisherTokenAuth:
type: apiKey
in: header
name: x-publisher-token
description: Publisher token, as displayed in the Publisher Dashboard.