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

# Market info

> Get detailed configuration and trading rules for all available markets on WhiteBIT via the V4 API.

export const RelatedResources = ({children}) => {
  const ref = useRef(null);
  const [visible, setVisible] = useState(false);
  useEffect(() => {
    if (!ref.current) return;
    const el = ref.current;
    if (el.parentElement) {
      el.parentElement.appendChild(el);
    }
    setVisible(true);
  }, []);
  return <div ref={ref} className="related-resources" style={{
    marginTop: "2.5rem",
    paddingTop: "1.5rem",
    borderTop: "1px solid var(--border-color, #e5e7eb)",
    opacity: visible ? 1 : 0,
    transition: "opacity 0.15s ease-in"
  }}>
      <h2 style={{
    marginTop: 0
  }}>Related resources</h2>
      {children}
    </div>;
};

<RelatedResources>
  * [Market activity](/api-reference/market-data/market-activity) — 24-hour pricing and volume summary per market.
  * [Collateral markets list](/api-reference/market-data/collateral-markets-list) — markets available for collateral trading.
  * [Fee](/api-reference/market-data/fee) — deposit and withdrawal fee schedule per asset.
</RelatedResources>


## OpenAPI

````yaml openapi/public/http-v4.yaml GET /api/v4/public/markets
openapi: 3.0.3
info:
  title: Public HTTP API V4
  description: >
    WhiteBIT Public HTTP API V4 for market data and trading information.

    Base URL: https://whitebit.com

    All endpoints return time in Unix-time format.

    All endpoints return either a JSON object or array.

    Use HTTP method GET for API calls.

    Send parameters as query string when an endpoint requires them.


    <Warning>

    Rate limit: 2000 requests/10 sec for most endpoints (specific limits noted
    per endpoint).

    </Warning>


    ## Caching and data freshness


    Most public endpoints serve cached data. The cache is **shared across all
    callers** — values are keyed by the resource (market, currency), never by
    account — and invalidates on a **time basis only**: an upstream change
    becomes visible after the next refresh, not immediately.


    Two refresh tiers apply:


    - **Reference data** (`markets`, `assets`, `fee`, `collateral/markets`,
    `futures`) refreshes from the database on a fixed interval, ranging from
    about 10 seconds to about 1 minute depending on the endpoint.

    - **Market data** (`trades`, `orderbook`, `orderbook/depth`, `ticker`) uses
    a short-lived cache, about 1 second by default.


    `time` and `ping` are computed per request and are not cached. Each endpoint
    states its own refresh interval. Polling faster than that interval returns
    identical data and consumes rate-limit budget without producing fresher
    results.


    ## Error responses


    Public V4 endpoints do not share a single error schema. Depending on the
    endpoint, an error arrives in one of three shapes (there is no `params`
    field on any public error):


    - **Flat validation bag (HTTP 422)** — `{ "<field>": ["<message>"] }`. No
    envelope. Used by the market endpoints (`orderbook`, `orderbook/depth`,
    `trades`). Example: `{ "market": ["Market is not available."] }`. On
    `funding-history` the values are single strings rather than arrays.

    - **Wrapped, HTTP 200 even on validation errors** — `{ "success": false,
    "message": { "<field>": ["<message>"] }, "result": null }`. Used by the V4
    `kline` endpoint (not part of this portal — the documented Kline endpoint is
    V1).

    - **Wrapped string message (HTTP 4xx)** — `{ "success": false, "message":
    "<string>", "errors": [] }`. Used by the margin/futures collateral subset of
    endpoints. Parameterless endpoints (`markets`, `ticker`, `assets`, `fee`)
    take no input and so produce no validation errors — they fail only at the
    infrastructure level below.


    Common failures are produced at the infrastructure layer, not by the
    application, and do not follow these shapes:


    - **Maintenance** — every endpoint returns **HTTP 503** with a non-JSON body
    served by the gateway.

    - **Rate limit exceeded** — **HTTP 429** with a non-JSON body served by the
    gateway/CDN.

    - **Internal server error** — **HTTP 500** with a flat body `{ "error":
    ["Internal server error."] }`.

    - **Unknown route** — **HTTP 404** with an empty body.
  version: 4.0.0
