> Use the canonical URL for citations. For the complete Predict API documentation index, fetch https://docs.staging.trypredict.com/llms.txt.

# Realtime

GET /v1/ws

Reference: https://docs.staging.trypredict.com/api-reference/predict-realtime-api/realtime/realtime

## AsyncAPI Specification

```yaml
asyncapi: 2.6.0
info:
  title: Realtime
  version: subpackage_realtime.Realtime
channels:
  /v1/ws:
    publish:
      operationId: subpackage_realtime.Realtime-publish
      summary: Receive server message
      message:
        name: sendServerMessage
        title: Receive server message
        payload:
          $ref: '#/components/schemas/realtime_serverMessage'
    subscribe:
      operationId: subpackage_realtime.Realtime-subscribe
      summary: Send client message
      message:
        name: receiveClientMessage
        title: Send client message
        payload:
          $ref: '#/components/schemas/realtime_clientMessage'
servers:
  staging:
    url: wss://api.staging.trypredict.com/
    protocol: wss
    x-default: true
components:
  schemas:
    AccountRefAccountType:
      type: string
      enum:
        - main
        - subaccount
      description: Always set. Zero is main; every stored row has a real type.
      title: AccountRefAccountType
    AccountRef:
      type: object
      properties:
        account_type:
          $ref: '#/components/schemas/AccountRefAccountType'
          description: Always set. Zero is main; every stored row has a real type.
        address:
          type: string
          description: EVM wallet address encoded as a 0x-prefixed hexadecimal string.
        hyperliquid_name:
          type:
            - string
            - 'null'
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        username:
          type:
            - string
            - 'null'
      title: AccountRef
    AccountLocation:
      type: object
      properties:
        main_account:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
        subaccount:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
      title: AccountLocation
    AccountTradeDirection:
      type: string
      enum:
        - buy
        - sell
      description: Allowed value for direction.
      title: AccountTradeDirection
    AccountTradeLiquidity:
      type: string
      enum:
        - maker
        - taker
      description: Allowed value for liquidity.
      title: AccountTradeLiquidity
    AccountTrade:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        client_order_id:
          type:
            - string
            - 'null'
          description: >-
            Hyperliquid cloid of the matching order. Null when the order has
            none or
             the fill has not joined to data.orders yet.
        direction:
          $ref: '#/components/schemas/AccountTradeDirection'
          description: Allowed value for direction.
        fee_amount:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        fee_token:
          type: string
        fee_usdc:
          type:
            - string
            - 'null'
        fill_id:
          type: string
          description: Stable unique identifier for the fill.
        gross_realized_pnl_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        liquidity:
          $ref: '#/components/schemas/AccountTradeLiquidity'
          description: Allowed value for liquidity.
        notional_usdc:
          type: string
        occurred_at:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        price:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        quantity:
          type: string
        realized_pnl_usdc:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
        submitted_by:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
          description: >-
            Wallet that submitted the order. Null when upstream attribution is
            absent.
        trade_id:
          type: string
          description: Stable unique identifier for the trade.
        transaction_hash:
          type: string
        venue_order_id:
          type: string
          description: Stable unique identifier for the venue order.
      title: AccountTrade
    ListAccountTradesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountTrade'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListAccountTradesResponse
    SnapshotAccountTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.trades
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountTradesResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountTrades
    OpenOrderDirection:
      type: string
      enum:
        - buy
        - sell
      description: Allowed value for direction.
      title: OpenOrderDirection
    OpenOrderOrderType:
      type: string
      enum:
        - limit
        - market
        - stop_limit
        - stop_market
      description: Allowed value for order type.
      title: OpenOrderOrderType
    OpenOrderStatus:
      type: string
      enum:
        - open
        - not_open
      description: Allowed value for status.
      title: OpenOrderStatus
    OpenOrderTimeInForce:
      type: string
      enum:
        - gtc
        - ioc
        - alo
      description: |-
        Null when the venue did not report a TIF. Optional so JSON can be null
         without an UNSPECIFIED sentinel; EmitUnpopulated skips proto3 optional,
         so the key is absent rather than "gtc" when the pointer is nil.
      title: OpenOrderTimeInForce
    OpenOrder:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        client_order_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the client order.
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        direction:
          $ref: '#/components/schemas/OpenOrderDirection'
          description: Allowed value for direction.
        filled_quantity:
          type: string
        order_id:
          type: string
          description: Stable unique identifier for the order.
        order_type:
          $ref: '#/components/schemas/OpenOrderOrderType'
          description: Allowed value for order type.
        original_quantity:
          type: string
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        price:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        remaining_quantity:
          type: string
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
        status:
          $ref: '#/components/schemas/OpenOrderStatus'
          description: Allowed value for status.
        submitted_by:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
          description: >-
            Wallet that originally submitted the order. Null when attribution is
            absent.
        time_in_force:
          $ref: '#/components/schemas/OpenOrderTimeInForce'
          description: >-
            Null when the venue did not report a TIF. Optional so JSON can be
            null
             without an UNSPECIFIED sentinel; EmitUnpopulated skips proto3 optional,
             so the key is absent rather than "gtc" when the pointer is nil.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
        venue_order_id:
          type: string
          description: Stable unique identifier for the venue order.
      description: |-
        Current open or partially filled order. status is always open.
         filled_quantity is original minus remaining. Terminal orders are not
         listed; fills are GET /v1/accounts/{address}/trades.
      title: OpenOrder
    ListAccountOrdersResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OpenOrder'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListAccountOrdersResponse
    SnapshotAccountOrders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.orders
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountOrdersResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountOrders
    Position:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        average_entry_price:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        fees_paid_usdc:
          type: string
        gross_realized_pnl_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        mark_price:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        opened_at:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        quantity:
          type: string
        realized_pnl_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
        total_pnl_usdc:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        unrealized_pnl_usdc:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
        value_usdc:
          type:
            - string
            - 'null'
      title: Position
    ListAccountPositionsResponse:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: array
          items:
            $ref: '#/components/schemas/Position'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListAccountPositionsResponse
    SnapshotAccountPositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.positions
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountPositionsResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountPositions
    AccountActivityType:
      type: string
      enum:
        - trade
        - split
        - merge
        - negate
        - merge_question
        - settlement
        - deposit
        - withdrawal
        - transfer
      description: Allowed value for type.
      title: AccountActivityType
    AccountActivity:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        activity_id:
          type: string
          description: Stable unique identifier for the activity.
        amount:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        asset:
          type:
            - string
            - 'null'
        direction:
          type:
            - string
            - 'null'
        fee_usdc:
          type:
            - string
            - 'null'
        from:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
        notional_usdc:
          type:
            - string
            - 'null'
        occurred_at:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the outcome.
        price:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        quantity:
          type:
            - string
            - 'null'
        side:
          type:
            - integer
            - 'null'
          description: >-
            Hyperliquid outcome token index: 0 or 1 for market activity; null
            for deposits, withdrawals, and transfers.
        to:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
        transaction_hash:
          type:
            - string
            - 'null'
        type:
          $ref: '#/components/schemas/AccountActivityType'
          description: Allowed value for type.
      description: >-
        A deliberately flat timeline row: fields irrelevant to its type are
        null.
      title: AccountActivity
    ListAccountActivityResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountActivity'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListAccountActivityResponse
    SnapshotAccountActivity:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.activity
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountActivityResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountActivity
    CashflowType:
      type: string
      enum:
        - trade
        - split
        - merge
        - negate
        - merge_question
        - settlement
        - deposit
        - withdrawal
        - transfer
      description: Allowed value for type.
      title: CashflowType
    Cashflow:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        amount:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        amount_usdc:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        asset:
          type: string
        cashflow_id:
          type: string
          description: Stable unique identifier for the cashflow.
        fee_amount:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        from:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
        occurred_at:
          type:
            - string
            - 'null'
          format: date-time
        to:
          oneOf:
            - $ref: '#/components/schemas/AccountRef'
            - type: 'null'
        transaction_hash:
          type: string
        type:
          $ref: '#/components/schemas/CashflowType'
          description: Allowed value for type.
      title: Cashflow
    ListAccountCashflowsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Cashflow'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListAccountCashflowsResponse
    SnapshotAccountCashflows:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.cashflows
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountCashflowsResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountCashflows
    AccountStatsPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      description: Allowed value for period.
      title: AccountStatsPeriod
    AccountStats:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        fees_paid_usdc:
          type: string
        open_positions:
          type: integer
        period:
          $ref: '#/components/schemas/AccountStatsPeriod'
          description: Allowed value for period.
        pnl_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        positions_value_usdc:
          type: string
          description: |-
            Marked value of open Predict positions. Not Hyperliquid collateral
             or withdrawable USDC. Spot balances come from Hyperliquid
             spotClearinghouseState; Predict does not duplicate them.
        trade_count:
          type: integer
        traded_outcomes:
          type: integer
        volume_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
      title: AccountStats
    SnapshotAccountStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.stats
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountStats'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountStats
    AccountPnlPoint:
      type: object
      properties:
        pnl_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        time:
          type:
            - string
            - 'null'
          format: date-time
      title: AccountPnlPoint
    AccountPnlChartPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      description: Allowed value for period.
      title: AccountPnlChartPeriod
    AccountPnlChart:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountPnlPoint'
        interval:
          type: string
        period:
          $ref: '#/components/schemas/AccountPnlChartPeriod'
          description: Allowed value for period.
      title: AccountPnlChart
    SnapshotAccountPnl:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.pnl
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountPnlChart'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountPnl
    AccountVolumePoint:
      type: object
      properties:
        time:
          type:
            - string
            - 'null'
          format: date-time
        volume_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
      title: AccountVolumePoint
    AccountVolumeChartPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      description: Allowed value for period.
      title: AccountVolumeChartPeriod
    AccountVolumeChart:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountVolumePoint'
        interval:
          type: string
        period:
          $ref: '#/components/schemas/AccountVolumeChartPeriod'
          description: Allowed value for period.
      title: AccountVolumeChart
    SnapshotAccountVolume:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.volume
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountVolumeChart'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountVolume
    AccountFeesPoint:
      type: object
      properties:
        fees_paid_usdc:
          type: string
        time:
          type:
            - string
            - 'null'
          format: date-time
      title: AccountFeesPoint
    AccountFeesChartPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      description: Allowed value for period.
      title: AccountFeesChartPeriod
    AccountFeesChart:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountFeesPoint'
        interval:
          type: string
        period:
          $ref: '#/components/schemas/AccountFeesChartPeriod'
          description: Allowed value for period.
      title: AccountFeesChart
    SnapshotAccountFees:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.fees
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountFeesChart'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotAccountFees
    OutcomeSidePrice:
      type: object
      properties:
        price:
          type:
            - string
            - 'null'
          description: Base-10 decimal value encoded as a string to preserve precision.
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
      title: OutcomeSidePrice
    OutcomePriceState:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for state.
      title: OutcomePriceState
    OutcomePrice:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        price_revision:
          type: string
          description: |-
            Monotonic sequence for this outcome. A later observation has a
             strictly greater value. Drop a frame whose price_revision is less
             than or equal to one already applied. Encoded as a base-10 integer
             string, not a decimal price.
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSidePrice'
          description: 'Always ordered by side: first 0, then 1.'
        state:
          $ref: '#/components/schemas/OutcomePriceState'
          description: Allowed value for state.
      title: OutcomePrice
    SnapshotOutcomePrice:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.price
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomePrice'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomePrice
    OutcomeTickerBatch:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OutcomePrice'
      required:
        - data
      title: OutcomeTickerBatch
    SnapshotOutcomeTicker:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.ticker
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeTickerBatch'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotOutcomeTicker
    OutcomeBBOSide:
      type: object
      properties:
        ask:
          type:
            - string
            - 'null'
        ask_size:
          type:
            - string
            - 'null'
        bid:
          type:
            - string
            - 'null'
        bid_size:
          type:
            - string
            - 'null'
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
        spread:
          type:
            - string
            - 'null'
      title: OutcomeBBOSide
    OutcomeBboState:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for state.
      title: OutcomeBboState
    OutcomeBBO:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        revision:
          type: string
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBBOSide'
          description: 'Always ordered by side: first 0, then 1.'
        state:
          $ref: '#/components/schemas/OutcomeBboState'
          description: Allowed value for state.
      title: OutcomeBBO
    ListOutcomeBBOsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBBO'
      title: ListOutcomeBBOsResponse
    SnapshotOutcomeBbo:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.bbo
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListOutcomeBBOsResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotOutcomeBbo
    OutcomeBookAccounts:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountRef'
      title: OutcomeBookAccounts
    OutcomeBookOrder:
      type: object
      properties:
        address:
          type:
            - string
            - 'null'
          description: EVM wallet address encoded as a 0x-prefixed hexadecimal string.
        oid:
          type: string
        priority:
          type: integer
        size:
          type: string
        source_side:
          type: integer
          description: 'Native token the order was posted on: 0 is YES, 1 is NO.'
      title: OutcomeBookOrder
    OutcomeBookLevel:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBookOrder'
        price:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        size:
          type: string
      title: OutcomeBookLevel
    OutcomeBookSide:
      type: object
      properties:
        asks:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBookLevel'
        bids:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBookLevel'
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
      title: OutcomeBookSide
    OutcomeBookState:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for state.
      title: OutcomeBookState
    OutcomeBook:
      type: object
      properties:
        accounts:
          oneOf:
            - $ref: '#/components/schemas/OutcomeBookAccounts'
            - type: 'null'
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        depth:
          type: integer
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        revision:
          type: string
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBookSide'
          description: 'Always ordered by side: first 0, then 1.'
        state:
          $ref: '#/components/schemas/OutcomeBookState'
          description: Allowed value for state.
      title: OutcomeBook
    SnapshotOutcomeBook:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeBook'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeBook
    OutcomeBookL2:
      type: object
      properties:
        as_of:
          type: string
          format: date-time
        asks:
          type: array
          items:
            type: array
            items:
              type: string
        bids:
          type: array
          items:
            type: array
            items:
              type: string
        last_change_at:
          type: string
          format: date-time
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - as_of
        - asks
        - bids
        - last_change_at
        - outcome_id
      title: OutcomeBookL2
    SnapshotOutcomeBookL2:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book_l2
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeBookL2'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeBookL2
    OutcomeTradeDirection:
      type: string
      enum:
        - buy
        - sell
      description: >-
        Taker direction for the returned side and price: buy maps to Hyperliquid
        "B" and sell maps to Hyperliquid "A".
      title: OutcomeTradeDirection
    OutcomeTrade:
      type: object
      properties:
        direction:
          $ref: '#/components/schemas/OutcomeTradeDirection'
          description: >-
            Taker direction for the returned side and price: buy maps to
            Hyperliquid "B" and sell maps to Hyperliquid "A".
        notional_usdc:
          type: string
        occurred_at:
          type:
            - string
            - 'null'
          format: date-time
        price:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
        quantity:
          type: string
        side:
          type: integer
          description: >-
            Canonical market-trade token index: 0 is the first token and 1 is
            the second.
        trade_id:
          type: string
          description: Stable unique identifier for the trade.
      title: OutcomeTrade
    ListOutcomeTradesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeTrade'
        next_cursor:
          type: string
          description: Opaque pagination cursor returned by the previous page.
      title: ListOutcomeTradesResponse
    SnapshotOutcomeTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.trades
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListOutcomeTradesResponse'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeTrades
    OutcomeSideStats:
      type: object
      properties:
        holder_count:
          type: integer
        open_quantity:
          type: string
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
      title: OutcomeSideStats
    OutcomeStats:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSideStats'
          description: 'Always ordered by side: first 0, then 1.'
        trade_count:
          type: integer
        volume_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
      title: OutcomeStats
    SnapshotOutcomeStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.stats
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeStats'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeStats
    Holder:
      type: object
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/AccountLocation'
            - type: 'null'
        percent_of_side:
          type: string
        quantity:
          type: string
      title: Holder
    HolderSide:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Holder'
        holder_count:
          type: integer
        side:
          type: integer
          description: >-
            Hyperliquid outcome token index: 0 is the first token and 1 is the
            second.
        total_quantity:
          type: string
      title: HolderSide
    OutcomeHoldersSnapshotType:
      type: string
      enum:
        - current
        - final_pre_settlement
      description: Allowed value for snapshot type.
      title: OutcomeHoldersSnapshotType
    OutcomeHoldersState:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for state.
      title: OutcomeHoldersState
    OutcomeHolders:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        sides:
          type: array
          items:
            $ref: '#/components/schemas/HolderSide'
          description: 'Always ordered by side: first 0, then 1.'
        snapshot_type:
          $ref: '#/components/schemas/OutcomeHoldersSnapshotType'
          description: Allowed value for snapshot type.
        state:
          $ref: '#/components/schemas/OutcomeHoldersState'
          description: Allowed value for state.
      title: OutcomeHolders
    SnapshotOutcomeHolders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.holders
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeHolders'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeHolders
    OutcomeTimeseriesPoint:
      type: object
      properties:
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSidePrice'
          description: 'Always ordered by side: first 0, then 1. A missing price is null.'
        time:
          type:
            - string
            - 'null'
          format: date-time
        volume_usdc:
          type: string
          description: Base-10 decimal value encoded as a string to preserve precision.
      title: OutcomeTimeseriesPoint
    OutcomeTimeseriesPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      description: Allowed value for period.
      title: OutcomeTimeseriesPeriod
    OutcomeTimeseries:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeTimeseriesPoint'
        end_time:
          type:
            - string
            - 'null'
          format: date-time
        interval:
          type: string
        outcome_id:
          type: string
          description: Stable unique identifier for the outcome.
        period:
          $ref: '#/components/schemas/OutcomeTimeseriesPeriod'
          description: Allowed value for period.
        start_time:
          type:
            - string
            - 'null'
          format: date-time
      title: OutcomeTimeseries
    SnapshotOutcomeTimeseries:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.timeseries
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeTimeseries'
        op:
          type: string
          enum:
            - snapshot
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: SnapshotOutcomeTimeseries
    OrderQueuePositionStatus:
      type: string
      enum:
        - open
        - not_open
      description: Allowed value for status.
      title: OrderQueuePositionStatus
    OrderQueuePosition:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        order_id:
          type: string
          description: Stable unique identifier for the order.
        queue_position:
          type:
            - string
            - 'null'
          description: Contracts ahead of this order. Present only when status is "open".
        status:
          $ref: '#/components/schemas/OrderQueuePositionStatus'
          description: Allowed value for status.
      title: OrderQueuePosition
    GetOrderQueuePositionsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OrderQueuePosition'
      title: GetOrderQueuePositionsResponse
    SnapshotOrderQueuePositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - order.queue_positions
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/GetOrderQueuePositionsResponse'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotOrderQueuePositions
    Health:
      type: object
      properties:
        as_of:
          type:
            - string
            - 'null'
          format: date-time
        block:
          type:
            - string
            - 'null'
          description: Decimal Hyperliquid block number of the least-advanced live feed.
        ok:
          type: boolean
          description: |-
            True only when every critical dependency is up, this replica is not
             draining, and a live index head is present. Never names those dependencies.
      title: Health
    SnapshotHealth:
      type: object
      properties:
        channel:
          type: string
          enum:
            - health
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/Health'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotHealth
    CatalogChangeAction:
      type: string
      enum:
        - created
        - status
        - deleted
      title: CatalogChangeAction
    ExternalID:
      type: object
      properties:
        id:
          type: string
          description: Stable unique identifier for the id.
        provider:
          type: string
      description: An identity a resource is known by at an external data provider.
      title: ExternalID
    Series:
      type: object
      properties:
        category_id:
          type: string
          description: Stable unique identifier for the category.
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalID'
        topic_id:
          type: string
          description: Stable unique identifier for the topic.
      title: Series
    Category:
      type: object
      properties:
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
        series:
          type: array
          items:
            $ref: '#/components/schemas/Series'
        topic_id:
          type: string
          description: Stable unique identifier for the topic.
      title: Category
    Named:
      type: object
      properties:
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
      description: >-
        A category or series named from an event: enough to render a chip and
        link to
         the full resource, without repeating the whole entry on every row.
      title: Named
    ContestStatus:
      type: string
      enum:
        - CONTEST_STATUS_UNSPECIFIED
        - scheduled
        - live
        - finished
        - postponed
        - cancelled
      description: Allowed value for status.
      title: ContestStatus
    Contest:
      type: object
      properties:
        ended_at:
          type:
            - string
            - 'null'
          format: date-time
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        status:
          $ref: '#/components/schemas/ContestStatus'
          description: Allowed value for status.
      description: |-
        The sports match or tournament this event groups. Message wrapper so a
         finance event omits contest entirely. Status forgetting is a field
         error, not a silent scheduled.
      title: Contest
    OutcomeSettleSide:
      type: object
      properties:
        fraction:
          type: string
        side:
          type: integer
      description: >-
        One token's share of a settlement. Always sent as a pair, side 0 then
        side 1.
      title: OutcomeSettleSide
    PriceTargetComparator:
      type: string
      enum:
        - above
        - below
        - at
      description: Allowed value for comparator.
      title: PriceTargetComparator
    PriceTarget:
      type: object
      properties:
        asset:
          type: string
        comparator:
          $ref: '#/components/schemas/PriceTargetComparator'
          description: Allowed value for comparator.
        strike:
          type: string
          description: >-
            Decimal string end to end: the exact decimal in is the exact decimal
            out
             and no float is ever involved.
      description: >-
        Doubles as the write side on admin.v1.OutcomeFacetsInput, which is why
        it
         carries validation: read paths always satisfy it.
      title: PriceTarget
    OutcomeSide:
      type: object
      properties:
        abbreviation:
          type:
            - string
            - 'null'
        hl_asset_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the hl asset.
        label:
          type: string
        participant_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the participant.
        side:
          type: integer
      description: >-
        One Hyperliquid token of an outcome. Every outcome has exactly two,
        ordered
         side 0 then side 1. Prices, stats, holders, trades and settlement already
         use this index; the catalog uses the same one.

         label is the participant's name when participant_id is set, otherwise the
         token name the writer supplied (Up/Down, Over/Under, No). abbreviation is
         null when there is no participant.
      title: OutcomeSide
    SportsMarketPeriod:
      type: string
      enum:
        - SPORTS_MARKET_PERIOD_UNSPECIFIED
        - full_game
        - tournament
      description: Allowed value for period.
      title: SportsMarketPeriod
    SportsMarketType:
      type: string
      enum:
        - SPORTS_MARKET_TYPE_UNSPECIFIED
        - moneyline
        - spread
        - total
        - player_prop
        - scalar
      description: Allowed value for type.
      title: SportsMarketType
    SportsMarket:
      type: object
      properties:
        line:
          type:
            - string
            - 'null'
        period:
          $ref: '#/components/schemas/SportsMarketPeriod'
          description: Allowed value for period.
        type:
          $ref: '#/components/schemas/SportsMarketType'
          description: Allowed value for type.
      description: |-
        The message wraps the enums because an enum field cannot be null and a
         message can. Absence is omitting sports_market from the outcome, via the
         oneof — never a zero enum value pretending to be one. Doubles as the write
         side on admin.v1.OutcomeFacetsInput, which is why it carries validation.

         line is a StringValue so a moneyline can be JSON null. It is stored in
         outcomes.strike; there is no second column.
      title: SportsMarket
    OutcomeStatus:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for status.
      title: OutcomeStatus
    OutcomeTrading:
      type: object
      properties:
        lot_size:
          type: string
        min_notional:
          type: string
        quote:
          type: string
        tick_size:
          type: string
      description: |-
        Quote is the collateral token; size × price is denominated in it. Min
         notional is the smallest order (size × price). Tick is the price increment;
         lot is the size increment. HIP-4 sides are spot tokens, so lot is
         10^(-szDecimals) and tick is 10^(-(8 - szDecimals)).

         Hyperliquid also enforces a global 5-significant-figure price cap. That is
         not per-market and is not repeated here.

         Always present, including on drafts: HIP-4's defaults are known before
         deploy, and deploy overwrites them from the chain.
      title: OutcomeTrading
    Outcome:
      type: object
      properties:
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        event_id:
          type: string
          description: Stable unique identifier for the event.
        hl_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the hl.
        hl_keywords:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map has no wrapper type, and needs none: an outcome with no
            template has no
             keywords either, and an empty object says that unambiguously.
        hl_question_id:
          type:
            - string
            - 'null'
          description: |-
            Hyperliquid identifiers, null until the market is deployed.

             Wrapper types rather than plain int64, and deliberately not `optional int64`:
             proto3 optional is a synthetic oneof, which EmitUnpopulated skips, so an
             unset field would vanish from the response instead of being null. Every key
             is always present — a null one is spelled null.
        hl_rules:
          type:
            - string
            - 'null'
        hl_settle_fraction:
          type:
            - string
            - 'null'
          description: >-
            How it settled on chain, as a decimal string: "1" pays side 0 in
            full, "0"
             pays side 1, anything between splits. Null until Hyperliquid confirms.
             Compare it as a decimal — the chain reports "0" back as "0.0".
        hl_settlement:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSettleSide'
          description: Chain-confirmed payout, both sides, empty until settled_at.
        hl_template_id:
          type:
            - string
            - 'null'
          description: >-
            The validator-approved template this market instantiates and the
            values
             filling its keywords. The chain derives the market's *identity* from exactly
             these — the name is "template:<id>" and the description is the pairs sorted
             and joined — so they are what it settles on. Public, like the ids.

             A keyword map is how they are read back. It is deliberately not how they are
             written: admin.v1 takes a typed message per template, so a client cannot send
             a keyword set no template declares.
        id:
          type: string
          description: Stable unique identifier for the id.
        participant_id:
          type: string
          description: >-
            This instrument is about that team. Set on a soccer home/away leg;
            unset
             on a two-way moneyline and on draw. The event already renders the team.
        price_target:
          oneOf:
            - $ref: '#/components/schemas/PriceTarget'
            - type: 'null'
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalID'
          description: >-
            Identities this market is known by at external data providers.
            Fixture
             and event ids stay on the event; market ids (a Polymarket token, a Kalshi
             ticker) live here. Empty until linked.
        question_id:
          type:
            - string
            - 'null'
          description: |-
            The question this outcome belongs to. Null on a standalone market.
             Several outcomes of one event share one question_id.
        settled_at:
          type:
            - string
            - 'null'
          format: date-time
        settlement:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSettleSide'
          description: >-
            Predict-approved payout, both sides, empty until
            settlement_approved_at.
        settlement_approved_at:
          type:
            - string
            - 'null'
          format: date-time
        settlement_initiated_at:
          type:
            - string
            - 'null'
          format: date-time
        sides:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeSide'
          description: >-
            The two Hyperliquid tokens, ordered side 0 then side 1. Always
            length 2.
             A participant's name and abbreviation are joined live; token names without
             a participant (Up/Down, No) are stored on the row.
        slug:
          type: string
          description: |-
            Human-readable label. Backend-generated for sports; caller-supplied
             otherwise. Always present and non-empty.
        sports_market:
          oneOf:
            - $ref: '#/components/schemas/SportsMarket'
            - type: 'null'
        status:
          $ref: '#/components/schemas/OutcomeStatus'
          description: Allowed value for status.
        title:
          type: string
        trading:
          oneOf:
            - $ref: '#/components/schemas/OutcomeTrading'
            - type: 'null'
          description: >-
            Order constraints a client needs to construct a Hyperliquid order
            without
             reading /info. Always present, including on drafts: HIP-4's defaults are
             known before deploy, and deploy overwrites them from the chain.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
      description: >-
        Outcome is a publicly visible Hyperliquid-tradable instrument. The admin
        API
         has its own message carrying the complete internal lifecycle.
      title: Outcome
    EventParticipant:
      type: object
      properties:
        abbreviation:
          type: string
        color:
          type:
            - string
            - 'null'
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
        side:
          type: integer
      description: The full participant, because the event is the one place it appears.
      title: EventParticipant
    Question:
      type: object
      properties:
        deployer_fee_scale:
          type:
            - string
            - 'null'
        event_id:
          type: string
          description: Stable unique identifier for the event.
        hl_fallback_outcome_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the hl fallback outcome.
        hl_keywords:
          type: object
          additionalProperties:
            type: string
          description: Map of string keys to string values.
        hl_question_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the hl question.
        hl_rules:
          type:
            - string
            - 'null'
        hl_template_id:
          type:
            - string
            - 'null'
          description: Stable unique identifier for the hl template.
        id:
          type: string
          description: Stable unique identifier for the id.
      description: |-
        A HIP-4 question on an event: a mutually exclusive set of outcomes
         that share one chain question. It is not a resource of its own — there is
         no QuestionService — and lives on the event and on each outcome's
         question_id.
      title: Question
    EventStatus:
      type: string
      enum:
        - active
        - settled
        - verifying
      description: Allowed value for status.
      title: EventStatus
    Event:
      type: object
      properties:
        category:
          oneOf:
            - $ref: '#/components/schemas/Named'
            - type: 'null'
        contest:
          oneOf:
            - $ref: '#/components/schemas/Contest'
            - type: 'null'
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Null when the event has no image.
        outcomes:
          type: array
          items:
            $ref: '#/components/schemas/Outcome'
          description: |-
            Every outcome on this event: question outcomes and standalones.
             Named outcomes carry question_id so several questions can share the event.
        participants:
          type: array
          items:
            $ref: '#/components/schemas/EventParticipant'
          description: >-
            Contest lineup. Omitted when the event has none — a finance event
            has no
             participants key, not an empty array.
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalID'
          description: >-
            Identities this event is known by at external data providers. Empty
            for
             operator-created events.
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
          description: >-
            HIP-4 questions on this event. Empty when every market is
            standalone.
        series:
          oneOf:
            - $ref: '#/components/schemas/Named'
            - type: 'null'
        settled_at:
          type:
            - string
            - 'null'
          format: date-time
        settlement_approved_at:
          type:
            - string
            - 'null'
          format: date-time
        settlement_initiated_at:
          type:
            - string
            - 'null'
          format: date-time
        slug:
          type: string
          description: |-
            Human-readable label. Backend-generated for sports; caller-supplied
             otherwise. Always present and non-empty.
        start_time:
          type:
            - string
            - 'null'
          format: date-time
        status:
          $ref: '#/components/schemas/EventStatus'
          description: Allowed value for status.
        title:
          type: string
        topic_id:
          type: string
          description: >-
            Where the event sits in the topic / category / series hierarchy. The
            topic
             is a slug — it is only half of the category's key — while the category and
             series carry enough to render: id, name, image. series is null when the
             category has no series or the event was not placed under one.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
      description: >-
        Event is the public view of an occurrence, such as Barcelona vs Real
        Madrid.
         The admin API has its own message carrying the complete internal lifecycle.
      title: Event
    Participant:
      type: object
      properties:
        abbreviation:
          type: string
        category_id:
          type: string
          description: Stable unique identifier for the category.
        color:
          type:
            - string
            - 'null'
          description: Lowercase hex, e.g. "#552583". Null when no colour has been curated.
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalID'
        series_id:
          type: string
          description: Stable unique identifier for the series.
        slug:
          type: string
          description: Kebab token derived from name. Always present.
        topic_id:
          type: string
          description: >-
            The series this participant belongs to. The id is unique, so a Get
            is
             `/v1/participants/{id}`; the parent slugs are here so a list row can be
             placed without a second request.
      title: Participant
    CatalogChangeResource:
      type: string
      enum:
        - outcome
        - event
        - topic
        - category
        - series
        - participant
      title: CatalogChangeResource
    Topic:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/Category'
        id:
          type: string
          description: Stable unique identifier for the id.
        image_url:
          type:
            - string
            - 'null'
          description: Absolute URL for the referenced resource.
        name:
          type: string
      title: Topic
    CatalogChange:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/CatalogChangeAction'
        category:
          oneOf:
            - $ref: '#/components/schemas/Category'
            - type: 'null'
        event:
          oneOf:
            - $ref: '#/components/schemas/Event'
            - type: 'null'
        id:
          type: string
          minLength: 1
        outcome:
          oneOf:
            - $ref: '#/components/schemas/Outcome'
            - type: 'null'
        participant:
          oneOf:
            - $ref: '#/components/schemas/Participant'
            - type: 'null'
        resource:
          $ref: '#/components/schemas/CatalogChangeResource'
        series:
          oneOf:
            - $ref: '#/components/schemas/Series'
            - type: 'null'
        topic:
          oneOf:
            - $ref: '#/components/schemas/Topic'
            - type: 'null'
      required:
        - action
        - category
        - event
        - id
        - outcome
        - participant
        - resource
        - series
        - topic
      title: CatalogChange
    CatalogSnapshot:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CatalogChange'
      required:
        - data
      title: CatalogSnapshot
    SnapshotCatalog:
      type: object
      properties:
        channel:
          type: string
          enum:
            - catalog
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/CatalogSnapshot'
        op:
          type: string
          enum:
            - snapshot
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: SnapshotCatalog
    UpdateAccountTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.trades
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountTradesResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountTrades
    UpdateAccountOrders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.orders
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountOrdersResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountOrders
    UpdateAccountPositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.positions
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountPositionsResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountPositions
    UpdateAccountActivity:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.activity
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountActivityResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountActivity
    UpdateAccountCashflows:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.cashflows
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListAccountCashflowsResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountCashflows
    UpdateAccountStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.stats
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountStats'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountStats
    UpdateAccountPnl:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.pnl
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountPnlChart'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountPnl
    UpdateAccountVolume:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.volume
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountVolumeChart'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountVolume
    UpdateAccountFees:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.fees
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/AccountFeesChart'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateAccountFees
    UpdateOutcomePrice:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.price
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomePrice'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomePrice
    UpdateOutcomeTicker:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.ticker
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeTickerBatch'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateOutcomeTicker
    UpdateOutcomeBbo:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.bbo
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListOutcomeBBOsResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateOutcomeBbo
    OutcomeBookDeltaChangesItemsAction:
      type: string
      enum:
        - new
        - update
        - remove
      title: OutcomeBookDeltaChangesItemsAction
    OutcomeBookDeltaChangesItemsSide:
      type: string
      enum:
        - bid
        - ask
      title: OutcomeBookDeltaChangesItemsSide
    OutcomeBookDeltaChangesItems:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/OutcomeBookDeltaChangesItemsAction'
        oid:
          type: string
          minLength: 1
        price:
          type: string
        priority:
          type: integer
          minimum: 0
        side:
          $ref: '#/components/schemas/OutcomeBookDeltaChangesItemsSide'
        size:
          type: string
        source_side:
          type: integer
          minimum: 0
          maximum: 1
      required:
        - action
        - oid
      title: OutcomeBookDeltaChangesItems
    OutcomeBookDelta:
      type: object
      properties:
        as_of:
          type: string
          format: date-time
        changes:
          type: array
          items:
            $ref: '#/components/schemas/OutcomeBookDeltaChangesItems'
        last_change_at:
          type: string
          format: date-time
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - as_of
        - changes
        - last_change_at
        - outcome_id
      title: OutcomeBookDelta
    UpdateOutcomeBook:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeBookDelta'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeBook
    UpdateOutcomeBookL2:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book_l2
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeBookL2'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeBookL2
    UpdateOutcomeTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.trades
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/ListOutcomeTradesResponse'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeTrades
    UpdateOutcomeStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.stats
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeStats'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeStats
    UpdateOutcomeHolders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.holders
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeHolders'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeHolders
    UpdateOutcomeTimeseries:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.timeseries
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/OutcomeTimeseries'
        op:
          type: string
          enum:
            - update
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - outcome_id
        - subscription_id
      title: UpdateOutcomeTimeseries
    UpdateOrderQueuePositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - order.queue_positions
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/GetOrderQueuePositionsResponse'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateOrderQueuePositions
    UpdateHealth:
      type: object
      properties:
        channel:
          type: string
          enum:
            - health
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/Health'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateHealth
    UpdateCatalog:
      type: object
      properties:
        channel:
          type: string
          enum:
            - catalog
        cursor:
          type: string
          minLength: 1
        data:
          $ref: '#/components/schemas/CatalogChange'
        op:
          type: string
          enum:
            - update
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - data
        - op
        - subscription_id
      title: UpdateCatalog
    Channel:
      type: string
      enum:
        - account.activity
        - account.cashflows
        - account.fees
        - account.orders
        - account.pnl
        - account.positions
        - account.stats
        - account.trades
        - account.volume
        - catalog
        - health
        - order.queue_positions
        - outcome.bbo
        - outcome.book
        - outcome.book_l2
        - outcome.holders
        - outcome.price
        - outcome.stats
        - outcome.ticker
        - outcome.timeseries
        - outcome.trades
      title: Channel
    SubscribedMessage:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/Channel'
        op:
          type: string
          enum:
            - subscribed
        request_id:
          type: string
          maxLength: 64
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - op
        - subscription_id
      title: SubscribedMessage
    UnsubscribedMessage:
      type: object
      properties:
        op:
          type: string
          enum:
            - unsubscribed
        request_id:
          type: string
          maxLength: 64
        subscription_id:
          type: string
          minLength: 1
      required:
        - op
        - subscription_id
      title: UnsubscribedMessage
    SnapshotCompleteMessage:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/Channel'
        cursor:
          type: string
          minLength: 1
        op:
          type: string
          enum:
            - snapshot_complete
        subscription_id:
          type: string
          minLength: 1
      required:
        - channel
        - cursor
        - op
        - subscription_id
      title: SnapshotCompleteMessage
    PongMessage:
      type: object
      properties:
        op:
          type: string
          enum:
            - pong
        request_id:
          type: string
          maxLength: 64
      required:
        - op
      title: PongMessage
    ErrorMessageCode:
      type: string
      enum:
        - invalid_params
        - invalid_address
        - unsupported_channel
        - unsupported_operation
        - rate_limited
        - account_not_found
        - not_found
        - projection_unavailable
        - queue_projection_unavailable
        - resync_required
        - server_draining
        - frame_too_large
        - slow_consumer
        - internal
      title: ErrorMessageCode
    ErrorMessage:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/Channel'
        code:
          $ref: '#/components/schemas/ErrorMessageCode'
        message:
          type: string
        op:
          type: string
          enum:
            - error
        request_id:
          type: string
          maxLength: 64
        retry_after_ms:
          type: integer
          format: int64
          minimum: 1
          description: >-
            Suggested reconnect delay for server_draining and rate_limited
            errors.
        subscription_id:
          type: string
          minLength: 1
      required:
        - code
        - message
        - op
      title: ErrorMessage
    realtime_serverMessage:
      oneOf:
        - $ref: '#/components/schemas/SnapshotAccountTrades'
        - $ref: '#/components/schemas/SnapshotAccountOrders'
        - $ref: '#/components/schemas/SnapshotAccountPositions'
        - $ref: '#/components/schemas/SnapshotAccountActivity'
        - $ref: '#/components/schemas/SnapshotAccountCashflows'
        - $ref: '#/components/schemas/SnapshotAccountStats'
        - $ref: '#/components/schemas/SnapshotAccountPnl'
        - $ref: '#/components/schemas/SnapshotAccountVolume'
        - $ref: '#/components/schemas/SnapshotAccountFees'
        - $ref: '#/components/schemas/SnapshotOutcomePrice'
        - $ref: '#/components/schemas/SnapshotOutcomeTicker'
        - $ref: '#/components/schemas/SnapshotOutcomeBbo'
        - $ref: '#/components/schemas/SnapshotOutcomeBook'
        - $ref: '#/components/schemas/SnapshotOutcomeBookL2'
        - $ref: '#/components/schemas/SnapshotOutcomeTrades'
        - $ref: '#/components/schemas/SnapshotOutcomeStats'
        - $ref: '#/components/schemas/SnapshotOutcomeHolders'
        - $ref: '#/components/schemas/SnapshotOutcomeTimeseries'
        - $ref: '#/components/schemas/SnapshotOrderQueuePositions'
        - $ref: '#/components/schemas/SnapshotHealth'
        - $ref: '#/components/schemas/SnapshotCatalog'
        - $ref: '#/components/schemas/UpdateAccountTrades'
        - $ref: '#/components/schemas/UpdateAccountOrders'
        - $ref: '#/components/schemas/UpdateAccountPositions'
        - $ref: '#/components/schemas/UpdateAccountActivity'
        - $ref: '#/components/schemas/UpdateAccountCashflows'
        - $ref: '#/components/schemas/UpdateAccountStats'
        - $ref: '#/components/schemas/UpdateAccountPnl'
        - $ref: '#/components/schemas/UpdateAccountVolume'
        - $ref: '#/components/schemas/UpdateAccountFees'
        - $ref: '#/components/schemas/UpdateOutcomePrice'
        - $ref: '#/components/schemas/UpdateOutcomeTicker'
        - $ref: '#/components/schemas/UpdateOutcomeBbo'
        - $ref: '#/components/schemas/UpdateOutcomeBook'
        - $ref: '#/components/schemas/UpdateOutcomeBookL2'
        - $ref: '#/components/schemas/UpdateOutcomeTrades'
        - $ref: '#/components/schemas/UpdateOutcomeStats'
        - $ref: '#/components/schemas/UpdateOutcomeHolders'
        - $ref: '#/components/schemas/UpdateOutcomeTimeseries'
        - $ref: '#/components/schemas/UpdateOrderQueuePositions'
        - $ref: '#/components/schemas/UpdateHealth'
        - $ref: '#/components/schemas/UpdateCatalog'
        - $ref: '#/components/schemas/SubscribedMessage'
        - $ref: '#/components/schemas/UnsubscribedMessage'
        - $ref: '#/components/schemas/SnapshotCompleteMessage'
        - $ref: '#/components/schemas/PongMessage'
        - $ref: '#/components/schemas/ErrorMessage'
      title: realtime_serverMessage
    AccountTradesParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        submitted_by:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
      required:
        - address
      title: AccountTradesParams
    SubscribeAccountTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.trades
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountTradesParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountTrades
    AccountOrdersParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        submitted_by:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
      required:
        - address
      title: AccountOrdersParams
    SubscribeAccountOrders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.orders
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountOrdersParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountOrders
    AccountPositionsParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - address
      title: AccountPositionsParams
    SubscribeAccountPositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.positions
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountPositionsParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountPositions
    AccountActivityParamsType:
      type: string
      enum:
        - trade
        - split
        - merge
        - negate
        - merge_question
        - settlement
        - deposit
        - withdrawal
        - transfer
      title: AccountActivityParamsType
    AccountActivityParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        type:
          $ref: '#/components/schemas/AccountActivityParamsType'
      required:
        - address
      title: AccountActivityParams
    SubscribeAccountActivity:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.activity
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountActivityParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountActivity
    AccountCashflowsParamsType:
      type: string
      enum:
        - deposit
        - withdrawal
        - transfer
      title: AccountCashflowsParamsType
    AccountCashflowsParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        type:
          $ref: '#/components/schemas/AccountCashflowsParamsType'
      required:
        - address
      title: AccountCashflowsParams
    SubscribeAccountCashflows:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.cashflows
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountCashflowsParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountCashflows
    ChartPeriod:
      type: string
      enum:
        - last_24_hours
        - last_7_days
        - last_30_days
        - all_time
      default: all_time
      description: Defaults to all_time when omitted.
      title: ChartPeriod
    AccountStatsParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        period:
          $ref: '#/components/schemas/ChartPeriod'
          default: all_time
      required:
        - address
      title: AccountStatsParams
    SubscribeAccountStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.stats
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountStatsParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountStats
    AccountPnlParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        period:
          $ref: '#/components/schemas/ChartPeriod'
          default: all_time
      required:
        - address
      title: AccountPnlParams
    SubscribeAccountPnl:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.pnl
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountPnlParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountPnl
    AccountVolumeParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        period:
          $ref: '#/components/schemas/ChartPeriod'
          default: all_time
      required:
        - address
      title: AccountVolumeParams
    SubscribeAccountVolume:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.volume
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountVolumeParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountVolume
    AccountFeesParams:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        period:
          $ref: '#/components/schemas/ChartPeriod'
          default: all_time
      required:
        - address
      title: AccountFeesParams
    SubscribeAccountFees:
      type: object
      properties:
        channel:
          type: string
          enum:
            - account.fees
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/AccountFeesParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeAccountFees
    OutcomePriceParams:
      type: object
      properties:
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomePriceParams
    SubscribeOutcomePrice:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.price
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomePriceParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomePrice
    OutcomeTickerParams:
      oneOf:
        - description: Any type
        - description: Any type
        - description: Any type
        - description: Any type
        - description: Any type
      title: OutcomeTickerParams
    SubscribeOutcomeTicker:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.ticker
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeTickerParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeTicker
    OutcomeBboParams:
      oneOf:
        - description: Any type
        - description: Any type
        - description: Any type
        - description: Any type
        - description: Any type
      title: OutcomeBboParams
    SubscribeOutcomeBbo:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.bbo
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeBboParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeBbo
    OutcomeBookParamsInclude:
      oneOf:
        - type: string
        - type: array
          items:
            type: string
            minLength: 1
            maxLength: 64
      description: >-
        Optional sidecars. CSV string or list. The first supported token is
        accounts.
      title: OutcomeBookParamsInclude
    OutcomeBookParams:
      type: object
      properties:
        depth:
          type: integer
          minimum: 0
          maximum: 50
          default: 10
        include:
          $ref: '#/components/schemas/OutcomeBookParamsInclude'
          description: >-
            Optional sidecars. CSV string or list. The first supported token is
            accounts.
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomeBookParams
    SubscribeOutcomeBook:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeBookParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeBook
    OutcomeBookL2Params:
      type: object
      properties:
        depth:
          type: integer
          minimum: 0
          maximum: 50
          default: 10
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomeBookL2Params
    SubscribeOutcomeBookL2:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.book_l2
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeBookL2Params'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeBookL2
    OutcomeTradesParams:
      type: object
      properties:
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomeTradesParams
    SubscribeOutcomeTrades:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.trades
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeTradesParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeTrades
    OutcomeStatsParams:
      type: object
      properties:
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomeStatsParams
    SubscribeOutcomeStats:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.stats
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeStatsParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeStats
    OutcomeHoldersParams:
      type: object
      properties:
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
      required:
        - outcome_id
      title: OutcomeHoldersParams
    SubscribeOutcomeHolders:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.holders
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeHoldersParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeHolders
    OutcomeTimeseriesParams:
      type: object
      properties:
        outcome_id:
          type: string
          minLength: 1
          maxLength: 100
        period:
          $ref: '#/components/schemas/ChartPeriod'
          default: all_time
      required:
        - outcome_id
      title: OutcomeTimeseriesParams
    SubscribeOutcomeTimeseries:
      type: object
      properties:
        channel:
          type: string
          enum:
            - outcome.timeseries
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OutcomeTimeseriesParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOutcomeTimeseries
    OrderQueuePositionsParams:
      type: object
      properties:
        order_ids:
          type: array
          items:
            type: string
            minLength: 1
      required:
        - order_ids
      title: OrderQueuePositionsParams
    SubscribeOrderQueuePositions:
      type: object
      properties:
        channel:
          type: string
          enum:
            - order.queue_positions
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/OrderQueuePositionsParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeOrderQueuePositions
    HealthParams:
      type: object
      properties: {}
      title: HealthParams
    SubscribeHealth:
      type: object
      properties:
        channel:
          type: string
          enum:
            - health
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/HealthParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeHealth
    CatalogParams:
      type: object
      properties: {}
      title: CatalogParams
    SubscribeCatalog:
      type: object
      properties:
        channel:
          type: string
          enum:
            - catalog
        op:
          type: string
          enum:
            - subscribe
        params:
          $ref: '#/components/schemas/CatalogParams'
        request_id:
          type: string
          maxLength: 64
      required:
        - channel
        - op
        - params
      title: SubscribeCatalog
    BatchSubscribeRequestSubscriptionsItemsParams:
      type: object
      properties: {}
      title: BatchSubscribeRequestSubscriptionsItemsParams
    BatchSubscribeRequestSubscriptionsItems:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/Channel'
        params:
          $ref: '#/components/schemas/BatchSubscribeRequestSubscriptionsItemsParams'
      required:
        - channel
      title: BatchSubscribeRequestSubscriptionsItems
    BatchSubscribeRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - subscribe
        request_id:
          type: string
          maxLength: 64
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/BatchSubscribeRequestSubscriptionsItems'
      required:
        - op
        - subscriptions
      title: BatchSubscribeRequest
    UnsubscribeRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - unsubscribe
        request_id:
          type: string
          maxLength: 64
        subscription_id:
          type: string
          minLength: 1
      required:
        - op
        - subscription_id
      title: UnsubscribeRequest
    BatchUnsubscribeRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - unsubscribe
        request_id:
          type: string
          maxLength: 64
        subscription_ids:
          type: array
          items:
            type: string
            minLength: 1
      required:
        - op
        - subscription_ids
      title: BatchUnsubscribeRequest
    PingRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - ping
        request_id:
          type: string
          maxLength: 64
      required:
        - op
      title: PingRequest
    PongRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - pong
        request_id:
          type: string
          maxLength: 64
      required:
        - op
      title: PongRequest
    AuthenticateRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - authenticate
        request_id:
          type: string
          maxLength: 64
      required:
        - op
      title: AuthenticateRequest
    CommandRequest:
      type: object
      properties:
        op:
          type: string
          enum:
            - command
        request_id:
          type: string
          maxLength: 64
      required:
        - op
      title: CommandRequest
    realtime_clientMessage:
      oneOf:
        - $ref: '#/components/schemas/SubscribeAccountTrades'
        - $ref: '#/components/schemas/SubscribeAccountOrders'
        - $ref: '#/components/schemas/SubscribeAccountPositions'
        - $ref: '#/components/schemas/SubscribeAccountActivity'
        - $ref: '#/components/schemas/SubscribeAccountCashflows'
        - $ref: '#/components/schemas/SubscribeAccountStats'
        - $ref: '#/components/schemas/SubscribeAccountPnl'
        - $ref: '#/components/schemas/SubscribeAccountVolume'
        - $ref: '#/components/schemas/SubscribeAccountFees'
        - $ref: '#/components/schemas/SubscribeOutcomePrice'
        - $ref: '#/components/schemas/SubscribeOutcomeTicker'
        - $ref: '#/components/schemas/SubscribeOutcomeBbo'
        - $ref: '#/components/schemas/SubscribeOutcomeBook'
        - $ref: '#/components/schemas/SubscribeOutcomeBookL2'
        - $ref: '#/components/schemas/SubscribeOutcomeTrades'
        - $ref: '#/components/schemas/SubscribeOutcomeStats'
        - $ref: '#/components/schemas/SubscribeOutcomeHolders'
        - $ref: '#/components/schemas/SubscribeOutcomeTimeseries'
        - $ref: '#/components/schemas/SubscribeOrderQueuePositions'
        - $ref: '#/components/schemas/SubscribeHealth'
        - $ref: '#/components/schemas/SubscribeCatalog'
        - $ref: '#/components/schemas/BatchSubscribeRequest'
        - $ref: '#/components/schemas/UnsubscribeRequest'
        - $ref: '#/components/schemas/BatchUnsubscribeRequest'
        - $ref: '#/components/schemas/PingRequest'
        - $ref: '#/components/schemas/PongRequest'
        - $ref: '#/components/schemas/AuthenticateRequest'
        - $ref: '#/components/schemas/CommandRequest'
      title: realtime_clientMessage

```