Appcharge Triggered Popups API
The Triggered Popups API from Appcharge — 2 operation(s) for triggered popups.
The Triggered Popups API from Appcharge — 2 operation(s) for triggered popups.
openapi: 3.0.3
info:
title: Appcharge Assets Triggered Popups 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: Triggered Popups
paths:
/v2/offer:
get:
tags:
- Triggered Popups
summary: Get Store Refresh Popup
description: Retrieves one or more store refresh popups.
operationId: getStoreRefreshPopup
parameters:
- name: publisherOfferIds
in: query
required: true
description: The unique identifier for the offer. To retrieve multiple store refresh popups, separate them with a comma.
schema:
type: string
example: store-refresh-offer-1,store-refresh-offer-2
- name: x-publisher-token
in: header
required: true
description: The publisher token used for authentication.
schema:
type: string
responses:
'200':
description: Store Refresh Popup retrieved successfully.
content:
application/json:
schema:
type: object
properties:
totalCount:
type: number
description: Total number of matching offers.
offers:
type: array
items:
$ref: '#/components/schemas/StoreRefreshPopupDtoResponse'
'401':
description: Unauthorized.
/v2/offer/{publisherOfferId}:
delete:
tags:
- Triggered Popups
summary: Delete Store Refresh Popup
description: Deletes a store refresh popup.
operationId: deleteStoreRefreshPopup
parameters:
- name: publisherOfferId
description: The offer ID provided by the publisher. This is the offer's **External ID** value in the Publisher Dashboard.
required: true
in: path
schema:
type: string
example: store-refresh-offer-1
- name: x-publisher-token
required: true
in: header
description: The publisher token
schema:
type: string
responses:
'200':
description: Deleted offer.
content:
application/json:
schema:
$ref: '#/components/schemas/StoreRefreshPopupDtoResponse'
'401':
description: Not Authorized
components:
schemas:
ProductSale:
type: object
description: Sale details for the product quantity. The sale will only be applied on the first product.
properties:
sale:
type: integer
description: Sale amount.
example: 30
type:
type: string
description: Sale type.
default: percentage
enum:
- percentage
example: percentage
Badges:
type: array
description: List of badges associated with the Store Refresh Popup.
example:
- publisherBadgeId: best_value
items:
type: object
properties:
publisherBadgeId:
type: string
description: Badge ID.
example: best_value
required:
- publisherBadgeId
Schedule:
type: object
required:
- timeFrames
- permanent
description: Schedule for when the Store Refresh Popup is available.
properties:
permanent:
type: boolean
description: Whether the Store Refresh Popup is permanent.
example: false
timeFrames:
type: array
description: Time frame for the scheduled popup. Leave blank if permanent is set to true. If permanent is false, at least 1 time frame is required. When specifying multiple timeFrames, the startTime and endTime of each must not overlap.
items:
type: object
required:
- startTime
- endTime
properties:
startTime:
type: string
description: Scheduled popup start time.
format: date-time
example: '2026-05-02T00:00:00.000Z'
endTime:
type: string
description: Scheduled popup end time. Can't be a past date.
format: date-time
example: '2026-05-04T23:59:59.000Z'
notes:
type: string
description: Notes about the scheduled popup.
example: Initial weekend rollout
StoreRefreshProductsSequence:
type: array
description: Sequence of products included in the Store Refresh Popup.
items:
type: object
properties:
index:
type: integer
description: Order of the product sequence in the Store Refresh Popup.
example: 1
products:
type: array
description: List of products in the Store Refresh Popup.
items:
type: object
required:
- publisherProductId
- quantity
- priority
properties:
publisherProductId:
type: string
description: Product ID.
example: green_diamond
quantity:
type: integer
description: Product quantity in the Store Refresh Popup.
example: 1
priority:
type: string
description: Specifies the display priority of a product within the Store Refresh Popup.
enum:
- Main
- Sub
example: Main
priceInUsdCents:
type: integer
description: Product sequence price in cents. The value must be either 0 (free), or have a minimum 80 cents.
example: 99
playerAvailability:
type: number
description: Amount of times the player can purchase the Store Refresh Popup. Must be a minimum of 1.
example: 10
hidePlayerAvailability:
type: boolean
description: Whether to hide the availability text based on the `playerAvailability` property value in the web store. If `false`, and if `playerAvailability` is set to `5`, the web store displays `Available 5/5`. When a player purchases the offer, the displayed availability decreases, for example to `Available 4/5`. Set to `true` to hide the availability text in the UI.
default: false
example: true
required:
- index
- products
- priceInUsdCents
PriceDiscount:
type: object
description: Price discount applied to the Store Refresh Popup. Relevant only for paid offers.
properties:
discount:
type: integer
description: Discount amount.
example: 25
type:
type: string
description: Discount type.
default: percentage
enum:
- percentage
example: percentage
StoreRefreshPopupDtoResponse:
type: object
properties:
publisherId:
type: string
description: Publisher ID.
offerId:
type: string
description: Store Refresh Popup ID.
publisherOfferId:
type: string
description: Store Refresh Popup ID provided by the publisher. This is the offer's **External ID** value in the Publisher Dashboard.
name:
type: string
description: Store Refresh Popup name.
displayName:
type: string
description: Store Refresh Popup display name. If not provided, the name will be used.
description:
type: string
description: Store Refresh Popup description.
type:
type: string
description: Offer type.
subType:
type: string
description: Offer sub type - In this case 'StoreRefresh'.
active:
type: boolean
description: Whether the Store Refresh Popup is active.
priority:
type: integer
description: Priority level of the Store Refresh Popup.
offerUi:
type: object
description: UI configuration for the Store Refresh Popup.
properties:
offerUiId:
type: string
description: Offer Design ID generated by Appcharge. This is the design's **ID** value in the Publisher Dashboard.
example: 68b41c5aa1c5b1a284737e9b
offerExternalUiId:
type: string
description: Offer Design ID. This is the design's **External ID** value in the Publisher Dashboard.
example: Real_Store_Refresh
active:
type: boolean
description: Whether the Store Refresh Popup design is active.
offerUiType:
type: string
description: Offer design type.
name:
type: string
description: Store Refresh Popup design name, as configured in the Publisher Dashboard.
description:
type: string
description: Store Refresh Popup design description, as configured in the Publisher Dashboard.
segments:
type: array
description: List of player segments that this Store Refresh Popup applies to.
items:
type: string
productsSequence:
$ref: '#/components/schemas/StoreRefreshProductsSequence'
displayRule:
$ref: '#/components/schemas/StoreRefreshDisplayRule'
schedule:
$ref: '#/components/schemas/Schedule'
productSale:
$ref: '#/components/schemas/ProductSale'
priceDiscount:
$ref: '#/components/schemas/PriceDiscount'
badges:
$ref: '#/components/schemas/Badges'
createdAt:
type: string
description: Date the Store Refresh Popup was created.
format: date-time
updatedAt:
type: string
description: Date the Store Refresh Popup was updated.
format: date-time
StoreRefreshDisplayRule:
type: object
required:
- frequency
- cooldownInMinutes
description: Rules that control how often the Store Refresh Popup is displayed.
properties:
frequency:
type: integer
description: Number of store refreshes required before the popup is displayed.
example: 3
cooldownInMinutes:
type: integer
description: Number of minutes that must pass before the popup can be shown again.
example: 1
securitySchemes:
PublisherTokenAuth:
type: apiKey
in: header
name: x-publisher-token
description: Publisher token, as displayed in the Publisher Dashboard.