Bullish Market Data API

Non-authenticated APIs for accessing general market data information

OpenAPI Specification

bullish-market-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: REST API specification for the Bullish Trading API.
  version: 1.0.0
  title: Bullish Trading Market Data API
  contact:
    name: Bullish Help Center
    email: support@bullish.com
    url: https://support.bullish.com
servers:
- url: https://api.exchange.bullish.com/trading-api
  description: PRODUCTION
- url: https://registered.api.exchange.bullish.com/trading-api
  description: PRODUCTION
- url: https://prod.access.bullish.com/trading-api
  description: PRODUCTION (Direct Connect)
- url: https://api.bugbounty.bullish.com/trading-api
  description: SECURITY SANDBOX
- url: https://api.simnext.bullish-test.com/trading-api
  description: API SANDBOX
- url: https://registered.api.simnext.bullish-test.com/trading-api
  description: API SANDBOX
- url: https://simnext.access.bullish.com/trading-api
  description: API SANDBOX (Direct Connect)
tags:
- name: market-data
  x-displayName: Market Data
  description: Non-authenticated APIs for accessing general market data information
paths:
  /v1/markets:
    parameters:
    - in: query
      name: marketType
      description: Market Types to filter markets against
      schema:
        $ref: '#/components/schemas/MarketTypeAsString'
      required: false
    - in: query
      name: optionType
      description: Option Type to filter markets against. If this is present, only Option Markets will be returned
      schema:
        $ref: '#/components/schemas/OptionTypeAsString'
      required: false
    get:
      tags:
      - market-data
      summary: Get Markets
      description: Get Markets.
      operationId: getMarkets
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                minItems: 0
                maxItems: 10
                items:
                  $ref: '#/components/schemas/Market'
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/markets/{symbol}:
    parameters:
    - in: path
      name: symbol
      schema:
        $ref: '#/components/schemas/MarketSymbol'
      required: true
    get:
      tags:
      - market-data
      summary: Get Market by Symbol
      description: Get Market by Symbol.
      operationId: getMarketBySymbol
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Market'
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/history/markets:
    get:
      tags:
      - market-data
      summary: Get Historical Markets
      description: 'Get a list of historical markets, including expired markets.

        This endpoint returns simplified market information and supports filtering by market type and expiry status.

        '
      operationId: getHistoricalMarkets
      parameters:
      - in: query
        name: marketType
        description: Filter by market type (can be specified multiple times for multiple types)
        schema:
          type: array
          items:
            type: string
            enum:
            - SPOT
            - PERPETUAL
            - DATED_FUTURE
            - OPTION
        style: form
        explode: true
        required: false
      - in: query
        name: status
        description: Filter by expiry status (can be specified multiple times for multiple statuses)
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - EXPIRED
            - ALL
        style: form
        explode: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      description: Market symbol
                      example: BTC-USD-20241231-100000-C
                    expiryDatetime:
                      type: string
                      description: Expiry datetime in ISO 8601 format (only for DATED_FUTURE and OPTION markets)
                      example: '2025-12-31T08:00:00.000Z'
                    status:
                      type: string
                      description: Market expiry status
                      example: EXPIRED
                      enum:
                      - ACTIVE
                      - EXPIRING
                      - EXPIRED
              example:
              - symbol: BTC-USD
                status: ACTIVE
              - symbol: BTC-USD-20241231-100000-C
                expiryDatetime: '2024-12-31T08:00:00.000Z'
                status: EXPIRED
              - symbol: ETH-USD-20241231
                expiryDatetime: '2024-12-31T08:00:00.000Z'
                status: EXPIRED
        '400':
          description: Bad Request - Invalid query parameters
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/history/markets/{symbol}:
    parameters:
    - in: path
      name: symbol
      schema:
        $ref: '#/components/schemas/OptionAndDatedFuturesMarketSymbol'
      required: true
    get:
      tags:
      - market-data
      summary: Get Historical Market by Symbol
      description: Get Historical Market by Symbol. This endpoint will return specified market even if it is expired. Only applicable for this is applicable only for `DATED_FUTURE` and `OPTION` markets.
      operationId: getHistoricalMarketBySymbol
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Market'
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/markets/{symbol}/orderbook/hybrid:
    get:
      parameters:
      - in: path
        name: symbol
        schema:
          $ref: '#/components/schemas/MarketSymbol'
        required: true
        description: symbol to get
      tags:
      - market-data
      summary: Get Market Order Book
      description: 'Get Order Book by Market Symbol


        **Ratelimited:** `False`

        '
      operationId: getMarketOrderBook
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderBook'
        '404':
          description: Resource Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/markets/{symbol}/trades:
    get:
      parameters:
      - in: path
        name: symbol
        schema:
          $ref: '#/components/schemas/MarketSymbol'
        required: true
        description: symbol to get
      tags:
      - market-data
      summary: Get Latest Market Trades
      description: 'Get Market Trades by Market Symbol.

        - return 100 most recent trades

        - lookup from local cache


        **Ratelimited:** `False`

        '
      operationId: getLatestMarketTrades
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                minItems: 0
                maxItems: 100
                items:
                  $ref: '#/components/schemas/ObfuscatedTrade'
        '404':
          description: Resource Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/markets/{symbol}/tick:
    get:
      parameters:
      - in: path
        name: symbol
        schema:
          $ref: '#/components/schemas/MarketSymbol'
        required: true
        description: symbol to get. Only perpetual markets are supported.
      tags:
      - market-data
      summary: Get Market Tick
      description: 'Get Current Tick by Market Symbol.

        - return top 100


        **Ratelimited:** `False`

        '
      operationId: getMarketTick
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tick'
        '404':
          description: Resource Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
  /v1/markets/{symbol}/candle:
    get:
      tags:
      - market-data
      summary: Get Market Candle
      description: 'Get Current OHLCV Candle by Market Symbol

        - [supports pagination](/rest/general/pagination)

        - filtering on `createdAtDatetime`, `createdAtTimestamp` requires additional keywords, [see filtering support](/rest/general/filtering)


        **Ratelimited:** `False`

        '
      operationId: getMarketCandles
      parameters:
      - in: path
        name: symbol
        schema:
          $ref: '#/components/schemas/MarketSymbol'
        required: true
      - in: query
        name: createdAtDatetime[gte]
        description: start timestamp of window, ISO 8601 with millisecond as string
        schema:
          $ref: '#/components/schemas/DateTime'
        required: true
      - in: query
        name: createdAtDatetime[lte]
        description: end timestamp of window, ISO 8601 with millisecond as string
        schema:
          $ref: '#/components/schemas/DateTime'
        required: true
      - in: query
        name: timeBucket
        schema:
          $ref: '#/components/schemas/TimeBucket'
        required: true
        description: time bucket size
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                minItems: 1
                maxItems: 25
                items:
                  $ref: '#/components/schemas/OHLCVCandle'
        '404':
          description: Resource Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      security: []
