---
title: "Exchange Order Book Depth"
method: GET
path: "/gateway/v1/exchange/depth"
tags: ["Exchange"]
---

# Exchange Order Book Depth

`GET /gateway/v1/exchange/depth`

Returns order book bid/ask levels with computed stats.

**Included fields:** spread, spread percentage, mid-price, and total bid/ask depth.

Use `limit` to control the number of price levels (1–100, default 20). Set `type=swap` to query perpetual contract order books instead of spot.

## Query parameters

- `pair` string, required — Trading pair (e.g. BTC/USDT)
- `type` 'spot' | 'swap' | 'perpetual' | 'perp' — Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts
- `limit` integer — Number of price levels (1-100)
- `exchange` 'binance' | 'okx' | 'bybit' | 'bitget' | 'coinbase' | 'kraken' | 'gate' | 'mexc' | 'upbit' | 'bitstamp' | 'deribit' | 'bitmex' | 'bithumb' | 'hyperliquid' — Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.

## Response `200`

OK

- SimpleListResponseExchangeDepthItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` ExchangeDepthItem[], nullable, required
    - `ask_depth` number, double, nullable, required — Total ask-side depth in base currency units
    - `asks` ExchangeDepthLevel[], nullable, required — Sell orders, price ascending
      - `amount` number, double, required — Amount at this level
      - `price` number, double, required — Price level
    - `bid_depth` number, double, nullable, required — Total bid-side depth in base currency units
    - `bids` ExchangeDepthLevel[], nullable, required — Buy orders, price descending
      - `amount` number, double, required — Amount at this level
      - `price` number, double, required — Price level
    - `exchange` string, required — Exchange identifier
    - `mid_price` number, double, nullable, required — (best_bid + best_ask) / 2
    - `pair` string, required — Trading pair like BTC/USDT
    - `spread` number, double, nullable, required — Best ask - best bid
    - `spread_pct` number, double, nullable, required — Spread as percent of mid price
  - `meta` ObjectResponseMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/498f461e81c4/schema)