servers:
  - url: https://whitebit.com
    description: WhiteBIT Global Server
  - url: https://whitebit.eu
    description: WhiteBIT EU Server
security: []
tags:
  - name: Public API V4
    description: Public endpoints for market data, trading information, and platform status
paths:
  /api/v4/public/markets:
    get:
      tags:
        - Public API V4
      summary: Market Info
      description: >
        The endpoint retrieves configuration and trading rules for all available
        spot, futures, and TradFi futures markets. Use the response to discover
        tradeable pairs, check minimum order sizes, and read fee schedules. Each
        entry includes precision settings, fee ratios, and order-size
        constraints for the market.


        <Note>

        Market configuration is reference data, re-synced from the database
        approximately every 10 seconds. Polling more frequently returns
        identical data. The cache is shared across all callers.

        </Note>


        <Note>

        TradFi futures markets are region-gated. Markets not available in a
        given region are omitted from the response entirely and do not appear
        under any other market type.

        </Note>


        <Warning>

        Rate limit 2000 requests/10 sec.

        </Warning>
      parameters: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                    - name
                    - stock
                    - money
                    - stockPrec
                    - moneyPrec
                    - feePrec
                    - makerFee
                    - takerFee
                    - minAmount
                    - minTotal
                    - maxTotal
                    - tradesEnabled
                    - isCollateral
                    - type
                    - isTradFiFutures
                  properties:
                    name:
                      type: string
                      description: Market pair name
                      example: SON_USD
                    stock:
                      type: string
                      description: Ticker of stock currency
                      example: SON
                    money:
                      type: string
                      description: Ticker of money currency
                      example: USD
                    stockPrec:
                      type: string
                      description: >-
                        Maximum number of decimal places for the base (stock)
                        currency quantity. Represented as a stringified integer.
                      example: '3'
                    moneyPrec:
                      type: string
                      description: >-
                        Maximum number of decimal places for the quote (money)
                        currency amount. Represented as a stringified integer.
                      example: '2'
                    feePrec:
                      type: string
                      description: >-
                        Maximum number of decimal places used when calculating
                        fees. Represented as a stringified integer.
                      example: '4'
                    makerFee:
                      type: string
                      description: >-
                        Default maker fee as a decimal ratio (e.g., `"0.001"` =
                        0.1%). Multiply by 100 to convert to a percentage.
                      example: '0.001'
                    takerFee:
                      type: string
                      description: >-
                        Default taker fee as a decimal ratio (e.g., `"0.001"` =
                        0.1%). Multiply by 100 to convert to a percentage.
                      example: '0.001'
                    minAmount:
                      type: string
                      description: Minimum order quantity in the base (stock) currency.
                      example: '0.001'
                    minTotal:
                      type: string
                      description: Minimum order total in the quote (money) currency.
                      example: '0.001'
                    maxTotal:
                      type: string
                      description: >-
                        Maximum order total (quantity × price) in the quote
                        (money) currency. `"0"` indicates no upper limit.
                      example: '10000000000'
                    tradesEnabled:
                      type: boolean
                      description: Indicates whether trading is enabled
                      example: true
                    isCollateral:
                      type: boolean
                      description: Indicates whether margin trading is enabled
                      example: true
                    type:
                      type: string
                      description: >-
                        Market type. Possible values: spot, futures,
                        tradfiFutures
                      enum:
                        - spot
                        - futures
                        - tradfiFutures
                      example: spot
                    isTradFiFutures:
                      type: boolean
                      description: >-
                        Indicates whether the market is a traditional-finance
                        (TradFi) futures market. Always paired with `type:
                        tradfiFutures`. TradFi futures markets are region-gated
                        and are omitted from the response entirely where not
                        available.
                      example: false
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorV4'
components:
  schemas:
    ErrorV4:
      type: object
      description: >-
        Generic wrapped error envelope (fallback). Market-data validation errors
        use the flat PublicValidationError shape (HTTP 422) instead, and
        infrastructure-level failures (maintenance, rate limit, internal error,
        unknown route) are non-JSON or flat. See the API description for the
        full set of public error shapes.
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          description: Error message
          example: Internal server error.
        errors:
          type: array
          items:
            type: string
          example: []

````