components:
  schemas:
    OrderTypeAsString:
      type: string
      description: order type can have the following string values `"LMT"`, `"MKT"`, `"STOP_LIMIT"`, `"POST_ONLY"`. `"MKT"` and `"STOP_LIMIT"` are not applicable for Options
      example: LMT
    OptionMarketSymbol:
      type: string
      description: market symbol. E.g. `BTC-USDC-20241004-70000-C` for OPTION markets.
      example: BTC-USDC-20241004-70000-C
    PriceQuantityTuple:
      type: object
      properties:
        price:
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        priceLevelQuantity:
          allOf:
          - $ref: '#/components/schemas/AssetValue'
    TimeStampAsString:
      type: string
      format: string
      example: '1621490985000'
      description: unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string
    OptionTypeAsString:
      type: string
      description: option type can have the following string values `"CALL"`, `"PUT"`
      enum:
      - CALL
      - PUT
      example: CALL
    AmmData:
      type: object
      description: AMM data
      required:
      - feeTierId
      - bidSpreadFee
      - askSpreadFee
      - currentPrice
      properties:
        feeTierId:
          allOf:
          - $ref: '#/components/schemas/FeeTierId'
        bidSpreadFee:
          description: bid spread fee
          type: string
          example: '0.00040000'
        askSpreadFee:
          description: ask spread fee
          type: string
          example: '0.00040000'
        currentPrice:
          description: current AMM price
          type: string
          example: '16856.0000'
    TimeBucket:
      type: string
      example: 1m
      enum:
      - 1m
      - 5m
      - 30m
      - 1h
      - 6h
      - 12h
      - 1d
    DateTime:
      type: string
      format: date-time
      example: '2025-05-20T01:01:01.000Z'
      description: ISO 8601 with millisecond as string
    AssetValue:
      description: see [asset value](/rest/general/price-quantity-precision) format
      type: string
      example: '1.00000000'
    FeeTier:
      type: object
      description: unique fee tier
      required:
      - feeTierId
      - staticSpreadFee
      - isDislocationEnabled
      properties:
        feeTierId:
          allOf:
          - $ref: '#/components/schemas/FeeTierId'
        staticSpreadFee:
          description: static spread fee
          type: string
          example: '0.00040000'
        isDislocationEnabled:
          description: dislocation enabled/disabled
          type: boolean
          example: true
    AssetID:
      type: string
      description: unique asset ID
      example: '1'
    FeeTierId:
      type: string
      description: unique fee tier ID, see [Get Market By Symbol](/rest/api/get-market-by-symbol)
      example: '1'
    AssetSymbol:
      type: string
      description: asset symbol as denoted in the world
      example: BTC
    Tick:
      allOf:
      - type: object
        required:
        - createdAtDatetime
        - createdAtTimestamp
        - high
        - low
        - bestBid
        - bidVolume
        - bestAsk
        - askVolume
        - vwap
        - open
        - close
        - last
        - change
        - percentage
        - average
        - baseVolume
        - quoteVolume
        - bancorPrice
        - lastTradeDatetime
        - lastTradeTimestamp
        - lastTradeQuantity
        - ammData
        properties:
          createdAtDatetime:
            description: denotes the time of the current tick on the exchange, ISO 8601 with millisecond as string
            allOf:
            - $ref: '#/components/schemas/DateTime'
          createdAtTimestamp:
            description: denotes the time of the current tick on the exchange
            allOf:
            - $ref: '#/components/schemas/TimeStampAsString'
          high:
            description: highest price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          low:
            description: lowest price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          bestBid:
            description: current best bid (buy) price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          bidIVPercentage:
            description: Implied volatility of the best bid price
            type: string
            example: '99.0'
          bidVolume:
            description: current best bid (buy) quantity (may be missing or undefined), see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          bestAsk:
            description: current best ask (sell) price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          askIVPercentage:
            description: Implied volatility of the best ask price
            type: string
            example: '99.0'
          askVolume:
            description: current best ask (sell) quantity (may be missing or undefined), see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          vwap:
            description: volume weighed average price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          open:
            description: opening price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          close:
            description: price of last trade (closing price for current period), see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          last:
            description: price of last trade (closing price for current period), see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          change:
            description: absolute change, `last - open`, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          percentage:
            description: relative change, `(change/open) * 100`, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          average:
            description: average price, `(last + open) / 2`, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          baseVolume:
            description: volume of base asset traded for last 24 hours, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          quoteVolume:
            description: volume of quote asset traded for last 24 hours, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          bancorPrice:
            description: current price, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          markPrice:
            description: mark price represents the fair value of a contract at the current time.
            type: string
            example: '19999.00'
          fundingRate:
            description: funding rate is used to calculate funding, which measures the relative difference between the index price and mark price.
            type: string
            example: '0.01'
          openInterest:
            description: open interest is the total quantity of open long positions and short positions, see [asset value](/rest/general/price-quantity-precision) format (only applies to derivatives market)
            type: string
            example: '100000.32452'
          lastTradeDatetime:
            description: time of the last trade on this symbol, ISO 8601 with millisecond as string
            allOf:
            - $ref: '#/components/schemas/DateTime'
          lastTradeTimestamp:
            description: time of the last trade on this symbol
            allOf:
            - $ref: '#/components/schemas/TimeStampAsString'
          lastTradeQuantity:
            description: quantity of the last trade on this symbol, see [asset value](/rest/general/price-quantity-precision) format
            allOf:
            - $ref: '#/components/schemas/AssetValue'
          ammData:
            description: AMM data of all available fee tiers. Not applicable for `Option` markets
            type: array
            minItems: 0
            items:
              allOf:
              - $ref: '#/components/schemas/AmmData'
      - $ref: '#/components/schemas/OptionGreeks'
    OptionType:
      description: Type of Option market
      example: CALL
      type: string
      enum:
      - CALL
      - PUT
    OptionGreeks:
      description: Pricing parameters for option instruments. Only returned for option markets and omitted for spot and perpetual markets.
      type: object
      properties:
        delta:
          description: Sensitivity of an option's price to a $1 change in the price of the underlying asset. Only present for option markets.
          type: string
          example: '0.98'
        gamma:
          description: Rate of change of Delta with respect to a $1 change in the underlying asset's price. Only present for option markets.
          type: string
          example: '0.98'
        theta:
          description: The rate at which an option's price decreases as it approaches its expiration date. Only present for option markets.
          type: string
          example: '-0.17'
        vega:
          description: Sensitivity of an option's price to a 1% change in the implied volatility of the underlying asset. Only present for option markets.
          type: string
          example: '0.05'
    MarketTypeAsString:
      type: string
      description: market type can have the following string values `"SPOT"`, `"PERPETUAL"`, `"DATED_FUTURE"`, `"OPTION"`
      enum:
      - SPOT
      - PERPETUAL
      - DATED_FUTURE
      - OPTION
      example: SPOT
    TradeID:
      type: string
      example: '100020000000000060'
    OrderSideAsString:
      type: string
      description: order side can have the following string values `"BUY"`, `"SELL"`
      example: BUY
    OHLCVCandle:
      type: object
      properties:
        open:
          description: see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        high:
          description: see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        low:
          description: see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        close:
          description: see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        volume:
          description: see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        createdAtTimestamp:
          allOf:
          - $ref: '#/components/schemas/TimeStampAsString'
        createdAtDatetime:
          description: date and time of the candle, ISO 8601 with millisecond as string
          allOf:
          - $ref: '#/components/schemas/DateTime'
        publishedAtTimestamp:
          description: date and time of the candle getting published, ISO 8601 with millisecond as string
          allOf:
          - $ref: '#/components/schemas/TimeStampAsString'
    Boolean:
      type: boolean
      format: true or false
      example: true
    OrderBook:
      type: object
      required:
      - bids
      - asks
      - datetime
      - timestamp
      - sequenceNumber
      properties:
        bids:
          description: bids
          type: array
          minItems: 0
          maxItems: 10
          items:
            allOf:
            - $ref: '#/components/schemas/PriceQuantityTuple'
        asks:
          description: asks
          type: array
          minItems: 0
          maxItems: 10
          items:
            allOf:
            - $ref: '#/components/schemas/PriceQuantityTuple'
        datetime:
          description: date and time of order book snapshot, ISO 8601 with millisecond as string
          allOf:
          - $ref: '#/components/schemas/DateTime'
        timestamp:
          description: timestamp of order book snapshot
          allOf:
          - $ref: '#/components/schemas/TimeStampAsString'
        sequenceNumber:
          description: an incremented unique identifier of the order book snapshot
          type: integer
          example: 999
    ObfuscatedTrade:
      type: object
      required:
      - tradeId
      - symbol
      - price
      - quantity
      - side
      - isTaker
      - createdAtTimestamp
      - createdAtDatetime
      properties:
        tradeId:
          description: unique trade ID
          allOf:
          - $ref: '#/components/schemas/TradeID'
        symbol:
          description: market symbol
          allOf:
          - $ref: '#/components/schemas/MarketSymbol'
        price:
          description: price
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        quantity:
          description: quantity
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        side:
          description: order side
          allOf:
          - $ref: '#/components/schemas/OrderSideAsString'
          example: BUY
        isTaker:
          description: denotes whether this is a taker's trade
          allOf:
          - $ref: '#/components/schemas/Boolean'
        createdAtDatetime:
          description: denotes the time the trade was executed by the exchange, ISO 8601 with millisecond as string
          allOf:
          - $ref: '#/components/schemas/DateTime'
        createdAtTimestamp:
          description: denotes the time the trade was executed by the exchange
          allOf:
          - $ref: '#/components/schemas/TimeStampAsString'
        auctionId:
          description: unique Bullish auction identifier. Present only for auction trades
          type: string
          example: '397735387747975680'
    MarketID:
      type: string
      example: '10000'
    OptionAndDatedFuturesMarketSymbol:
      type: string
      description: market symbol. E.g. `BTC-USDC-20241004-70000-C` for OPTION markets and `BTC-USDC-20241201` for DATED FUTURE markets.
      example: BTC-USDC-20241004-70000-C
    MarketSymbol:
      type: string
      description: market symbol. E.g. `BTCUSDC`
      example: BTCUSDC
    Market:
      type: object
      required:
      - marketId
      - symbol
      - quoteAssetId
      - baseAssetId
      - quoteSymbol
      - baseSymbol
      - quotePrecision
      - basePrecision
      - pricePrecision
      - quantityPrecision
      - costPrecision
      - priceBuffer
      - minQuantityLimit
      - maxQuantityLimit
      - timeZone
      - tickSize
      - liquidityTickSize
      - liquidityPrecision
      - feeGroupId
      - roundingCorrectionFactor
      - makerMinLiquidityAddition
      - spotTradingEnabled
      - marginTradingEnabled
      - marketEnabled
      - createOrderEnabled
      - cancelOrderEnabled
      - liquidityInvestEnabled
      - liquidityWithdrawEnabled
      - feeTiers
      - marketType
      - openInterestUSD
      - concentrationRiskThresholdUSD
      - concentrationRiskPercentage
      - expiryDatetime
      properties:
        marketId:
          description: unique market ID
          allOf:
          - $ref: '#/components/schemas/MarketID'
        symbol:
          description: market symbol
          allOf:
          - $ref: '#/components/schemas/OptionMarketSymbol'
        baseSymbol:
          description: base asset symbol (only applies to spot market)
          allOf:
          - $ref: '#/components/schemas/AssetSymbol'
        underlyingBaseSymbol:
          description: underlying base asset symbol (only applies to derivative market)
          example: null
          allOf:
          - $ref: '#/components/schemas/AssetSymbol'
        quoteSymbol:
          description: quote asset symbol (only applies to spot market)
          allOf:
          - $ref: '#/components/schemas/AssetSymbol'
        underlyingQuoteSymbol:
          description: underlying quote asset symbol (only applies to derivative market)
          example: null
          allOf:
          - $ref: '#/components/schemas/AssetSymbol'
        quoteAssetId:
          description: quote asset id
          allOf:
          - $ref: '#/components/schemas/AssetID'
        baseAssetId:
          description: base asset id
          allOf:
          - $ref: '#/components/schemas/AssetID'
        quotePrecision:
          description: quote precision
          type: integer
          example: 4
        basePrecision:
          description: base precision
          type: integer
          example: 8
        pricePrecision:
          description: number of decimal digits 'after the dot' for price
          type: integer
          example: 8
        quantityPrecision:
          description: number of decimal digits 'after the dot' for quantity
          type: integer
          example: 8
        costPrecision:
          description: number of decimal digits 'after the dot' for cost, `price * quantity`
          type: integer
          example: 8
        priceBuffer:
          description: buffer range of limit price from the last traded price. Not applicable for `Option` markets
          type: string
          example: '0.3'
        minQuantityLimit:
          description: order quantity should be > min, see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        maxQuantityLimit:
          description: order quantity should be < max, see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        timeZone:
          description: time zone
          type: string
          example: Etc/UTC
        tickSize:
          description: tick size, see [asset value](/rest/general/price-quantity-precision) format
          allOf:
          - $ref: '#/components/schemas/AssetValue'
        liquidityTickSize:
          description: liquidity tick size. Not applicable for `Option` markets
          type: string
          example: '100.0000'
        liquidityPrecision:
          description: liquidity precision. Not applicable for `Option` markets
          type: integer
          example: 4
        roundingCorrectionFactor:
          description: rounding correction factor for market
          type: string
          example: '0.00000001'
        makerMinLiquidityAddition:
          description: minimum amount required to invest liquidity to market. Not applicable for `Option` markets
          type: string
          example: '5000'
        orderTypes:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/OrderTypeAsString'
        spotTradingEnabled:
          description: spot trading enabled (only applies for Spot markets)
          type: boolean
          example: true
        marginTradingEnabled:
          description: margin trading enabled (only applies for Spot markets)
          type: boolean
          example: true
        marketEnabled:
          description: market enabled
          type: boolean
          example: true
        createOrderEnabled:
          description: able to create order
          type: boolean
          example: true
        amendOrderEnabled:
          description: able to amend order
          type: boolean
          example: true
          deprecated: true
        cancelOrderEnabled:
          description: able to cancel order
          type: boolean
          example: true
        liquidityInvestEnabled:
          description: able to invest liquidity to market. Not applicable for `Option` markets
          type: boolean
          example: true
        liquidityWithdrawEnabled:
          description: able to withdraw liquidity from market. Not applicable for `Option` markets
          type: boolean
          example: true
        feeGroupId:
          description: Identifier to the trade fee assigned to this market. Used with `tradeFeeRate` at [Get Trading Account](/rest/api/get-trading-account-by-id)
          type: integer
          example: 1
        feeTiers:
          description: all available fee tiers. Not applicable for `Option` markets
          type: array
          minItems: 0
          items:
            allOf:
            - $ref: '#/components/schemas/FeeTier'
        marketType:
          description: market type, e.g. "SPOT" for market like "BTCUSD", "PERPETUAL" for market like "BTC-USDC-PERP", "DATED_FUTURE" for market like "BTC-USDC-20250901", "OPTION" for market like "BTC-USDC-20250901-90000-C"
          allOf:
          - $ref: '#/components/schemas/MarketTypeAsString'
        contractMultiplier:
          description: contract multiplier. (only applies to perpetual market)
          type: integer
          example: null
        settlementAssetSymbo

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bullish/refs/heads/main/openapi/bullish-market-data-api-openapi.yml