Appcharge Badges API

The Badges API from Appcharge — 2 operation(s) for badges.

OpenAPI Specification

appcharge-badges-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Appcharge Assets Badges 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: Badges
paths:
  /components/v1/badge:
    post:
      tags:
      - Badges
      description: Creates a badge.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/EmblemBadgeCreate'
              - $ref: '#/components/schemas/RibbonBadgeCreate'
              discriminator:
                propertyName: type
                mapping:
                  emblem:
                    $ref: '#/components/schemas/EmblemBadgeCreate'
                  ribbon:
                    $ref: '#/components/schemas/RibbonBadgeCreate'
      responses:
        '200':
          description: Badge created successfully.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/EmblemBadgeResponse'
                - $ref: '#/components/schemas/RibbonBadgeResponse'
                discriminator:
                  propertyName: type
                  mapping:
                    emblem:
                      $ref: '#/components/schemas/EmblemBadgeResponse'
                    ribbon:
                      $ref: '#/components/schemas/RibbonBadgeResponse'
        '400':
          description: Bad request. Invalid input or validation failure.
      operationId: postComponentsV1Badge
    get:
      tags:
      - Badges
      description: Retrieves a list of all badges.
      responses:
        '200':
          description: Badges retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllBadgesResponse'
      operationId: getComponentsV1Badge
  /components/v1/badge/{externalId}:
    parameters:
    - in: path
      name: externalId
      required: true
      schema:
        type: string
        example: new_year_ribbon
      description: External ID that you defined.
    delete:
      tags:
      - Badges
      description: Deletes a badge.
      responses:
        '200':
          description: Badge deleted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadgeReadResponse'
        '404':
          description: Badge not found.
      operationId: deleteComponentsV1BadgeExternalid
    get:
      tags:
      - Badges
      description: Retrieves a specific badge.
      responses:
        '200':
          description: Badge details retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadgeReadResponse'
        '404':
          description: Badge not found.
      operationId: getComponentsV1BadgeExternalid
    put:
      tags:
      - Badges
      description: Updates a badge.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/EmblemBadgeUpdate'
              - $ref: '#/components/schemas/RibbonBadgeUpdate'
              discriminator:
                propertyName: type
                mapping:
                  emblem:
                    $ref: '#/components/schemas/EmblemBadgeUpdate'
                  ribbon:
                    $ref: '#/components/schemas/RibbonBadgeUpdate'
      responses:
        '200':
          description: Badge updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadgeReadResponse'
        '400':
          description: Bad request. Invalid input or validation failure.
        '404':
          description: Badge not found.
      operationId: putComponentsV1BadgeExternalid
