Appcharge Offer Designs API

The Offer Designs API from Appcharge — 2 operation(s) for offer designs.

OpenAPI Specification

appcharge-offer-designs-api-openapi.yml Raw ↑
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.