Aghanim Coupons API

The Coupons API from Aghanim — 3 operation(s) for coupons.

OpenAPI Specification

aghanim-coupons-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Aghanim Server-to-Server Achievements Coupons API
  description: "The Aghanim Server-to-Server API is designed for **backend server integrations only**. Use this API when you need to automate game hub updates from your server-side applications.\n\n\n## OpenAPI Specification\n\nYou can download the [OpenAPI](https://www.openapis.org/) specification for this API at the following link:\n[docs.aghanim.com/openapi.json](https://docs.aghanim.com/openapi.json).\n\n## Changelog\n\nSee the [S2S API Changelog](https://docs.aghanim.com/s2s-api/changelog/) for a history of changes to this API.\n\n## Authentication\n\nAghanim supports two methods of authentication: **Bearer token** and **Basic authentication**.\n\nTo authenticate, you will need your API key, which can be retrieved from\nthe Aghanim Dashboard → [**Game → Integration → API Keys**](https://dashboard.aghanim.com/go/integration/api-keys).\n\n**⚠️ Security Notice**: The S2S API key is **secret** and must be kept secure on your server. Never expose the S2S API key in client-side code, mobile apps, or any public-facing applications.\n\n### Bearer Token Authentication\n\nUse the Bearer method by including an `Authorization` header with the word `Bearer`\nfollowed by your API key. The `Authorization` header in your HTTP request should look like this: `Authorization: Bearer API_KEY`\n\n### Basic Authentication\n\nAlternatively, you can authenticate using Basic authentication. Your API key is used\nas the `username`, and the `password` should be left empty. Send an `Authorization`\nheader with the word `Basic` followed by a base64-encoded string\nin the format `API_KEY:` (note the colon at the end).\n\nThe `Authorization` header should look like this: `Authorization: Basic ZGVtbzpwQDU1dzByZA==`\n\n## Error Codes\n\nAghanim employs standard HTTP response codes to denote the success or failure of an API request.\nBelow is a table detailing error codes.\n\n| Code | Description |\n| ---- | ----------- |\n| 200  | OK          |\n| 400  | Bad request |\n| 401  | Not authenticated |\n| 403  | Not authorized |\n| 404  | Resource not found |\n| 409  | Conflict. Request conflicts with current state of resource |\n| 422  | Validation error |\n| 429  | Too many requests. Rate limit exceeded |\n| 503  | Server unavailable |\n\n### Generic error schema\n\n```json\n{\n  \"detail\": \"string\"\n}\n```\n\n### Validation error schema\n\n```json\n{\n  \"detail\": [\n    {\n      \"loc\": [\n        \"string\",\n        0\n      ],\n      \"msg\": \"string\",\n      \"type\": \"string\"\n    }\n  ]\n}\n```\n\n## Rate Limits\n\nThe Aghanim API has rate limiting in place to avoid overloading and to ensure it remains stable.\nThe allowable rate of requests is capped at 1,000 per minute for every game.\nGame developers who exceed this limit will receive a 429 error code.\n\nTo increase the rate limit, please contact us via [integration@aghanim.com](mailto:integration@aghanim.com).\n\n## Pagination\n\nIn the Aghanim API, pagination is managed through the use of the `limit` and `offset` query parameters.\nThese parameters allow to fine-tune your data retrieval requests by specifying:\n\n- `limit`: the number of records to be returned in a single request.\n- `offset`: indicates the number of records to skip from the start of the dataset.\n"
  contact:
    name: Aghanim
    email: integration@aghanim.com
  version: 2026.07.14
servers:
- url: https://api.aghanim.com/s2s
  description: Production
