Appcharge Triggered Popups API

The Triggered Popups API from Appcharge — 2 operation(s) for triggered popups.

OpenAPI Specification

appcharge-triggered-popups-api-openapi.yml Raw ↑
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.