components:
  schemas:
    EmblemBadgeResponse:
      title: Emblem Badge
      type: object
      properties:
        id:
          type: string
          description: Badge ID.
          example: 507f1f77bcf86cd799439011
        name:
          type: string
          description: Badge name.
          example: New Year Celebration
        publisherBadgeId:
          type: string
          description: Badge ID that you defined.
          example: new_year_celebration
        type:
          type: string
          enum:
          - emblem
          description: Badge type.
          example: emblem
        badgeImageUrl:
          type: string
          format: url
          description: Badge 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/69133d595af23405d8e843a5
    RibbonBadgeResponse:
      title: Ribbon Badge
      type: object
      properties:
        id:
          type: string
          description: Badge ID.
          example: 507f1f77bcf86cd799439012
        name:
          type: string
          description: Badge name.
          example: New Year Celebration
        publisherBadgeId:
          type: string
          description: Badge ID that you defined.
          example: new_year_celebration
        type:
          type: string
          enum:
          - ribbon
          description: Badge type.
          example: ribbon
        badgeImageUrl:
          type: string
          format: url
          description: Badge 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/69133d595af23405d8e843a5
        text:
          type: string
          description: Badge text.
          example: New Year Sale
        backgroundColor:
          allOf:
          - $ref: '#/components/schemas/BackgroundColorGradient'
          - description: Background color details.
            example:
              colorOne: '#00c6ff'
              colorTwo: '#0072ff'
              gradientDirection: to right
        textColor:
          type: object
          properties:
            colorOne:
              type: string
              pattern: ^#[0-9a-fA-F]{6}$
              description: Text color in hex format.
              example: '#ffffff'
    EmblemBadgeUpdate:
      title: Emblem Badge
      allOf:
      - $ref: '#/components/schemas/BadgeBase'
      - description: Update an emblem badge.
      - type: object
        properties:
          name:
            type: string
            description: Badge name.
            example: New Year Celebration
          publisherBadgeId:
            type: string
            description: Badge ID that you define.
            example: new_year_celebration
          type:
            type: string
            enum:
            - emblem
            description: Badge type.
            example: emblem
          badgeImageUrl:
            type: string
            format: url
            description: 'Badge 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/69133d595af23405d8e843a5
        required:
        - type
    BadgeBase:
      type: object
      properties:
        name:
          type: string
          description: Badge name.
          example: New Year Celebration
        publisherBadgeId:
          type: string
          description: Badge ID that you define.
          example: new_year_celebration
        type:
          type: string
          description: Badge type.
          example: ribbon
        badgeImageUrl:
          type: string
          format: url
          description: 'Badge 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/69133d595af23405d8e843a5
      required:
      - name
      - publisherBadgeId
      - type
    BackgroundColorGradient:
      type: object
      properties:
        colorOne:
          type: string
          default: '#000000'
          pattern: ^#[0-9a-fA-F]{6}$
          description: Primary gradient color in hex format.
          example: '#00c6ff'
        colorTwo:
          type: string
          pattern: ^#[0-9a-fA-F]{6}$
          description: Secondary gradient color in hex format.
          example: '#0072ff'
        gradientDirection:
          type: string
          enum:
          - to bottom
          - to top
          - to right
          - to left
          - to bottom right
          - to top left
          - to bottom left
          - to top right
          default: to bottom
          description: Direction of gradient transition between `colorOne` and `colorTwo`.
          example: to right
    RibbonBadgeUpdate:
      title: Ribbon Badge
      allOf:
      - $ref: '#/components/schemas/RibbonBadgeBase'
      - description: Update a ribbon badge.
      - type: object
        properties:
          name:
            type: string
            description: Badge name.
            example: New Year Celebration
          publisherBadgeId:
            type: string
            description: Badge ID that you define.
            example: new_year_celebration
          type:
            type: string
            enum:
            - ribbon
            description: Badge type.
            example: ribbon
          imageUrl:
            type: string
            format: url
            description: 'Badge 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/69133d595af23405d8e843a5
          text:
            type: string
            description: Badge text.
            example: Updated New Year Sale
          backgroundColor:
            allOf:
            - $ref: '#/components/schemas/BackgroundColorGradient'
            - description: Background color details.
              example:
                colorOne: '#f9d423'
                colorTwo: '#ff4e50'
                gradientDirection: to top
          textColor:
            type: object
            properties:
              colorOne:
                type: string
                pattern: ^#[0-9a-fA-F]{6}$
                description: Text color in hex format.
                example: '#ffffff'
        required:
        - type
    BadgeReadResponse:
      oneOf:
      - $ref: '#/components/schemas/EmblemBadgeResponse'
      - $ref: '#/components/schemas/RibbonBadgeResponse'
      discriminator:
        propertyName: type
        mapping:
          emblem:
            $ref: '#/components/schemas/EmblemBadgeResponse'
          ribbon:
            $ref: '#/components/schemas/RibbonBadgeResponse'
    RibbonBadgeCreate:
      title: Ribbon Badge
      allOf:
      - $ref: '#/components/schemas/RibbonBadgeBase'
      - description: Create a ribbon badge.
      - type: object
        properties:
          type:
            type: string
            enum:
            - ribbon
            description: Badge type.
            example: ribbon
          text:
            type: string
            description: Text displayed on ribbon badge.
            example: New Year Sale
          backgroundColor:
            allOf:
            - $ref: '#/components/schemas/BackgroundColorGradient'
            - description: "Background color. \n If not provided, the value defaults to `{\"colorOne\": \"#000000\"}`."
              example:
                colorOne: '#00c6ff'
                colorTwo: '#0072ff'
                gradientDirection: to right
          textColor:
            type: object
            description: "Text color. \n If not provided, the value defaults to `{\"colorOne\": \"#000000\"}`."
            properties:
              colorOne:
                type: string
                default: '#000000'
                pattern: ^#[0-9a-fA-F]{6}$
                description: Text color in hex format.
                example: '#ffffff'
          imageUrl:
            type: string
            format: url
            description: 'Badge 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/69133d595af23405d8e843a5
        required:
        - type
        - text
    RibbonBadgeBase:
      type: object
      properties:
        name:
          type: string
          description: Badge name.
          example: New Year Celebration
        publisherBadgeId:
          type: string
          description: Badge ID that you define.
          example: new_year_celebration
        type:
          type: string
          description: Badge type.
          example: ribbon
      required:
      - name
      - publisherBadgeId
      - type
    EmblemBadgeCreate:
      title: Emblem Badge
      allOf:
      - $ref: '#/components/schemas/BadgeBase'
      - description: Create an emblem badge.
      - type: object
        properties:
          type:
            type: string
            enum:
            - emblem
            description: Badge type.
            example: emblem
        required:
        - type
        - badgeImageUrl
    GetAllBadgesResponse:
      type: object
      properties:
        getAllBadgesResponse:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Badge ID.
                example: 507f1f77bcf86cd799439011
              name:
                type: string
                description: Badge name.
                example: New Year Celebration
              publisherBadgeId:
                type: string
                description: Badge ID that you defined.
                example: new_year_celebration
              type:
                type: string
                enum:
                - emblem
                - ribbon
                description: Badge type.
                example: ribbon
              badgeImageUrl:
                type: string
                format: url
                description: Badge 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/69133d595af23405d8e843a5
              text:
                type: string
                description: Text displayed on ribbon badge. Only present for ribbon badges.
                example: New Year Sale
              backgroundColor:
                allOf:
                - $ref: '#/components/schemas/BackgroundColorGradient'
                - description: Background color details. Only present for ribbon badges.
                  example:
                    colorOne: '#00c6ff'
                    colorTwo: '#0072ff'
                    gradientDirection: to right
              textColor:
                type: object
                description: Text color. Only present for ribbon badges.
                properties:
                  colorOne:
                    type: string
                    pattern: ^#[0-9a-fA-F]{6}$
                    description: Text color in hex format.
                    example: '#ffffff'
  securitySchemes:
    PublisherTokenAuth:
      type: apiKey
      in: header
      name: x-publisher-token
      description: Publisher token, as displayed in the Publisher Dashboard.