openapi: 3.1.0 info: title: Aghanim Server-to-Server Achievements LiveOps 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: LiveOps paths: /v1/campaigns: get: tags: - LiveOps summary: Get Campaigns operationId: get_campaigns security: - HTTPBearer: [] parameters: - name: resource_state in: query required: false schema: $ref: '#/components/schemas/ResourceState' - name: enabled in: query required: false schema: title: Enabled type: boolean - name: type in: query required: false schema: title: Type anyOf: - $ref: '#/components/schemas/CampaignEventType' - 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 Campaigns type: array items: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - LiveOps summary: Create Campaign operationId: create_campaign security: - HTTPBearer: [] requestBody: required: true content: application/json: schema: title: Create $ref: '#/components/schemas/CampaignCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - LiveOps summary: Bulk Update Campaigns description: Updates multiple campaigns. operationId: bulk_update_campaigns security: - HTTPBearer: [] requestBody: required: true content: application/json: schema: title: Bulk Update type: array items: $ref: '#/components/schemas/BulkCampaignUpdate' responses: '204': description: Successful Response '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/campaigns/by_ids: get: tags: - LiveOps summary: Get Campaigns By Ids operationId: get_campaigns_by_ids security: - HTTPBearer: [] parameters: - name: ids in: query required: true schema: title: Ids description: Comma separated list of ids type: string description: Comma separated list of ids responses: '200': description: Successful Response content: application/json: schema: title: Response Get Campaigns By Ids type: array items: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/campaigns/{campaign_id}: get: tags: - LiveOps summary: Get Campaign operationId: get_campaign security: - HTTPBearer: [] parameters: - name: campaign_id in: path required: true schema: title: Campaign Id type: string responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - LiveOps summary: Update Campaign operationId: update_campaign security: - HTTPBearer: [] parameters: - name: campaign_id in: path required: true schema: title: Campaign Id type: string requestBody: required: true content: application/json: schema: title: Update $ref: '#/components/schemas/CampaignUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - LiveOps summary: Delete Campaign operationId: delete_campaign security: - HTTPBearer: [] parameters: - name: campaign_id in: path required: true schema: title: Campaign Id type: string responses: '204': description: Successful Response '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/campaigns/{campaign_id}/graph: get: tags: - LiveOps summary: Get Campaign Graph operationId: get_campaign_graph security: - HTTPBearer: [] parameters: - name: campaign_id in: path required: true schema: title: Campaign Id type: string responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GraphRoot' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - LiveOps summary: Update Campaign Graph operationId: update_campaign_graph security: - HTTPBearer: [] parameters: - name: campaign_id in: path required: true schema: title: Campaign Id type: string requestBody: required: true content: application/json: schema: title: Update $ref: '#/components/schemas/GraphRoot' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Campaign' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/events: post: tags: - LiveOps summary: Trigger Campaign description: Starts a [LiveOps campaign](https://dashboard.aghanim.com/go/campaigns/table) triggered by an in-game event. operationId: trigger_campaign requestBody: content: application/json: schema: title: Event $ref: '#/components/schemas/Event' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] components: schemas: CarouselBlockType: type: string enum: - offers title: CarouselBlockType description: An enumeration. DailyRewardsBlock: properties: block: type: string enum: - DailyRewardsBlock title: Block default: DailyRewardsBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At variant: default: expanded $ref: '#/components/schemas/DailyRewardsBlockVariant' non_compliance: type: boolean title: Non Compliance default: false type: object title: DailyRewardsBlock YoutubeBlock: properties: block: type: string enum: - YoutubeBlock title: Block default: YoutubeBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At video: $ref: '#/components/schemas/VideoBlockSettings' type: object required: - video title: YoutubeBlock LoyaltyProgramBlockVariant: type: string enum: - standard - expanded - compact title: LoyaltyProgramBlockVariant description: An enumeration. RollingOfferBlock: properties: block: type: string enum: - RollingOfferBlock title: Block default: RollingOfferBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At rolling_offer_id: type: string title: Rolling Offer Id max_items_count: type: integer title: Max Items Count scroll_disabled: type: boolean title: Scroll Disabled variant: default: slider $ref: '#/components/schemas/RollingOfferBlockVariant' type: object required: - rolling_offer_id title: RollingOfferBlock ProgressionProgramBlock: properties: block: type: string enum: - ProgressionProgramBlock title: Block default: ProgressionProgramBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At program_id: type: string title: Program Id variant: default: standard $ref: '#/components/schemas/LoyaltyProgramBlockVariant' slider_on_mobile: type: boolean title: Slider On Mobile nullable: true type: object required: - program_id title: ProgressionProgramBlock SplitNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - SplitNode title: Model Type default: SplitNode break_on_error: type: boolean title: Break On Error description: type: string title: Description distribution: items: $ref: '#/components/schemas/SplitInfo' type: array title: Distribution random_value: type: number title: Random Value value_next_node_id: type: string title: Value Next Node Id type: object required: - id - x - y - distribution title: SplitNode HubPopupContentType: type: string enum: - custom - item - event_item - link_all_created_offers title: HubPopupContentType description: An enumeration. CreateCouponNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - CreateCouponNode title: Model Type default: CreateCouponNode break_on_error: type: boolean title: Break On Error description: type: string title: Description duration: type: integer title: Duration type: $ref: '#/components/schemas/CouponType' item_id: type: string title: Item Id quantity: type: integer title: Quantity use_event_item: type: boolean title: Use Event Item default: false discount_percent: type: integer title: Discount Percent bonus_percent: type: integer title: Bonus Percent bonus_fixed: type: integer title: Bonus Fixed discount_amount_usd: type: integer title: Discount Amount USD description: The discount amount in USD for the coupon min_amount: type: integer title: Min Amount stackable_bonus_limit: type: integer title: Stackable Bonus Limit stackable_discount_limit: type: integer title: Stackable Discount Limit code_mask: type: string title: Code Mask player_bond: type: boolean title: Player Bond player_bond_type: $ref: '#/components/schemas/CouponPlayerBondType' applicable_item_ids: items: type: string type: array title: Applicable Item Ids payment_method_ids: items: type: string type: array title: Payment Method Ids max_redemptions: type: integer title: Max Redemptions is_stackable_with_bonus_coupons: type: boolean title: Is Stackable With Bonus Coupons stackable_bonus_limit_percent: type: integer title: Stackable Bonus Limit Percent is_stackable_with_discount_coupons: type: boolean title: Is Stackable With Discount Coupons stackable_discount_limit_percent: type: integer title: Stackable Discount Limit Percent type: object required: - id - x - y - type title: CreateCouponNode RemoveFromSegmentNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - RemoveFromSegmentNode title: Model Type default: RemoveFromSegmentNode break_on_error: type: boolean title: Break On Error description: type: string title: Description segment_slug: type: string title: Segment Slug type: object required: - id - x - y title: RemoveFromSegmentNode StoreCardType: type: string enum: - default - featured title: StoreCardType description: An enumeration. AttrType: type: string enum: - number - date - string - boolean - list title: AttrType description: An enumeration. RichContentBlock: properties: block: type: string enum: - RichContentBlock title: Block default: RichContentBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At html: type: string title: Html type: object required: - html title: RichContentBlock CouponPlayerBondType: type: string enum: - all_users - current_user - except_current_user title: CouponPlayerBondType description: An enumeration. LatestNewsBlockVariant: type: string enum: - standard - carousel title: LatestNewsBlockVariant description: An enumeration. SortStoreType: type: string enum: - price - name - discount - position title: SortStoreType description: An enumeration. EmailActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - EmailActionNode title: Model Type default: EmailActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items caption: type: string title: Caption type: object required: - id - x - y title: EmailActionNode ItemAddData: properties: item_id: type: string title: Item Id quantity: type: integer title: Quantity nullable: true type: object required: - item_id title: ItemAddData 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 EventType: type: string enum: - game_login - game_register - purchase - level_up title: EventType description: An enumeration. PlaceBlock: properties: block: type: string enum: - PlaceBlock title: Block default: PlaceBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At key: type: string title: Key type: object required: - key title: PlaceBlock SplitInfo: properties: title: type: string title: Title default: '' value: type: integer title: Value next_node_id: type: string title: Next Node Id type: object required: - value title: SplitInfo Token: properties: type: $ref: '#/components/schemas/TokenType' value: title: Value type: object required: - type title: Token MobilePopupActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - MobilePopupActionNode title: Model Type default: MobilePopupActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items url: type: string title: Url response: type: string title: Response status_code: type: integer title: Status Code image_url: type: string title: Image Url type: object required: - id - x - y title: MobilePopupActionNode VerifyPlayerNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - VerifyPlayerNode title: Model Type default: VerifyPlayerNode break_on_error: type: boolean title: Break On Error description: type: string title: Description type: object required: - id - x - y title: VerifyPlayerNode MaxPurchaseLimitPeriodType: type: string enum: - global - personal title: MaxPurchaseLimitPeriodType description: An enumeration. PersistentCampaignAttributes: properties: custom_attributes: items: $ref: '#/components/schemas/CustomAttribute' type: array title: Custom Attributes abandoned_cart_duration: type: integer title: Abandoned Cart Duration visit_duration: type: integer title: Visit Duration page_slugs: items: type: string type: array title: Page Slugs variables: items: $ref: '#/components/schemas/MathExpression' type: array title: Variables run_for_subscription_id: type: string title: Run For Subscription Id type: object title: PersistentCampaignAttributes MathExpression: properties: tokens: items: $ref: '#/components/schemas/Token' type: array title: Tokens name: type: string title: Name type: object required: - name title: MathExpression CommunicationItem: properties: item_id: type: string title: Item Id store_item_id: type: string title: Store Item Id type: object required: - item_id - store_item_id title: CommunicationItem PickOneOfferBlock: properties: block: type: string enum: - PickOneOfferBlock title: Block default: PickOneOfferBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At pick_one_offer_id: type: string title: Pick One Offer Id type: object required: - pick_one_offer_id title: PickOneOfferBlock PWAPromptActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - PWAPromptActionNode title: Model Type default: PWAPromptActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items type: object required: - id - x - y title: PWAPromptActionNode SortOrder: type: string enum: - asc - desc title: SortOrder description: An enumeration. Event: properties: event_time: type: integer title: Event Time description: The time the event was created in seconds since epoch. event_type: anyOf: - $ref: '#/components/schemas/EventType' - type: string title: Event Type event_data: type: object title: Event Data description: The data of the event. type: object required: - event_time - event_type - event_data title: Event AchievementListBlock: properties: block: type: string enum: - AchievementListBlock title: Block default: AchievementListBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At type: object title: AchievementListBlock ItemBonusSettings: properties: items: items: $ref: '#/components/schemas/ItemBonus' type: array title: Items start_at: type: integer title: Start At end_at: type: integer title: End At type: object required: - items title: ItemBonusSettings BrowserPushNotificationActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - BrowserPushNotificationActionNode title: Model Type default: BrowserPushNotificationActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items image_url: type: string title: Image Url type: object required: - id - x - y title: BrowserPushNotificationActionNode ImageBannerBlock: properties: block: type: string enum: - ImageBannerBlock title: Block default: ImageBannerBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At link: type: string title: Link image_url: type: string title: Image Url button_text: type: string title: Button Text title: type: string title: Title text: type: string title: Text type: object required: - image_url title: ImageBannerBlock ViewPort: properties: x: type: number title: X y: type: number title: Y zoom: type: number title: Zoom type: object required: - x - y - zoom title: ViewPort BrowserPopupNotificationActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - BrowserPopupNotificationActionNode title: Model Type default: BrowserPopupNotificationActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items image_url: type: string title: Image Url background_image_url: type: string title: Background Image Url suspend_while_not_read: type: boolean title: Suspend While Not Read type: object required: - id - x - y title: BrowserPopupNotificationActionNode PeriodType: type: string enum: - year - month - week - day - hour - minute - second title: PeriodType CreateUserStoreSettingsNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - CreateUserStoreSettingsNode title: Model Type default: CreateUserStoreSettingsNode break_on_error: type: boolean title: Break On Error description: type: string title: Description store_id: type: string title: Store Id store_ids: items: type: string type: array title: Store Ids item_ids: items: type: string type: array title: Item Ids category_ids: items: type: string type: array title: Category Ids duration: type: integer title: Duration reward_points_percent: type: number title: Reward Points Percent discount_percent: type: number title: Discount Percent bonus_percent: type: number title: Bonus Percent max_purchase_count: type: integer title: Max Purchase Count exclude_items_for_reward_points: type: boolean title: Exclude Items For Reward Points bonus_item_quantity: type: integer title: Bonus Item Quantity bonus_item_percent: type: integer title: Bonus Item Percent bonus_item_id: type: string title: Bonus Item Id bonus_items_settings: $ref: '#/components/schemas/ItemBonusSettings' reward_settings: $ref: '#/components/schemas/ItemRewardSettings' name: type: string title: Name attr_name_for_duration_value: type: string title: Attr Name For Duration Value nullable: true item_background_image_url: type: string maxLength: 65536 minLength: 1 format: uri title: Item Background Image Url item_featured_card_background_image_url: type: string maxLength: 65536 minLength: 1 format: uri title: Item Featured Card Background Image Url bonus_badge: type: string title: Bonus Badge custom_badge: type: string title: Custom Badge type: object required: - id - x - y - duration title: CreateUserStoreSettingsNode SetAttributeValuesNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - SetAttributeValuesNode title: Model Type default: SetAttributeValuesNode break_on_error: type: boolean title: Break On Error description: type: string title: Description values: type: object title: Values values_from_variables: additionalProperties: type: string type: object title: Values From Variables new_values: items: $ref: '#/components/schemas/SetAttributeValue' type: array title: New Values type: object required: - id - x - y - values title: SetAttributeValuesNode CreateVirtualSKUNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - CreateVirtualSKUNode title: Model Type default: CreateVirtualSKUNode break_on_error: type: boolean title: Break On Error description: type: string title: Description item_id: type: string title: Item Id nullable: true use_event_item: type: boolean title: Use Event Item default: false start_at: type: integer title: Start At nullable: true end_at: type: integer title: End At nullable: true duration: type: integer title: Duration nullable: true max_purchases: type: integer title: Max Purchases nullable: true min_amount: type: integer title: Min Amount nullable: true max_reward_points_percent: type: integer title: Max Reward Points Percent nullable: true reward_points_percent: type: number title: Reward Points Percent nullable: true reward_points_fixed: type: integer title: Reward Points Fixed nullable: true payment_method_ids: items: type: string type: array title: Payment Method Ids nullable: true discount_percent: type: integer title: Discount Percent nullable: true bonus_percent: type: integer title: Bonus Percent nullable: true bonus_fixed: type: integer title: Bonus Fixed nullable: true is_free_item: type: boolean title: Is Free Item nullable: true max_purchases_period_type: nullable: true $ref: '#/components/schemas/PeriodType' max_purchases_period_value: type: integer title: Max Purchases Period Value nullable: true max_purchases_limit_type: nullable: true $ref: '#/components/schemas/MaxPurchaseLimitPeriodType' custom_badge: type: string title: Custom Badge nullable: true card_type: nullable: true $ref: '#/components/schemas/StoreCardType' show_first_on_category_list: type: boolean title: Show First On Category List nullable: true item_image_url: type: string maxLength: 65536 minLength: 1 format: uri title: Item Image Url nullable: true item_name: type: string title: Item Name nullable: true item_description: type: string title: Item Description nullable: true bonus_item_id: type: string title: Bonus Item Id nullable: true bonus_item_quantity: type: integer title: Bonus Item Quantity nullable: true bonus_item_percent: type: integer title: Bonus Item Percent nullable: true bonus_items_settings: title: Bonus Items Settings nullable: true $ref: '#/components/schemas/ItemBonusSettings' bonus_badge: type: string title: Bonus Badge nullable: true bonus_source: $ref: '#/components/schemas/VirtualSKUBonusSource' loyalty_points_percent: type: integer title: Loyalty Points Percent nullable: true loyalty_points_fixed: type: integer title: Loyalty Points Fixed nullable: true reward_settings: title: Reward Settings nullable: true $ref: '#/components/schemas/ItemRewardSettings' attr_name_for_duration_value: type: string title: Attr Name For Duration Value nullable: true type: object required: - id - x - y title: CreateVirtualSKUNode RangeOfferBlock: properties: block: type: string enum: - RangeOfferBlock title: Block default: RangeOfferBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At range_offer_id: type: string title: Range Offer Id type: object required: - range_offer_id title: RangeOfferBlock HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError VCRewardConfig: properties: type: type: string enum: - virtual_currency title: Type default: virtual_currency name: type: string title: Name virtual_currency_id: type: string title: Virtual Currency Id virtual_currency_sku: type: string title: Virtual Currency SKU reward_percent: type: number title: Reward Percent reward_fixed: type: integer title: Reward Fixed type: object required: - virtual_currency_id title: VCRewardConfig AddUserAchievementNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - AddUserAchievementNode title: Model Type default: AddUserAchievementNode break_on_error: type: boolean title: Break On Error description: type: string title: Description achievement_id: type: string title: Achievement Id type: object required: - id - x - y - achievement_id title: AddUserAchievementNode CarouselNewsBlock: properties: block: type: string enum: - CarouselNewsBlock title: Block default: CarouselNewsBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At delay: type: integer title: Delay loop: type: boolean title: Loop autoplay: type: boolean title: Autoplay show_dots: type: boolean title: Show Dots type: object title: CarouselNewsBlock IFrameBlock: properties: block: type: string enum: - IFrameBlock title: Block default: IFrameBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At width: type: string title: Width height: type: string title: Height url: type: string maxLength: 65536 minLength: 1 format: uri title: Url requires_auth: type: boolean title: Requires Auth popup_background_image: type: string maxLength: 65536 minLength: 1 format: uri title: Popup Background Image loading_background_image: type: string maxLength: 65536 minLength: 1 format: uri title: Loading Background Image crossplay_disabled: type: boolean title: Crossplay Disabled is_web_game_iframe: type: boolean title: Is Web Game Iframe aspect_ratio: type: number title: Aspect Ratio type: object required: - url title: IFrameBlock DailyRewardsBlockVariant: type: string enum: - expanded - compact - compact_mobile title: DailyRewardsBlockVariant description: An enumeration. FeaturedNewsBlock: properties: block: type: string enum: - FeaturedNewsBlock title: Block default: FeaturedNewsBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At news_id: type: string title: News Id hide_date: type: boolean title: Hide Date type: object title: FeaturedNewsBlock LeaderboardFullBlock: properties: block: type: string enum: - LeaderboardFullBlock title: Block default: LeaderboardFullBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At leaderboard_id: type: string title: Leaderboard Id type: object title: LeaderboardFullBlock CarouselBlock: properties: block: type: string enum: - CarouselBlock title: Block default: CarouselBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At type: $ref: '#/components/schemas/CarouselBlockType' delay: type: integer title: Delay loop: type: boolean title: Loop autoplay: type: boolean title: Autoplay show_dots: type: boolean title: Show Dots category_template_id: type: string title: Category Template Id type: object required: - type title: CarouselBlock LatestPagesBlock: properties: block: type: string enum: - LatestPagesBlock title: Block default: LatestPagesBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At variant: $ref: '#/components/schemas/LatestPagesBlockVariant' collection_id: type: string title: Collection Id category_id: type: string title: Category Id is_featured: type: boolean title: Is Featured is_paginated: type: boolean title: Is Paginated show_all_tab: type: boolean title: Show All Tab type: object title: LatestPagesBlock SortStoreItemsNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - SortStoreItemsNode title: Model Type default: SortStoreItemsNode break_on_error: type: boolean title: Break On Error description: type: string title: Description order: $ref: '#/components/schemas/SortOrder' sort_by: $ref: '#/components/schemas/SortStoreType' type: object required: - id - x - y - order - sort_by title: SortStoreItemsNode AddPageBlockNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - AddPageBlockNode title: Model Type default: AddPageBlockNode break_on_error: type: boolean title: Break On Error description: type: string title: Description page_block: anyOf: - $ref: '#/components/schemas/FullNewsBlock' - $ref: '#/components/schemas/FeaturedNewsBlock' - $ref: '#/components/schemas/TwitchBlock' - $ref: '#/components/schemas/YoutubeBlock' - $ref: '#/components/schemas/TextBlock' - $ref: '#/components/schemas/BannerBlock' - $ref: '#/components/schemas/FeaturedItemBlock' - $ref: '#/components/schemas/RedeemCouponBlock' - $ref: '#/components/schemas/LatestNewsBlock' - $ref: '#/components/schemas/LatestPagesBlock' - $ref: '#/components/schemas/LeaderboardCardBlock' - $ref: '#/components/schemas/LeaderboardFullBlock' - $ref: '#/components/schemas/LeaderboardCollectionBlock' - $ref: '#/components/schemas/StoreBlock' - $ref: '#/components/schemas/LimitedStoreBannerBlock' - $ref: '#/components/schemas/AchievementListBlock' - $ref: '#/components/schemas/FeaturedPageBlock' - $ref: '#/components/schemas/DailyRewardsBlock' - $ref: '#/components/schemas/LoyaltyProgramBlock' - $ref: '#/components/schemas/IFrameBlock' - $ref: '#/components/schemas/ImageBannerBlock' - $ref: '#/components/schemas/RichContentBlock' - $ref: '#/components/schemas/CarouselBlock' - $ref: '#/components/schemas/SequentialOfferBlock' - $ref: '#/components/schemas/RangeOfferBlock' - $ref: '#/components/schemas/ProgressionProgramBlock' - $ref: '#/components/schemas/RollingOfferBlock' - $ref: '#/components/schemas/CarouselNewsBlock' - $ref: '#/components/schemas/PiggyBankOfferBlock' - $ref: '#/components/schemas/PlaceBlock' - $ref: '#/components/schemas/PickOneOfferBlock' title: Page Block type: object required: - id - x - y - page_block title: AddPageBlockNode PiggyBankOfferBlock: properties: block: type: string enum: - PiggyBankOfferBlock title: Block default: PiggyBankOfferBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At piggy_bank_offer_id: type: string title: Piggy Bank Offer Id type: object required: - piggy_bank_offer_id title: PiggyBankOfferBlock FeaturedPageBlock: properties: block: type: string enum: - FeaturedPageBlock title: Block default: FeaturedPageBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At page_id: type: string title: Page Id is_collection: type: boolean title: Is Collection default: false rotation_period: type: integer title: Rotation Period hide_date: type: boolean title: Hide Date type: object required: - page_id title: FeaturedPageBlock WebhookActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - WebhookActionNode title: Model Type default: WebhookActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items url: type: string title: Url response: type: string title: Response status_code: type: integer title: Status Code type: object required: - id - x - y title: WebhookActionNode StoreBlock: properties: block: type: string enum: - StoreBlock title: Block default: StoreBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At store_id: type: string title: Store Id category_id: type: string title: Category Id featured_category_id: type: string title: Featured Category Id show_sticky_categories: type: boolean title: Show Sticky Categories type: object title: StoreBlock BulkCampaignUpdate: properties: id: type: string title: Id position: type: integer title: Position type: object required: - id - position title: BulkCampaignUpdate MobilePushActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - MobilePushActionNode title: Model Type default: MobilePushActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description body: type: string title: Body item_id: type: string title: Item Id link_created_offer: type: boolean title: Link Created Offer store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id content_type: $ref: '#/components/schemas/HubPopupContentType' button_text: type: string title: Button Text button_link: type: string title: Button Link items: items: $ref: '#/components/schemas/CommunicationItem' type: array title: Items url: type: string title: Url response: type: string title: Response status_code: type: integer title: Status Code image_url: type: string title: Image Url type: object required: - id - x - y title: MobilePushActionNode YoutubeData: properties: video_id: type: string title: Video Id description: The video ID of the YouTube video type: object required: - video_id title: YoutubeData ItemAddNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - ItemAddNode title: Model Type default: ItemAddNode break_on_error: type: boolean title: Break On Error description: type: string title: Description items: items: $ref: '#/components/schemas/ItemAddData' type: array minItems: 1 title: Items show_reward_popup: type: boolean title: Show Reward Popup type: object required: - id - x - y - items title: ItemAddNode CampaignEventType: type: string enum: - game_hub_visit - game_hub_visit_store - game_hub_first_login - game_hub_login - add_segment - coupon_redeemed - registered_in_game - game_login - purchased_in_game - purchased_in_web - abandoned_cart - level_up - custom_event - free_item_claimed - daily_reward_claimed - loyalty_reward_claimed - progression_reward_claimed - payment_insufficient_funds - subscription_status_updated - subscription_schedule - pwa_installed - pwa_deinstalled - pwa_open title: CampaignEventType description: An enumeration. CouponType: type: string enum: - bonus - discount - free_item - vc - non_benefit - discount_fixed - discount_reward_point title: CouponType description: An enumeration. LimitedStoreBannerBlock: properties: block: type: string enum: - LimitedStoreBannerBlock title: Block default: LimitedStoreBannerBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At title: type: string title: Title description: type: string title: Description button: type: string title: Button image_url: type: string title: Image Url background_image_url: type: string title: Background Image Url link: type: string title: Link store_id: type: string title: Store Id type: object title: LimitedStoreBannerBlock BannerBlock: properties: block: type: string enum: - BannerBlock title: Block default: BannerBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At description: type: string title: Description image_url: type: string title: Image Url title: type: string title: Title background_image_size: type: string title: Background Image Size type: object title: BannerBlock ItemBonus: properties: id: type: string title: Id description: The ID of the bonus item that will be given to the user when they purchase this item. sku: type: string title: SKU quantity_fixed: type: integer title: Quantity Fixed description: The fixed quantity of the bonus item nullable: true quantity_percent: type: integer minimum: 0.0 title: Quantity Percent description: The user will receive a quantity equivalent to the set percentage of the price_after_discount_usd (in cents) of the purchased item. nullable: true type: object required: - id title: ItemBonus CampaignUpdate: properties: name: type: string title: Name description: type: string title: Description enabled: type: boolean title: Enabled type: anyOf: - $ref: '#/components/schemas/CampaignEventType' - type: string title: Type graph: $ref: '#/components/schemas/GraphRoot' start_at: type: number title: Start At end_at: type: number title: End At time_limit: type: boolean title: Time Limit archived_at: type: number title: Archived At attributes: $ref: '#/components/schemas/PersistentCampaignAttributes' position: type: integer title: Position version_description: type: string title: Version Description allowed_popups_on_store: type: boolean title: Allowed Popups On Store is_sync: type: boolean title: Is Sync type: object title: CampaignUpdate VirtualSKUBonusSource: type: string enum: - custom - event_item title: VirtualSKUBonusSource description: An enumeration. RedeemCouponBlockVariant: type: string enum: - default - block title: RedeemCouponBlockVariant description: An enumeration. LatestPagesBlockVariant: type: string enum: - linear - blur title: LatestPagesBlockVariant description: An enumeration. CustomAttribute: properties: name: type: string title: Name description: type: string title: Description type: $ref: '#/components/schemas/AttrType' min: type: integer title: Min max: type: integer title: Max custom_values: items: type: string type: array title: Custom Values can_use_in_deep_link: type: boolean title: Can Use In Deep Link default: false scope: default: private $ref: '#/components/schemas/AttributeScope' type: object required: - name - type title: CustomAttribute TwitchData: properties: channel: type: string title: Channel description: The channel of the Twitch video type: object required: - channel title: TwitchData FeaturedItemBlock: properties: block: type: string enum: - FeaturedItemBlock title: Block default: FeaturedItemBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At item_id: type: string title: Item Id store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id fallback_store_item_id: type: string title: Fallback Store Item Id fallback_store_id: type: string title: Fallback Store Id fallback_item_id: type: string title: Fallback Item Id background_image_size: type: string title: Background Image Size category_template_id: type: string title: Category Template Id type: object title: FeaturedItemBlock CreateItemBannerActionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - CreateItemBannerActionNode title: Model Type default: CreateItemBannerActionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description page_id: type: string title: Page Id page_slug: type: string title: Page Slug config: $ref: '#/components/schemas/TranslatableFeaturedBannerConfig' duration: type: integer title: Duration link_created_offer: type: boolean title: Link Created Offer use_event_item: type: boolean title: Use Event Item default: false type: object required: - id - x - y - config title: CreateItemBannerActionNode Expression: properties: tokens: items: $ref: '#/components/schemas/Token' type: array title: Tokens variables: items: $ref: '#/components/schemas/MathExpression' type: array title: Variables type: object title: Expression LatestNewsBlock: properties: block: type: string enum: - LatestNewsBlock title: Block default: LatestNewsBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At variant: default: standard $ref: '#/components/schemas/LatestNewsBlockVariant' hide_controls: type: boolean title: Hide Controls is_featured: type: boolean title: Is Featured type: object title: LatestNewsBlock LeaderboardCollectionBlock: properties: block: type: string enum: - LeaderboardCollectionBlock title: Block default: LeaderboardCollectionBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At type: object title: LeaderboardCollectionBlock AddStoreNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - AddStoreNode title: Model Type default: AddStoreNode break_on_error: type: boolean title: Break On Error description: type: string title: Description store_id: type: string title: Store Id do_not_merge_items: type: boolean title: Do Not Merge Items type: object required: - id - x - y - store_id title: AddStoreNode VideoBlockSettings: properties: title: type: string title: Title description: type: string title: Description order_id: type: integer title: Order Id default: 0 thumbnail_url: type: string maxLength: 65536 minLength: 1 format: uri title: Thumbnail Url show_thumbnail: type: boolean title: Show Thumbnail default: true auto_play: type: boolean title: Auto Play platform: $ref: '#/components/schemas/VideoPlatform' data: anyOf: - $ref: '#/components/schemas/YoutubeData' - $ref: '#/components/schemas/TwitchData' title: Data type: object required: - title - description - platform - data title: VideoBlockSettings AddToSegmentNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - AddToSegmentNode title: Model Type default: AddToSegmentNode break_on_error: type: boolean title: Break On Error description: type: string title: Description segment_id: type: string title: Segment Id segment_slug: type: string title: Segment Slug type: object required: - id - x - y title: AddToSegmentNode Campaign: properties: name: type: string title: Name description: type: string title: Description enabled: type: boolean title: Enabled type: anyOf: - $ref: '#/components/schemas/CampaignEventType' - type: string title: Type time_limit: type: boolean title: Time Limit default: false start_at: type: number title: Start At end_at: type: number title: End At archived_at: type: number title: Archived At attributes: $ref: '#/components/schemas/PersistentCampaignAttributes' position: type: integer title: Position allowed_popups_on_store: type: boolean title: Allowed Popups On Store is_sync: type: boolean title: Is Sync id: type: string title: Id version: type: string title: Version created_by_customer_id: type: string title: Created By Customer Id created_from_id: type: string title: Created From Id version_description: type: string title: Version Description modified_at: type: integer title: Modified At created_at: type: integer title: Created At type: object required: - name - enabled - type - id - version_description - created_at title: Campaign SequentialOfferBlock: properties: block: type: string enum: - SequentialOfferBlock title: Block default: SequentialOfferBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At sequential_offer_id: type: string title: Sequential Offer Id type: object required: - sequential_offer_id title: SequentialOfferBlock GraphRoot: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string title: Model Type default: GraphRoot break_on_error: type: boolean title: Break On Error description: type: string title: Description nodes: additionalProperties: oneOf: - $ref: '#/components/schemas/ConditionNode' - $ref: '#/components/schemas/EmailActionNode' - $ref: '#/components/schemas/MobilePushActionNode' - $ref: '#/components/schemas/MobilePopupActionNode' - $ref: '#/components/schemas/TimerNode' - $ref: '#/components/schemas/BrowserPushNotificationActionNode' - $ref: '#/components/schemas/BrowserPopupNotificationActionNode' - $ref: '#/components/schemas/PWAPromptActionNode' - $ref: '#/components/schemas/WebhookActionNode' - $ref: '#/components/schemas/SplitNode' - $ref: '#/components/schemas/CreateItemBannerActionNode' - $ref: '#/components/schemas/CreateVirtualSKUNode' - $ref: '#/components/schemas/CreateUserStoreSettingsNode' - $ref: '#/components/schemas/SetAttributeValuesNode' - $ref: '#/components/schemas/VerifyPlayerNode' - $ref: '#/components/schemas/AddUserAchievementNode' - $ref: '#/components/schemas/CreateCouponNode' - $ref: '#/components/schemas/ItemAddNode' - $ref: '#/components/schemas/AddToSegmentNode' - $ref: '#/components/schemas/RemoveFromSegmentNode' - $ref: '#/components/schemas/AddStoreNode' - $ref: '#/components/schemas/SortStoreItemsNode' - $ref: '#/components/schemas/AddPageBlockNode' discriminator: propertyName: model_type mapping: ConditionNode: '#/components/schemas/ConditionNode' EmailActionNode: '#/components/schemas/EmailActionNode' MobilePushActionNode: '#/components/schemas/MobilePushActionNode' MobilePopupActionNode: '#/components/schemas/MobilePopupActionNode' TimerNode: '#/components/schemas/TimerNode' BrowserPushNotificationActionNode: '#/components/schemas/BrowserPushNotificationActionNode' BrowserPopupNotificationActionNode: '#/components/schemas/BrowserPopupNotificationActionNode' PWAPromptActionNode: '#/components/schemas/PWAPromptActionNode' WebhookActionNode: '#/components/schemas/WebhookActionNode' SplitNode: '#/components/schemas/SplitNode' CreateItemBannerActionNode: '#/components/schemas/CreateItemBannerActionNode' CreateVirtualSKUNode: '#/components/schemas/CreateVirtualSKUNode' CreateUserStoreSettingsNode: '#/components/schemas/CreateUserStoreSettingsNode' SetAttributeValuesNode: '#/components/schemas/SetAttributeValuesNode' VerifyPlayerNode: '#/components/schemas/VerifyPlayerNode' AddUserAchievementNode: '#/components/schemas/AddUserAchievementNode' CreateCouponNode: '#/components/schemas/CreateCouponNode' ItemAddNode: '#/components/schemas/ItemAddNode' AddToSegmentNode: '#/components/schemas/AddToSegmentNode' RemoveFromSegmentNode: '#/components/schemas/RemoveFromSegmentNode' AddStoreNode: '#/components/schemas/AddStoreNode' SortStoreItemsNode: '#/components/schemas/SortStoreItemsNode' AddPageBlockNode: '#/components/schemas/AddPageBlockNode' type: object title: Nodes view_port: $ref: '#/components/schemas/ViewPort' type: object required: - id - x - y title: GraphRoot TextBlock: properties: block: type: string enum: - TextBlock title: Block default: TextBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At text: type: string title: Text title: type: string title: Title type: object title: TextBlock ConditionNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - ConditionNode title: Model Type default: ConditionNode break_on_error: type: boolean title: Break On Error description: type: string title: Description expression: type: string title: Expression expr: $ref: '#/components/schemas/Expression' true_node_id: type: string title: True Node Id false_node_id: type: string title: False Node Id type: object required: - id - x - y - expr title: ConditionNode TimerNode: properties: id: type: string title: Id next_node_id: type: string title: Next Node Id title: type: string title: Title x: type: integer title: X y: type: integer title: Y result: type: string title: Result model_type: type: string enum: - TimerNode title: Model Type default: TimerNode break_on_error: type: boolean title: Break On Error description: type: string title: Description delay: type: integer title: Delay start_wait: type: integer title: Start Wait end_wait: type: integer title: End Wait type: object required: - id - x - y - delay title: TimerNode VideoPlatform: type: string enum: - youtube - twitch title: VideoPlatform description: An enumeration. FullNewsBlock: properties: block: type: string enum: - FullNewsBlock title: Block default: FullNewsBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At news_id: type: string title: News Id type: object title: FullNewsBlock SetAttributeValue: properties: name: type: string title: Name value: title: Value type: $ref: '#/components/schemas/AttributeValueType' add_values_to_list: type: boolean title: Add Values To List type: object required: - name - type title: SetAttributeValue ResourceState: type: string enum: - active - archived title: ResourceState description: An enumeration. CampaignCreate: properties: name: type: string title: Name description: type: string title: Description enabled: type: boolean title: Enabled type: anyOf: - $ref: '#/components/schemas/CampaignEventType' - type: string title: Type time_limit: type: boolean title: Time Limit default: false start_at: type: number title: Start At end_at: type: number title: End At archived_at: type: number title: Archived At attributes: $ref: '#/components/schemas/PersistentCampaignAttributes' position: type: integer title: Position allowed_popups_on_store: type: boolean title: Allowed Popups On Store is_sync: type: boolean title: Is Sync graph: $ref: '#/components/schemas/GraphRoot' version_description: type: string title: Version Description default: Initial version type: object required: - name - enabled - type title: CampaignCreate ItemRewardSettings: properties: available: items: $ref: '#/components/schemas/VCRewardConfig' type: array title: Available type: object required: - available title: ItemRewardSettings TranslatableFeaturedBannerConfig: properties: title: type: string title: Title description: type: string title: Description image_url: type: string title: Image Url background_image_size: type: string title: Background Image Size featured_item_id: type: string title: Featured Item Id store_item_id: type: string title: Store Item Id store_id: type: string title: Store Id replace_item_block: type: boolean title: Replace Item Block replace_item_block_name: type: string title: Replace Item Block Name type: object title: TranslatableFeaturedBannerConfig AttributeScope: type: string enum: - public - private title: AttributeScope description: An enumeration. RollingOfferBlockVariant: type: string enum: - slider - snake title: RollingOfferBlockVariant description: An enumeration. LoyaltyProgramBlock: properties: block: type: string enum: - LoyaltyProgramBlock title: Block default: LoyaltyProgramBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At variant: default: standard $ref: '#/components/schemas/LoyaltyProgramBlockVariant' slider_on_mobile: type: boolean title: Slider On Mobile nullable: true type: object title: LoyaltyProgramBlock TwitchBlock: properties: block: type: string enum: - TwitchBlock title: Block default: TwitchBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At video: $ref: '#/components/schemas/VideoBlockSettings' type: object required: - video title: TwitchBlock TokenType: type: string enum: - attribute - custom_attribute - event_attribute - custom_event_attribute - operator - number - date - string - boolean - list - variable - virtual_currency title: TokenType AttributeValueType: type: string enum: - custom_attribute - event_attribute - constant - variable title: AttributeValueType description: An enumeration. RedeemCouponBlock: properties: block: type: string enum: - RedeemCouponBlock title: Block default: RedeemCouponBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At variant: default: default $ref: '#/components/schemas/RedeemCouponBlockVariant' title: type: string title: Title description: type: string title: Description button_text: type: string title: Button Text background_image_url: type: string title: Background Image Url type: object title: RedeemCouponBlock LeaderboardCardBlock: properties: block: type: string enum: - LeaderboardCardBlock title: Block default: LeaderboardCardBlock id: type: string title: Id name: type: string title: Name start_at: type: integer title: Start At end_at: type: integer title: End At leaderboard_id: type: string title: Leaderboard Id type: object title: LeaderboardCardBlock securitySchemes: HTTPBearer: type: http scheme: bearer description: Refer to the [Authentication](https://docs.aghanim.com/api-reference/) section for instructions on obtaining an API key and use it as the `Bearer` token.