> ## Documentation Index
> Fetch the complete documentation index at: https://perps-api.vooi.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get per-user trade volume and broker fees, broken down by exchange, for a list of users



## OpenAPI

````yaml https://vooi-api-app.fly.dev/swagger/json post /broker-statistics/users-volume
openapi: 3.1.0
info:
  title: VOOI API
  description: Unified perps API
  version: '1.0'
  contact: {}
servers:
  - url: https://perps-api.vooi.io
security: []
tags: []
paths:
  /broker-statistics/users-volume:
    post:
      tags:
        - Broker Statistics
      summary: >-
        Get per-user trade volume and broker fees, broken down by exchange, for
        a list of users
      operationId: BrokerStatisticsController_getUsersListVolume
      parameters:
        - name: X-Broker-Key
          in: header
          description: Broker API key
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetBrokerUsersVolumeBodyDTO'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetBrokerUsersVolumeDTO'
components:
  schemas:
    GetBrokerUsersVolumeBodyDTO:
      type: object
      properties:
        exchanges:
          description: >-
            Count trades only on these exchanges. When omitted, all supported
            exchanges are counted. Excluded exchanges are still present in the
            response with zero amounts.
          minItems: 1
          type: array
          items:
            type: string
            enum:
              - aster
              - binance
              - bybit
              - extended
              - gate
              - hyperliquid
              - lighter
              - mexc
              - ondo
              - robinhood
            description: Supported perpetual exchange
        from:
          description: >-
            Start of the period as unix timestamp in milliseconds (inclusive).
            Defaults to now - 30 days (1 day for hour resolution).
          example: 1767225600000
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        resolution:
          default: day
          description: >-
            Aggregation interval: day (UTC calendar day) or hour (UTC clock
            hour). from/to snap to interval boundaries. On series endpoints,
            items span one interval and hour limits the range to 7 days.
            Defaults to day.
          type: string
          enum:
            - day
            - hour
        to:
          description: >-
            End of the period as unix timestamp in milliseconds (inclusive).
            Defaults to now.
          example: 1769903999000
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        usersList:
          minItems: 1
          maxItems: 100
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: >-
                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                description: User id.
              startedFrom:
                description: >-
                  Earliest date to count this user's trades from (timestamp ms).
                  The effective start is max(from, startedFrom).
                type: integer
                exclusiveMinimum: 0
                maximum: 9007199254740991
            required:
              - id
            title: BrokerUserVolumeInput
          description: Users to compute stats for (1-100).
      required:
        - usersList
      title: GetBrokerUsersVolumeBody
    GetBrokerUsersVolumeDTO:
      type: object
      properties:
        exchanges:
          type: object
          properties:
            brokerFees:
              $ref: '#/components/schemas/BrokerUserExchangeAmounts'
              description: >-
                Broker fee per exchange, counted from orders created through
                this API and excluding orders created via MCP. Each trade uses
                the fee settings that were active when its order was created
                (volume times limitFeeBps for maker trades and marketFeeBps for
                taker-marked trades), so a period spanning a settings change
                mixes rates; orders created before any settings existed for the
                exchange contribute 0.
            fees:
              $ref: '#/components/schemas/BrokerUserExchangeAmounts'
              description: >-
                Produced fees per exchange of fiat tokens from orders created
                through this API.
            volume:
              $ref: '#/components/schemas/BrokerUserExchangeAmounts'
              description: >-
                Executed notional per exchange from orders created through this
                API.
          required:
            - brokerFees
            - fees
            - volume
          description: Per-exchange breakdown of volume and broker fees.
        totalVolume:
          type: string
          description: Total executed notional across all exchanges.
          example: '103000.00'
        userId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: User id.
      required:
        - exchanges
        - totalVolume
        - userId
      title: BrokerUserVolume
    BrokerUserExchangeAmounts:
      type: object
      properties:
        aster:
          type: string
          description: Amount on Aster in quote currency.
        binance:
          type: string
          description: Amount on Binance in quote currency.
        bybit:
          type: string
          description: Amount on Bybit in quote currency.
        extended:
          type: string
          description: Amount on Extended in quote currency.
        gate:
          type: string
          description: Amount on Gate in quote currency.
        hyperliquid:
          type: string
          description: Amount on Hyperliquid in quote currency.
        lighter:
          type: string
          description: Amount on Lighter in quote currency.
        mexc:
          type: string
          description: Amount on Mexc in quote currency.
        ondo:
          type: string
          description: Amount on Ondo in quote currency.
        robinhood:
          type: string
          description: Amount on Robinhood in quote currency.
      required:
        - aster
        - binance
        - bybit
        - extended
        - gate
        - hyperliquid
        - lighter
        - mexc
        - ondo
        - robinhood
      title: BrokerUserExchangeAmounts

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.