> ## 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.

# Markets & Trading Pairs

> Understand market types, trading pair notation, and how to fetch market data from the WhiteBIT API.

WhiteBIT organizes trading around **market pairs** — combinations of a base asset and a quote asset, written as `BASE_QUOTE` (for example, `BTC_USDT`). The base asset (left side) is what gets bought or sold. The quote asset (right side) is what gets paid with.

## Market types

WhiteBIT supports four market types, each using different account balances and leverage settings.

| Type | Pairs | Balance | Leverage | Example |
| - | - | - | - | - |
| **Spot** | 800+ | Trade | None (1×) | `BTC_USDT` |
| **Margin** | Spot pairs | Collateral | Up to 10× | `BTC_USDT` |
| **Futures** | 270+ perpetuals | Collateral | Up to 100× | `BTC_PERP` |
| **TradFi Futures** | Region-gated | Collateral | — | `AAPL_USD` |

**Spot** — Direct buy/sell. Orders execute against the spot orderbook. Funds held in the [Trade balance](/concepts/balances).

**Margin** — Leveraged trading on spot pairs with up to 10× leverage. Pair names are identical to spot (e.g., `BTC_USDT`). Funds held in the [Collateral balance](/concepts/balances). Isolated margin mode available.

**Futures** — Perpetual contracts with up to 100× leverage. Pairs use the `_PERP` suffix (e.g., `BTC_PERP`). Funds held in the [Collateral balance](/concepts/balances). Hedge Mode allows simultaneous long and short positions.

**TradFi Futures** — Futures markets on traditional-finance assets such as equities (e.g., `AAPL_USD`), identified in the [markets response](/api-reference/market-data/market-info) by `type: tradfiFutures` and `isTradFiFutures: true`. Funds are held in the [Collateral balance](/concepts/balances). Availability is region-gated — markets not available in a given region are omitted from `GET /api/v4/public/markets` entirely. TradFi markets enabled for collateral trading also appear in the [collateral markets list](/api-reference/market-data/collateral-markets-list); placing an order on a TradFi market additionally requires TradFi futures to be enabled for the account.

Availability is also gated per account: placing or modifying an order on a TradFi market requires the account to hold the TradFi futures permission. The account gate is separate from the region gate, so a TradFi market can be listed in `GET /api/v4/public/markets` and still reject order placement with HTTP 422 and error code `10011` on the [collateral order endpoints](/api-reference/trading/collateral-overview). Canceling an existing order on a TradFi market is never restricted.

<Note>
  **API naming convention:** WhiteBIT's API uses "collateral" endpoints for both
  Margin and Futures trading. The market pair determines the product:
  spot pairs (e.g., `BTC_USDT`) for Margin, perpetual pairs (e.g., `BTC_PERP`)
  for Futures. All endpoints under `/api/v4/order/collateral/` and
  `/api/v4/collateral-account/` serve both products.
</Note>

## How to fetch market info

Public endpoints — no authentication required:

* **All markets (spot, margin, perpetual, TradFi futures):** `GET /api/v4/public/markets` — [API Reference](/api-reference/market-data/market-info)
* **Perpetual futures markets:** `GET /api/v4/public/futures` — [API Reference](/api-reference/market-data/available-futures-markets-list)

## Key market fields

Each market returned by `GET /api/v4/public/markets` includes:

| Field | Description |
| - | - |
| `stock` | Base asset ticker (e.g., `BTC`) |
| `money` | Quote asset ticker (e.g., `USDT`); perpetual futures pairs report `USDT` |
| `minAmount` | Minimum order quantity in the base asset |
| `minTotal` | Minimum order total in the quote asset |
| `makerFee` | Default maker fee as a percentage value (`"0.1"` means 0.1%) |
| `takerFee` | Default taker fee as a percentage value (`"0.1"` means 0.1%) |
| `tradesEnabled` | Whether trading is active on the pair |
| `stockPrec` | Maximum decimal places for base asset quantity |
| `moneyPrec` | Maximum decimal places for quote asset amount |
| `tickSize` | Minimal price step a limit order price must be a multiple of; empty string when not provided |
| `stepSize` | Minimal quantity step an order amount must be a multiple of; empty string when not provided |

## Price and amount steps

From September 18, 2026, the matching engine rejects an order whose price is not a multiple of `tickSize` or whose amount is not a multiple of `stepSize`. Read both values from `GET /api/v4/public/markets` on every poll instead of deriving the steps from `moneyPrec` and `stockPrec` — both values follow the market settings in the trade engine and may differ from the precision-derived values.

| Request field | Step | Where it applies |
| - | - | - |
| `price` | `tickSize` | limit, stop-limit, bulk and modify orders, spot and collateral |
| `activation_price`, spelled `activationPrice` on modify | `tickSize` | stop-limit, stop-market, trigger-market, OCO and modify orders |
| `stop_limit_price` | `tickSize` | the stop-loss leg of an OCO order |
| `stopLoss`, `takeProfit` | `tickSize` | prices attached to a collateral order; a position take-profit / stop-loss request spells the same prices `take_profit_activation_price` and `stop_loss_activation_price` |
| `amount` | `stepSize` | every order endpoint except the cases below |

The amount step does not apply to `POST /api/v4/order/market` and `POST /api/v4/order/stop_market` buy orders: there `amount` is the total in quote currency, not a quantity. The `activation_price` of a buy stop-market order is still checked.

A standalone order rejected for a step mismatch returns HTTP 422 with trade error code `1` and the failing field in `errors`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "code": 1,
  "message": "Validation failed",
  "errors": {
    "price": ["Price must be a multiple of 0.01."]
  }
}
```

The bulk endpoints answer HTTP 200 instead and carry the same object in the array entry of the order that failed.

A step rejection keys `errors` on `price`, `amount`, `activationPrice`, `stopLimitPrice`, `takeProfit` or `stopLoss`, whatever spelling the request uses for the field. The endpoint's own validation errors — codes `30`, `32` and `33` — key on the request field instead, so `activation_price` appears there. Branch on the code together with the key, never on the message text: the message is localized.

An empty `tickSize` or `stepSize` means the trade engine does not provide the value for that market. Fall back to `10^-moneyPrec` for the price step and `10^-stockPrec` for the amount step, and re-read the market on the next poll.

## Market statuses

The `tradesEnabled` field indicates whether a market is actively accepting orders. The `/api/v4/public/markets` response only includes markets enabled for trading, so a disabled market disappears from the list rather than appearing with `tradesEnabled: false`. Markets can be temporarily disabled by the platform without prior notice.

The platform announces a permanent removal in advance instead. The market carries the announced delisting date in `delistedAt` — a Unix timestamp in seconds, `null` when no delisting is announced. The market keeps trading until the delisting runs, then the platform cancels the active orders and drops the market from the response. An announcement can be rescheduled or canceled, so re-read `delistedAt` on each poll.

For platform-wide maintenance status, call `GET /api/v4/public/platform/status` — [API Reference](/api-reference/market-data/maintenance-status).

## What's Next

<CardGroup cols={2}>
  <Card title="Order Types" icon="layer-group" href="/concepts/order-types">
    Learn about the 7 order types available on WhiteBIT.
  </Card>

  <Card title="Balances & Transfers" icon="wallet" href="/concepts/balances">
    Understand Main, Trade, and Collateral account types.
  </Card>

  <Card title="Market Data Quickstart" icon="chart-bar" href="/products/market-data/quickstart">
    Fetch live prices and orderbooks — no auth required.
  </Card>
</CardGroup>


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