Hiro RPC API

The Hiro RPC API is Heroic Labs' game framework server interface exposing economy, progression, achievements, inventory, and social graph RPCs that run on the Nakama server runtime. It is available as an OAS 3.0 specification and is designed for authoritative server-to-server calls from game clients and backend services.

OpenAPI Specification

heroiclabs-hiro-rpc-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: "Hiro RPC API"
  description: "An OpenAPI collection for the Hiro RPC API"
  version: 1.0.0
servers:
  - url: http://{hostAddr}:{port}/v2
    description: "Local development with Nakama server."
    variables:
      scheme:
        enum:
          - "https"
          - "http"
        default: "http"
      hostAddr:
        default: "127.0.0.1"
      port:
        enum:
          - "443"
          - "7350"
        default: "7350"
paths:
  /rpc/RPC_ID_INVENTORY_LIST?unwrap:
    post:
      summary: INVENTORY_LIST
      description: "List all inventory items defined in the codex."
      operationId: INVENTORY_LIST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_INVENTORY_LIST_INVENTORY?unwrap:
    post:
      summary: INVENTORY_LIST_INVENTORY
      description: "List all inventory items owned by the player."
      operationId: INVENTORY_LIST_INVENTORY
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_INVENTORY_CONSUME?unwrap:
    post:
      summary: INVENTORY_CONSUME
      description: "Consume one or more inventory items owned by the player."
      operationId: INVENTORY_CONSUME
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryConsumeRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryConsumeRewards'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_INVENTORY_GRANT?unwrap:
    post:
      summary: INVENTORY_GRANT
      description: "Grant one or more inventory items to the player."
      operationId: INVENTORY_GRANT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryGrantRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_INVENTORY_UPDATE?unwrap:
    post:
      summary: INVENTORY_UPDATE
      description: "Update the properties on one or more inventory items owned by the player."
      operationId: INVENTORY_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryUpdateItemsRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_INVENTORY_DELETE?unwrap:
    post:
      summary: INVENTORY_DELETE
      description: "Delete Items by instance id."
      operationId: INVENTORY_DELETE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryDeleteItemsRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_DONATION_CLAIM?unwrap:
    post:
      summary: ECONOMY_DONATION_CLAIM
      description: "Claim one or more rewards which are partially or full donated by other players."
      operationId: ECONOMY_DONATION_CLAIM
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyDonationClaimRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyDonationClaimRewards'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_DONATION_GIVE?unwrap:
    post:
      summary: ECONOMY_DONATION_GIVE
      description: "Donate some resource (currencies, items, etc.) to a user by donation ID."
      operationId: ECONOMY_DONATION_GIVE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyDonationGiveRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_DONATION_GET?unwrap:
    post:
      summary: ECONOMY_DONATION_GET
      description: "Get progress on one or more donations for a set of players by their IDs."
      operationId: ECONOMY_DONATION_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyDonationGetRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyDonationsByUserList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_DONATION_REQUEST?unwrap:
    post:
      summary: ECONOMY_DONATION_REQUEST
      description: "Request a donation which other players can contribute into."
      operationId: ECONOMY_DONATION_REQUEST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyDonationRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyDonationAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_STORE_GET?unwrap:
    post:
      summary: ECONOMY_STORE_GET
      description: "Get all store items defined in the Virtual Store."
      operationId: ECONOMY_STORE_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_GRANT?unwrap:
    post:
      summary: ECONOMY_GRANT
      description: "Grant one or more currencies or reward modifiers to te player."
      operationId: ECONOMY_GRANT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyGrantRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_PURCHASE_INTENT?unwrap:
    post:
      summary: ECONOMY_PURCHASE_INTENT
      description: "Send a marker of intent to purchase by the player."
      operationId: ECONOMY_PURCHASE_INTENT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyPurchaseIntentRequest'
      responses:
        '200':
          description: A successful response
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_PURCHASE_ITEM?unwrap:
    post:
      summary: ECONOMY_PURCHASE_ITEM
      description: "Purchase a store item by the player."
      operationId: ECONOMY_PURCHASE_ITEM
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyPurchaseRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyPurchaseAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_PURCHASE_RESTORE?unwrap:
    post:
      summary: ECONOMY_PURCHASE_RESTORE
      description: "Restore a set of purchases."
      operationId: ECONOMY_PURCHASE_RESTORE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyPurchaseRestoreRequest'
      responses:
        '200':
          description: A successful response
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_PLACEMENT_STATUS?unwrap:
    post:
      summary: ECONOMY_PLACEMENT_STATUS
      description: "Get the current status on an Ad placement which may have been rewarded."
      operationId: ECONOMY_PLACEMENT_STATUS
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyPlacementStatusRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyPlacementStatus'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ECONOMY_PLACEMENT_START?unwrap:
    post:
      summary: ECONOMY_PLACEMENT_START
      description: "Start a new Ad placement by placement ID."
      operationId: ECONOMY_PLACEMENT_START
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EconomyPlacementStartRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EconomyPlacementStatus'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ACHIEVEMENTS_CLAIM?unwrap:
    post:
      summary: ACHIEVEMENTS_CLAIM
      description: "Claim one or more achievements which have completed their progress."
      operationId: ACHIEVEMENTS_CLAIM
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AchievementsClaimRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchievementsUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ACHIEVEMENTS_GET?unwrap:
    post:
      summary: ACHIEVEMENTS_GET
      description: "Get all achievements with progress accumulated by the player."
      operationId: ACHIEVEMENTS_GET
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchievementList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ACHIEVEMENTS_UPDATE?unwrap:
    post:
      summary: ACHIEVEMENTS_UPDATE
      description: "Update one or more achievements with the same progress amount."
      operationId: ACHIEVEMENTS_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AchievementsUpdateRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchievementsUpdateAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ENERGY_GET?unwrap:
    post:
      summary: ENERGY_GET
      description: "Get the energies and their current timers for the player."
      operationId: ENERGY_GET
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnergyList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ENERGY_SPEND?unwrap:
    post:
      summary: ENERGY_SPEND
      description: "Spend one or more energies for the player."
      operationId: ENERGY_SPEND
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnergySpendRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnergySpendReward'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ENERGY_GRANT?unwrap:
    post:
      summary: ENERGY_GRANT
      description: "Grant one or more energies to the player."
      operationId: ENERGY_GRANT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnergyGrantRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnergyList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_ENERGY_SPEND_WITH_REFILL_START_TIME?unwrap:
    post:
      summary: ENERGY_SPEND_WITH_REFILL_START_TIME
      description: "Spend one or more energies with custom refill start times for the player."
      operationId: ENERGY_SPEND_WITH_REFILL_START_TIME
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnergySpendWithRefillStartTimeRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnergySpendReward'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_GET?unwrap:
    post:
      summary: TUTORIALS_GET
      description: "Get the tutorials and current progress step for the player."
      operationId: TUTORIALS_GET
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TutorialList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_ACCEPT?unwrap:
    post:
      summary: TUTORIALS_ACCEPT
      description: "Accept an offer to step through a tutorial."
      operationId: TUTORIALS_ACCEPT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TutorialAcceptRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tutorial'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_DECLINE?unwrap:
    post:
      summary: TUTORIALS_DECLINE
      description: "Decline an offer to start a tutorial."
      operationId: TUTORIALS_DECLINE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TutorialDeclineRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tutorial'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_ABANDON?unwrap:
    post:
      summary: TUTORIALS_ABANDON
      description: "Abandon progress on a tutorial."
      operationId: TUTORIALS_ABANDON
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TutorialAbandonRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tutorial'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_UPDATE?unwrap:
    post:
      summary: TUTORIALS_UPDATE
      description: "Update the current progress step in the tutorial by ID."
      operationId: TUTORIALS_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TutorialUpdateRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TutorialList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TUTORIALS_RESET?unwrap:
    post:
      summary: TUTORIALS_RESET
      description: "Reset the state of all given tutorial IDs."
      operationId: TUTORIALS_RESET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TutorialResetRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TutorialList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_CREATE?unwrap:
    post:
      summary: TEAMS_CREATE
      description: "Create a team which other players can join."
      operationId: TEAMS_CREATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamCreateRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_UPDATE?unwrap:
    post:
      summary: TEAMS_UPDATE
      description: "Update a team's properties."
      operationId: TEAMS_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamUpdateRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_LIST?unwrap:
    post:
      summary: TEAMS_LIST
      description: "List one or more teams which the player can join."
      operationId: TEAMS_LIST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_SEARCH?unwrap:
    post:
      summary: TEAMS_SEARCH
      description: "Search for teams by name or an optional short code."
      operationId: TEAMS_SEARCH
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamSearchRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_GET?unwrap:
    post:
      summary: TEAMS_GET
      description: "Retrieves a team by its TeamID."
      operationId: TEAMS_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamGetRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_USER_TEAMS_LIST?unwrap:
    post:
      summary: TEAMS_USER_TEAMS_LIST
      description: "Retrieve a list of teams associated with a given set of users."
      operationId: TEAMS_USER_TEAMS_LIST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTeamsListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTeamsList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_WRITE_CHAT_MESSAGE?unwrap:
    post:
      summary: TEAMS_WRITE_CHAT_MESSAGE
      description: "Write a chat message to the Team's chat channel."
      operationId: TEAMS_WRITE_CHAT_MESSAGE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamWriteChatMessageRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelMessageAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_STORE_GET?unwrap:
    post:
      summary: TEAMS_STORE_GET
      description: "Get all store items defined in the team Virtual Store."
      operationId: TEAMS_STORE_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamStoreListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamStore'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_STORE_PURCHASE?unwrap:
    post:
      summary: TEAMS_STORE_PURCHASE
      description: "Purchase a team store item."
      operationId: TEAMS_STORE_PURCHASE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamStorePurchaseRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamStorePurchaseAck'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_WALLET_GET?unwrap:
    post:
      summary: TEAMS_WALLET_GET
      description: "Get a team's wallet."
      operationId: TEAMS_WALLET_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamWalletGetRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamWallet'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_WALLET_GRANT?unwrap:
    post:
      summary: TEAMS_WALLET_GRANT
      description: "Grant currencies to a team's wallet."
      operationId: TEAMS_WALLET_GRANT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamWalletGrantRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamWallet'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_STATS_GET?unwrap:
    post:
      summary: TEAMS_STATS_GET
      description: "Get a team's stats."
      operationId: TEAMS_STATS_GET
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamStatListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_STATS_UPDATE?unwrap:
    post:
      summary: TEAMS_STATS_UPDATE
      description: "Update a team's stats."
      operationId: TEAMS_STATS_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamStatUpdateRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatList'
        'default':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /rpc/RPC_ID_TEAMS_INVENTORY_LIST?unwrap:
    post:
      summary: TEAMS_INVENTORY_LIST
      description: "List all inventory items defined in the team codex."
      operationId: TEAMS_INVENTORY_LIST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamInventoryListRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryList'
        'default':
          desc

# --- truncated at 32 KB (190 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/heroiclabs/refs/heads/main/openapi/heroiclabs-hiro-rpc-api-openapi.yml