tags:
- name: Coupons
paths:
  /v1/coupons/user/{user_id}:
    get:
      tags:
      - Coupons
      summary: Get User Coupons
      operationId: get_user_coupons
      security:
      - HTTPBearer: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          title: User Id
          type: string
      - name: limit
        in: query
        required: false
        schema:
          title: Limit
          description: A limit on the number of objects to be returned
          default: 10
          type: integer
        description: A limit on the number of objects to be returned
      - name: offset
        in: query
        required: false
        schema:
          title: Offset
          description: The number of objects to skip
          type: integer
        description: The number of objects to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Get User Coupons
                type: array
                items:
                  $ref: '#/components/schemas/UserCouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/coupons:
    get:
      tags:
      - Coupons
      summary: Get Coupons
      description: Returns a list of coupons.
      operationId: get_coupons
      security:
      - HTTPBearer: []
      parameters:
      - name: q
        in: query
        required: false
        schema:
          title: Q
          type: string
      - name: type
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CouponType'
      - name: category_id
        in: query
        required: false
        schema:
          title: Category Id
          type: string
      - name: generated_type
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CouponGeneratedType'
      - name: limit
        in: query
        required: false
        schema:
          title: Limit
          description: A limit on the number of objects to be returned
          default: 10
          type: integer
        description: A limit on the number of objects to be returned
      - name: offset
        in: query
        required: false
        schema:
          title: Offset
          description: The number of objects to skip
          type: integer
        description: The number of objects to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Get Coupons
                type: array
                items:
                  $ref: '#/components/schemas/CouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Coupons
      summary: Create Coupon
      description: Creates a new coupon.
      operationId: create_coupon
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Create
              $ref: '#/components/schemas/CouponCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Coupons
      summary: Bulk Update Coupon
      operationId: bulk_update_coupon
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Bulk Update
              type: array
              items:
                $ref: '#/components/schemas/CouponBulkUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Bulk Update Coupon
                type: array
                items:
                  $ref: '#/components/schemas/CouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/coupons/{coupon_id}:
    get:
      tags:
      - Coupons
      summary: Get Coupon
      description: Returns a single coupon.
      operationId: get_coupon
      security:
      - HTTPBearer: []
      parameters:
      - name: coupon_id
        in: path
        required: true
        schema:
          title: Coupon Id
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Coupons
      summary: Update Coupon
      description: Updates a coupon.
      operationId: update_coupon
      security:
      - HTTPBearer: []
      parameters:
      - name: coupon_id
        in: path
        required: true
        schema:
          title: Coupon Id
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Update
              $ref: '#/components/schemas/CouponUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Coupons
      summary: Delete Coupon
      description: Deletes a coupon.
      operationId: delete_coupon
      security:
      - HTTPBearer: []
      parameters:
      - name: coupon_id
        in: path
        required: true
        schema:
          title: Coupon Id
          type: string
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CouponUpdate:
      properties:
        free_items:
          title: Free Items
          description: Items granted when the coupon is redeemed
          $ref: '#/components/schemas/CouponFreeItems'
        discount_percent:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Discount Percent
          description: The discount percent for the coupon
        bonus_percent:
          type: integer
          maximum: 1000.0
          minimum: 0.0
          title: Bonus Percent
          description: The bonus percent for the coupon
        bonus_fixed:
          type: integer
          minimum: 1.0
          title: Bonus Fixed
          description: The fixed bonus amount for the coupon
          nullable: true
        discount_amount_usd:
          type: integer
          minimum: 0.0
          title: Discount Amount USD
          description: The discount amount in USD for the coupon
        requirements_expression:
          title: Requirements Expression
          description: The requirement expression for the coupon
          $ref: '#/components/schemas/Expression'
        expires_at:
          type: integer
          title: Expires At
          description: The expiration date of the coupon
        applicable_item_ids:
          items:
            type: string
          type: array
          title: Applicable Item Ids
          description: The applicable item IDs
        category_id:
          type: string
          title: Category Id
          description: The coupon category ID
        min_amount:
          type: integer
          title: Min Amount
          description: Require a minimum order amount to apply the coupon
        max_redemptions:
          type: integer
          title: Max Redemptions
          description: Limit the number of times this code can be redeemed
        max_redemptions_per_user:
          type: integer
          title: Max Redemptions Per User
          description: Limit the number of times a user can redeem the coupon
        is_stackable_with_bonus_coupons:
          type: boolean
          title: Is Stackable With Bonus Coupons
          description: Allow stacking with bonus coupons
        stackable_bonus_limit_percent:
          type: integer
          title: Stackable Bonus Limit Percent
          description: Limit the bonus percent when stacking with bonus coupons
        is_stackable_with_discount_coupons:
          type: boolean
          title: Is Stackable With Discount Coupons
          description: Allow stacking with discount coupons
        stackable_discount_limit_percent:
          type: integer
          title: Stackable Discount Limit Percent
          description: Limit the discount percent when stacking with discount coupons
        store_item_discount_limit_percent:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Store Item Discount Limit Percent
          description: Limit the combined store item and coupon discount percent
        store_item_bonus_limit_percent:
          type: integer
          maximum: 1000.0
          minimum: 0.0
          title: Store Item Bonus Limit Percent
          description: Limit the combined store item and coupon bonus percent
        start_at:
          type: integer
          title: Start At
          description: The timestamp when the coupon becomes valid
        end_at:
          type: integer
          title: End At
          description: The timestamp when the coupon ceases to be valid
        player_ids:
          items:
            type: string
          type: array
          title: Player Ids
          description: The player IDs that can redeem the coupon
        exclude_player_ids:
          items:
            type: string
          type: array
          title: Exclude Player Ids
          description: The player IDs that cannot redeem the coupon
        name:
          type: string
          maxLength: 255
          title: Name
          description: The name of the coupon
        creator_program:
          title: Creator Program
          description: The creator program for the coupon
          $ref: '#/components/schemas/CreatorProgramUpdate'
      type: object
      title: CouponUpdate
    CreatorProgramBase:
      properties:
        creator_id:
          type: string
          title: Creator Id
          description: The creator ID
        reward:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Reward
          description: The reward for the coupon
        verbal_terms:
          type: string
          title: Verbal Terms
          description: The verbal terms for the creator program
        message:
          type: string
          title: Message
          description: The message for the creator program
        inherits_from_tier:
          type: boolean
          title: Inherits From Tier
          description: When true, revenue share is taken from the creator's current tier instead of `reward`.
          default: false
      type: object
      required:
      - creator_id
      - reward
      - verbal_terms
      - message
      title: CreatorProgramBase
    ItemSource:
      type: string
      enum:
      - order
      - bonus
      - bundle
      - coupon
      - lootbox
      - free_item
      - liveops
      - daily_reward
      - loyalty_reward
      - progression_program
      - rolling_offer
      - pick_one_offer
      title: ItemSource
      description: An enumeration.
    CouponGeneratedType:
      type: string
      enum:
      - campaign
      - receipt
      title: CouponGeneratedType
      description: An enumeration.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ItemRarityRead:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: Name of the item rarity
        color_background_badge:
          type: string
          title: Color Background Badge
          description: Background color of the badge with this rarity
        id:
          type: string
          title: Id
      type: object
      required:
      - name
      - id
      title: ItemRarityRead
    ItemRead:
      properties:
        name:
          type: string
          title: Name
          description: The name of the item
        description:
          type: string
          title: Description
          description: The description of the item
          nullable: true
        highlights:
          title: Highlights
          description: Localized benefit descriptions shown for the item
          nullable: true
          $ref: '#/components/schemas/Highlights'
        price:
          type: integer
          title: Price
          description: The price of the item in minor [currency units](https://docs.aghanim.com/currencies/). The system will automatically adjust this to the closest available price point. If you want to set a specific price point, use `price_template_id` instead.
        price_point:
          type: integer
          maximum: 5000000.0
          exclusiveMinimum: 0.0
          title: Price Point
          description: The price point for local prices `DEPRECATED`
        price_template_id:
          type: string
          title: Price Template Id
          description: The ID of the price template
        reward_points_price:
          type: integer
          title: Reward Points Price
          description: The reward points price for local prices
        currency:
          description: The currency of the item
          $ref: '#/components/schemas/Currency'
        sku:
          type: string
          maxLength: 255
          title: SKU
          description: The SKU of the item
          unique: true
        image_url:
          anyOf:
          - type: string
            maxLength: 65536
            minLength: 1
            format: uri
          - type: string
            enum:
            - ''
          title: Image Url
          description: The URL of the image for the item
        image_url_apple:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Image Url Apple
          description: The Apple-specific URL of the image for the item
          deprecated: true
        icon_url:
          anyOf:
          - type: string
            maxLength: 65536
            minLength: 1
            format: uri
          - type: string
            enum:
            - ''
          title: Icon Url
          description: The URL of the icon for the item
        icon_url_apple:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Icon Url Apple
          description: The Apple-specific URL of the icon for the item
          deprecated: true
        image_url_featured:
          anyOf:
          - type: string
            maxLength: 65536
            minLength: 1
            format: uri
          - type: string
            enum:
            - ''
          title: Image Url Featured
          description: The URL of the image for the item in the featured card
        image_url_featured_apple:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Image Url Featured Apple
          description: The Apple-specific URL of the image for the item in the featured card
          deprecated: true
        background_image_url:
          anyOf:
          - type: string
            maxLength: 65536
            minLength: 1
            format: uri
          - type: string
            enum:
            - ''
          title: Background Image Url
          description: The URL of the background image for the item
        background_image_url_apple:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Background Image Url Apple
          description: The Apple-specific URL of the background image for the item
          deprecated: true
        background_image_color:
          type: string
          title: Background Image Color
          description: The color of the background image for the item
        featured_card_background_image_url:
          anyOf:
          - type: string
            maxLength: 65536
            minLength: 1
            format: uri
          - type: string
            enum:
            - ''
          title: Featured Card Background Image Url
          description: The URL of the featured card background image for the item
        featured_card_background_image_url_apple:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Featured Card Background Image Url Apple
          description: The Apple-specific URL of the featured card background image for the item
          deprecated: true
        type:
          description: The type of the item
          $ref: '#/components/schemas/ItemType'
        view_option:
          description: Controls the store appearance of the item
          default: default
          $ref: '#/components/schemas/ItemViewOption'
        quantity:
          type: integer
          maximum: 1e+18
          minimum: 1.0
          title: Quantity
          description: The quantity of the item
          default: 1
        is_stackable:
          type: boolean
          title: Is Stackable
          description: Whether the item is stackable
        is_currency:
          type: boolean
          title: Is Currency
          description: Whether the item is a currency.
        position:
          type: integer
          title: Position
          description: Position of the item in list
        categories:
          items:
            type: string
          type: array
          title: Categories
          description: The list of category IDs
        duration:
          type: integer
          title: Duration
          description: Item's in-game action in seconds
        enable_reward_points_redemption:
          type: boolean
          title: Enable Reward Points Redemption
          description: Allows using Reward Points on purchase
        nested_items:
          items:
            $ref: '#/components/schemas/NestedItem'
          type: array
          title: Nested Items
          description: The child items of the bundle
        id:
          type: string
          title: Id
          description: The unique identifier of the item
        properties:
          items:
            $ref: '#/components/schemas/ItemPropertyRelationRead'
          type: array
          title: Properties
          description: The item properties
        source:
          default: order
          $ref: '#/components/schemas/ItemSource'
        rarity_id:
          type: string
          title: Rarity Id
          description: The rarity id of the item
        item_rarity:
          $ref: '#/components/schemas/ItemRarityRead'
        discount_percent:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Discount Percent
          description: The discount percent for the item
        bonus_percent:
          type: integer
          minimum: 0.0
          title: Bonus Percent
          description: The bonus percent for the item
        is_custom:
          type: boolean
          title: Is Custom
          default: false
        created_at:
          type: number
          title: Created At
          description: The timestamp of when the item was created
        modified_at:
          type: number
          title: Modified At
          description: The timestamp of when the item was modified
        archived_at:
          type: number
          title: Archived At
          description: The timestamp of when the item was archived
        price_minor_unit:
          type: integer
          title: Price Minor Unit
        price_decimal:
          type: number
          title: Price Decimal
        fallback_item_id:
          type: string
          title: Fallback Item Id
          description: The item that will be given as fallback if the main item can't be given to the player
        fallback_item_quantity:
          type: integer
          title: Fallback Item Quantity
          description: The quantity of the fallback item
        meta:
          type: object
          title: Meta
        model_type:
          type: string
          enum:
          - ItemRead
          title: Model Type
          default: ItemRead
        nested_items_read:
          items:
            $ref: '#/components/schemas/ItemRead'
          type: array
          title: Nested Items Read
        fallback_item:
          $ref: '#/components/schemas/ItemRead'
        comment:
          type: string
          title: Comment
          description: Internal comment for this item
        is_system:
          type: boolean
          title: Is System
          description: If true, this item will be skipped when sending webhooks
          nullable: true
      type: object
      required:
      - name
      - currency
      - sku
      - type
      - is_stackable
      - is_currency
      - id
      - created_at
      title: ItemRead
    Currency:
      type: string
      enum:
      - USD
      - EUR
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BRL
      - BSD
      - BTN
      - BWP
      - BYN
      - BZD
      - CAD
      - CDF
      - CHF
      - CLP
      - CNY
      - COP
      - CRC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EGP
      - ERN
      - ETB
      - FJD
      - FKP
      - GBP
      - GEL
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - IQD
      - IRR
      - ISK
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - LYD
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRU
      - MUR
      - MVR
      - MWK
      - MXN
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - OMR
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SDG
      - SEK
      - SGD
      - SHP
      - SLE
      - SOS
      - SRD
      - SSP
      - STN
      - SVC
      - SYP
      - SZL
      - THB
      - TJS
      - TMT
      - TND
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - UYU
      - UZS
      - VED
      - VES
      - VND
      - VUV
      - WST
      - XAF
      - XCD
      - XCG
      - XOF
      - XPF
      - YER
      - ZAR
      - ZMW
      - ZWG
      - ZWL
      - RP
      - VC
      title: Currency
    Token:
      properties:
        type:
          $ref: '#/components/schemas/TokenType'
        value:
          title: Value
      type: object
      required:
      - type
      title: Token
    ItemType:
      type: string
      enum:
      - item
      - currency
      - bundle
      - lootbox
      - subscription
      - virtual_currency
      title: ItemType
      description: An enumeration.
    CouponCreate:
      properties:
        free_items:
          title: Free Items
          description: Items granted when the coupon is redeemed
          $ref: '#/components/schemas/CouponFreeItems'
        discount_percent:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Discount Percent
          description: The discount percent for the coupon
        bonus_percent:
          type: integer
          maximum: 1000.0
          minimum: 0.0
          title: Bonus Percent
          description: The bonus percent for the coupon
        bonus_fixed:
          type: integer
          minimum: 1.0
          title: Bonus Fixed
          description: The fixed bonus amount for the coupon
          nullable: true
        discount_amount_usd:
          type: integer
          minimum: 0.0
          title: Discount Amount USD
          description: The discount amount in USD for the coupon
        requirements_expression:
          title: Requirements Expression
          description: The requirement expression for the coupon
          $ref: '#/components/schemas/Expression'
        expires_at:
          type: integer
          title: Expires At
          description: The expiration date of the coupon
        applicable_item_ids:
          items:
            type: string
          type: array
          title: Applicable Item Ids
          description: The applicable item IDs
        category_id:
          type: string
          title: Category Id
          description: The coupon category ID
        min_amount:
          type: integer
          title: Min Amount
          description: Require a minimum order amount to apply the coupon
        max_redemptions:
          type: integer
          title: Max Redemptions
          description: Limit the number of times this code can be redeemed
        max_redemptions_per_user:
          type: integer
          title: Max Redemptions Per User
          description: Limit the number of times a user can redeem the coupon
        is_stackable_with_bonus_coupons:
          type: boolean
          title: Is Stackable With Bonus Coupons
          description: Allow stacking with bonus coupons
        stackable_bonus_limit_percent:
          type: integer
          title: Stackable Bonus Limit Percent
          description: Limit the bonus percent when stacking with bonus coupons
        is_stackable_with_discount_coupons:
          type: boolean
          title: Is Stackable With Discount Coupons
          description: Allow stacking with discount coupons
        stackable_discount_limit_percent:
          type: integer
          title: Stackable Discount Limit Percent
          description: Limit the discount percent when stacking with discount coupons
        store_item_discount_limit_percent:
          type: integer
          maximum: 100.0
          minimum: 0.0
          title: Store Item Discount Limit Percent
          description: Limit the combined store item and coupon discount percent
        store_item_bonus_limit_percent:
          type: integer
          maximum: 1000.0
          minimum: 0.0
          title: Store Item Bonus Limit Percent
          description: Limit the combined store item and coupon bonus percent
        start_at:
          type: integer
          title: Start At
          description: The timestamp when the coupon becomes valid
        end_at:
          type: integer
          title: End At
          description: The timestamp when the coupon ceases to be valid
        player_ids:
          items:
            type: string
          type: array
          title: Player Ids
          description: The player IDs that can redeem the coupon
        exclude_player_ids:
          items:
            type: string
          type: array
          title: Exclude Player Ids
          description: The player IDs that cannot redeem the coupon
        name:
          type: string
          maxLength: 255
          title: Name
          description: The name of the coupon
        code:
          type: string
          maxLength: 20
          title: Code
          description: The code of the coupon
        type:
          description: The type of the 

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aghanim/refs/heads/main/openapi/aghanim-coupons-api-openapi.yml