Aghanim Pages API

The Pages API from Aghanim — 3 operation(s) for pages.

Operations 8

GET /v1/pages Get Pages #
POST /v1/pages Create Page #
DELETE /v1/pages Bulk Delete Page #
PATCH /v1/pages Bulk Update Page #
GET /v1/pages/{page_id} Get Page #
PUT /v1/pages/{page_id} Update Page #
DELETE /v1/pages/{page_id} Delete Page #
POST /v1/pages/{page_id}/translate Translate Page #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aghanim-pages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aghanim-pages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aghanim Server-to-Server Achievements Pages 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: Pages
paths:
  /v1/pages:
    get:
      tags:
      - Pages
      summary: Get Pages
      operationId: get_pages
      security:
      - HTTPBearer: []
      parameters:
      - name: parent_id
        in: query
        required: false
        schema:
          title: Parent Id
          type: string
      - name: ignore_parent_id
        in: query
        required: false
        schema:
          title: Ignore Parent Id
          default: false
          type: boolean
      - name: search_string
        in: query
        required: false
        schema:
          title: Search String
          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
      - name: types
        in: query
        required: false
        schema:
          title: Types
          description: Optional comma separated list of types
          type: string
        description: Optional comma separated list of types
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Get Pages
                type: array
                items:
                  $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Pages
      summary: Create Page
      operationId: create_page
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Create
              $ref: '#/components/schemas/PageCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Pages
      summary: Bulk Delete Page
      description: Deletes multiple pages.
      operationId: bulk_delete_page
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Bulk Delete
              type: array
              items:
                $ref: '#/components/schemas/PageBulkDelete'
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Pages
      summary: Bulk Update Page
      description: Updates multiple pages.
      operationId: bulk_update_page
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Bulk Update
              type: array
              items:
                $ref: '#/components/schemas/PageBulkUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Bulk Update Page
                type: array
                items:
                  $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/pages/{page_id}:
    get:
      tags:
      - Pages
      summary: Get Page
      operationId: get_page
      security:
      - HTTPBearer: []
      parameters:
      - name: page_id
        in: path
        required: true
        schema:
          title: Page Id
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Pages
      summary: Update Page
      operationId: update_page
      security:
      - HTTPBearer: []
      parameters:
      - name: page_id
        in: path
        required: true
        schema:
          title: Page Id
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Update
              $ref: '#/components/schemas/PageUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Pages
      summary: Delete Page
      operationId: delete_page
      security:
      - HTTPBearer: []
      parameters:
      - name: page_id
        in: path
        required: true
        schema:
          title: Page Id
          type: string
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/pages/{page_id}/translate:
    post:
      tags:
      - Pages
      summary: Translate Page
      description: Translates a page.
      operationId: translate_page
      security:
      - HTTPBearer: []
      parameters:
      - name: page_id
        in: path
        required: true
        schema:
          title: Page Id
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Translate
              $ref: '#/components/schemas/PageTranslate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    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
    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
    PageSortField:
      type: string
      enum:
      - position
      - datetime
      title: PageSortField
      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
    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
    DailyRewardsBlockVariant:
      type: string
      enum:
      - expanded
      - compact
      - compact_mobile
      title: DailyRewardsBlockVariant
      description: An enumeration.
    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
    LocaleUrlMapping:
      properties:
        cs:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Cs
        de:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: De
        en:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: En
        es:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Es
        fr:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Fr
        fr-CA:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Fr-Ca
        hi:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Hi
        id:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Id
        it:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: It
        ja:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Ja
        ko:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Ko
        ms:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Ms
        nl:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Nl
        'no':
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: 'No'
        pl:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Pl
        pt:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Pt
        pt-BR:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Pt-Br
        ru:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Ru
        sv:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Sv
        th:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Th
        tr:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Tr
        uk:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Uk
        vi:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Vi
        zh:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Zh
        zh-Hant:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Zh-Hant
      type: object
      title: LocaleUrlMapping
    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
    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
    PageLayout:
      properties:
        blocks:
          items:
            items:
              oneOf:
              - $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'
              - $ref: '#/components/schemas/DynamicBlock'
              discriminator:
                propertyName: block
                mapping:
                  FullNewsBlock: '#/components/schemas/FullNewsBlock'
                  FeaturedNewsBlock: '#/components/schemas/FeaturedNewsBlock'
                  TwitchBlock: '#/components/schemas/TwitchBlock'
                  YoutubeBlock: '#/components/schemas/YoutubeBlock'
                  TextBlock: '#/components/schemas/TextBlock'
                  BannerBlock: '#/components/schemas/BannerBlock'
                  FeaturedItemBlock: '#/components/schemas/FeaturedItemBlock'
                  RedeemCouponBlock: '#/components/schemas/RedeemCouponBlock'
                  LatestNewsBlock: '#/components/schemas/LatestNewsBlock'
                  LatestPagesBlock: '#/components/schemas/LatestPagesBlock'
                  LeaderboardCardBlock: '#/components/schemas/LeaderboardCardBlock'
                  LeaderboardFullBlock: '#/components/schemas/LeaderboardFullBlock'
                  LeaderboardCollectionBlock: '#/components/schemas/LeaderboardCollectionBlock'
                  StoreBlock: '#/components/schemas/StoreBlock'
                  LimitedStoreBannerBlock: '#/components/schemas/LimitedStoreBannerBlock'
                  AchievementListBlock: '#/components/schemas/AchievementListBlock'
                  FeaturedPageBlock: '#/components/schemas/FeaturedPageBlock'
                  DailyRewardsBlock: '#/components/schemas/DailyRewardsBlock'
                  LoyaltyProgramBlock: '#/components/schemas/LoyaltyProgramBlock'
                  IFrameBlock: '#/components/schemas/IFrameBlock'
                  ImageBannerBlock: '#/components/schemas/ImageBannerBlock'
                  RichContentBlock: '#/components/schemas/RichContentBlock'
                  CarouselBlock: '#/components/schemas/CarouselBlock'
                  SequentialOfferBlock: '#/components/schemas/SequentialOfferBlock'
                  RangeOfferBlock: '#/components/schemas/RangeOfferBlock'
                  ProgressionProgramBlock: '#/components/schemas/ProgressionProgramBlock'
                  RollingOfferBlock: '#/components/schemas/RollingOfferBlock'
                  CarouselNewsBlock: '#/components/schemas/CarouselNewsBlock'
                  PiggyBankOfferBlock: '#/components/schemas/PiggyBankOfferBlock'
                  PlaceBlock: '#/components/schemas/PlaceBlock'
                  PickOneOfferBlock: '#/components/schemas/PickOneOfferBlock'
                  DynamicBlock: '#/components/schemas/DynamicBlock'
            type: array
          type: array
          title: Blocks
      type: object
      title: PageLayout
    DynamicBlock:
      properties:
        block:
          type: string
          enum:
          - DynamicBlock
          title: Block
          default: DynamicBlock
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        start_at:
          type: integer
          title: Start At
        end_at:
          type: integer
          title: End At
        graph_rules:
          $ref: '#/components/schemas/GraphRoot'
      type: object
      required:
      - graph_rules
      title: DynamicBlock
    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
    CouponPlayerBondType:
      type: string
      enum:
      - all_users
      - current_user
      - except_current_user
      title: CouponPlayerBondType
      description: An enumeration.
    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
    TwitchData:
      properties:
        channel:
          type: string
          title: Channel
          description: The channel of the Twitch video
      type: object
      required:
      - channel
      title: TwitchData
    Token:
      properties:
        type:
          $ref: '#/components/schemas/TokenType'
        value:
          title: Value
      type: object
      required:
      - type
      title: Token
    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
    LoyaltyProgramBlockVariant:
      type: string
      enum:
      - standard
      - expanded
      - compact
      title: LoyaltyProgramBlockVariant
      description: An enumeration.
    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
    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
    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
    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
    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
    AttributeValueType:
      type: string
      enum:
      - custom_attribute
      - event_attribute
      - constant
      - variable
      title: AttributeValueType
      description: An enumeration.
    PageUpdate:
      properties:
        key:
          type: string
          title: Key
          description: External unique page identifier
          nullable: true
        title:
          type: string
          title: Title
          description: The title of the page
        description:
          type: string
          title: Description
          description: The description of the page
        text:
          type: string
          title: Text
        slug:
          type: string
          maxLength: 100
          minLength: 3
          title: Slug
          description: The slug of the page
          unique: true
        layout:
          title: Layout
          description: The layou

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