OKX CEX Market Data CLI
Public market data for OKX exchange: prices, order books, candles, funding rates, open interest, and instrument info. All commands are read-only and do not require API credentials.
Prerequisites
- Install CLI:
bash
npm install -g @okx_ai/okx-trade-cli
- No credentials needed for market data — all commands are public.
- Verify install:
bash
okx market ticker BTC-USDT
Demo vs Live Mode
Market data commands are public and read-only —
demo mode has no effect. The same data is returned with or without
. No confirmation needed before running any market command.
Skill Routing
- For market data (prices, charts, depth, funding rates) → use (this skill)
- For account balance, P&L, positions, fees, transfers → use
- For regular spot/swap/futures/algo orders → use
- For grid and DCA trading bots → use
Quickstart
bash
# Current BTC spot price
okx market ticker BTC-USDT
# All SWAP (perp) tickers
okx market tickers SWAP
# BTC perp order book (top 5 levels each side)
okx market orderbook BTC-USDT-SWAP
# BTC hourly candles (last 20)
okx market candles BTC-USDT --bar 1H --limit 20
# BTC perp current funding rate
okx market funding-rate BTC-USDT-SWAP
# BTC perp funding rate history
okx market funding-rate BTC-USDT-SWAP --history
# Open interest for all SWAP instruments
okx market open-interest --instType SWAP
# List all active SPOT instruments
okx market instruments --instType SPOT
Command Index
| # | Command | Type | Description |
|---|
| 1 | okx market ticker <instId>
| READ | Single instrument: last price, 24h high/low/vol |
| 2 | okx market tickers <instType>
| READ | All tickers for an instrument type |
| 3 | okx market instruments --instType <type>
| READ | List tradeable instruments |
| 4 | okx market orderbook <instId> [--sz <n>]
| READ | Order book top asks/bids |
| 5 | okx market candles <instId> [--bar] [--limit]
| READ | OHLCV candlestick data |
| 6 | okx market index-candles <instId> [--bar] [--limit]
| READ | Index OHLCV candles |
| 7 | okx market funding-rate <instId> [--history]
| READ | Current or historical funding rate |
| 8 | okx market trades <instId> [--limit <n>]
| READ | Recent public trades |
| 9 | okx market mark-price --instType <type> [--instId <id>]
| READ | Mark price for contracts |
| 10 | okx market index-ticker [--instId <id>] [--quoteCcy <ccy>]
| READ | Index price (e.g., BTC-USD) |
| 11 | okx market price-limit <instId>
| READ | Upper/lower price limits for contracts |
| 12 | okx market open-interest --instType <type> [--instId <id>]
| READ | Open interest in contracts and coins |
Cross-Skill Workflows
Check price before placing an order
User: "What's the current BTC price? I want to place a limit buy."
1. okx-cex-market okx market ticker BTC-USDT → check last price and 24h range
↓ user decides price
2. okx-cex-portfolio okx account balance USDT → confirm available funds
↓ user approves
3. okx-cex-trade okx spot place --instId BTC-USDT --side buy --ordType limit --px <px> --sz <sz>
Check funding rate before holding a perp position
User: "Is the BTC perp funding rate high right now?"
1. okx-cex-market okx market funding-rate BTC-USDT-SWAP → current rate + next funding time
2. okx-cex-market okx market funding-rate BTC-USDT-SWAP --history → trend over recent periods
↓ decide whether to hold position
3. okx-cex-portfolio okx account positions → check existing exposure
Research market before creating a grid bot
User: "I want to set up a BTC grid bot — what's the recent range?"
1. okx-cex-market okx market candles BTC-USDT --bar 4H --limit 50 → recent OHLCV for range
2. okx-cex-market okx market ticker BTC-USDT → current price
3. okx-cex-market okx market orderbook BTC-USDT --sz 20 → liquidity check
↓ decide minPx / maxPx
4. okx-cex-bot okx bot grid create --instId BTC-USDT ...
Compare perp vs spot premium
User: "Is there a premium between BTC spot and BTC perp?"
1. okx-cex-market okx market ticker BTC-USDT → spot last price
2. okx-cex-market okx market ticker BTC-USDT-SWAP → perp last price
3. okx-cex-market okx market mark-price --instType SWAP --instId BTC-USDT-SWAP → mark price
Discover and price an option
User: "What's the price of a BTC call option expiring this week?"
1. okx-cex-market okx market open-interest --instType OPTION --instId BTC-USD → list active option instIds
↓ pick target instId from the list (e.g., BTC-USD-250328-95000-C)
2. okx-cex-market okx market ticker BTC-USD-250328-95000-C → option last price and stats
3. okx-cex-market okx market orderbook BTC-USD-250328-95000-C → bid/ask spread
Note:
okx market instruments --instType OPTION
requires
(e.g.,
). If the underlying is unknown, use
first to discover active option instIds.
Operation Flow
Step 1: Identify the data needed
- Current price →
- All prices for a category →
- Order book depth →
- Price history/chart →
- Funding cost →
- Contract valuation → or
- Market volume/OI →
- What instruments exist →
Step 2: Run commands immediately
All market data commands are read-only — no confirmation needed.
- values: , , ,
- values: , , , , , , , , , , , ,
- : number of results (default varies per endpoint, typically 100)
- : for , returns historical records instead of current rate
Step 3: No writes — no verification needed
All commands in this skill are read-only. No post-execution verification required.
CLI Command Reference
Ticker — Single Instrument
bash
okx market ticker <instId> [--json]
Returns:
,
,
,
(24h change %).
Tickers — All Instruments of a Type
bash
okx market tickers <instType> [--json]
| Param | Required | Values | Description |
|---|
| Yes | , , , | Instrument type |
Instruments — List Tradeable Instruments
bash
okx market instruments --instType <type> [--instId <id>] [--json]
| Param | Required | Default | Description |
|---|
| Yes | - | , , , |
| No | - | Filter to a single instrument |
Returns:
,
,
,
,
,
. Displays up to 50 rows.
Order Book
bash
okx market orderbook <instId> [--sz <n>] [--json]
| Param | Required | Default | Description |
|---|
| Yes | - | Instrument ID (e.g., ) |
| No | 5 | Depth levels per side (1–400) |
Displays top 5 asks (ascending) and bids (descending) with price and size.
Candles — OHLCV
bash
okx market candles <instId> [--bar <bar>] [--limit <n>] [--json]
| Param | Required | Default | Description |
|---|
| Yes | - | Instrument ID |
| No | | Time granularity (, , , , etc.) |
| No | 100 | Number of candles to return |
Returns columns:
,
,
,
,
,
.
Index Candles
bash
okx market index-candles <instId> [--bar <bar>] [--limit <n>] [--history] [--json]
Same params as
. Use index instrument IDs like
(not
).
Funding Rate
bash
okx market funding-rate <instId> [--history] [--limit <n>] [--json]
| Param | Required | Default | Description |
|---|
| Yes | - | SWAP instrument (e.g., ) |
| No | false | Return historical funding rates |
| No | - | Number of historical records |
Current (no
): returns
,
,
,
.
Historical (
): table with
,
,
.
Recent Trades
bash
okx market trades <instId> [--limit <n>] [--json]
Mark Price
bash
okx market mark-price --instType <type> [--instId <id>] [--json]
Returns:
,
,
,
. Used for liquidation price calculation and contract valuation.
Index Ticker
bash
okx market index-ticker [--instId <id>] [--quoteCcy <ccy>] [--json]
| Param | Required | Default | Description |
|---|
| Cond. | - | Index ID (e.g., ) |
| Cond. | - | Filter by quote currency (e.g., , ) |
Price Limit
bash
okx market price-limit <instId> [--json]
Returns:
(max buy price),
(min sell price). Applies to SWAP and FUTURES only.
Open Interest
bash
okx market open-interest --instType <type> [--instId <id>] [--json]
Returns:
(contracts),
(base currency amount),
.
MCP Tool Reference
| Tool | Description |
|---|
| Single instrument ticker |
| All tickers for instType |
| List instruments |
| Order book depth |
| OHLCV candles |
| Index OHLCV candles |
| Funding rate (current or history) |
| Recent public trades |
| Mark price for contracts |
| Index price ticker |
| Price limits for contracts |
| Open interest |
Input / Output Examples
"What's the price of BTC?"
bash
okx market ticker BTC-USDT
# → instId: BTC-USDT | last: 95000.5 | 24h change %: +1.2% | 24h high: 96000 | 24h low: 93000
"Show me all SWAP tickers"
bash
okx market tickers SWAP
# → table of all perpetual contracts with last price, 24h high/low/vol
"What's the BTC/USDT order book look like?"
bash
okx market orderbook BTC-USDT
# Asks (price / size):
# 95100.0 2.5
# 95050.0 1.2
# Bids (price / size):
# 95000.0 3.1
# 94950.0 0.8
"Show me BTC 4H candles for the last 30 periods"
bash
okx market candles BTC-USDT --bar 4H --limit 30
# → table: time, open, high, low, close, vol
"What's the current funding rate for BTC perp?"
bash
okx market funding-rate BTC-USDT-SWAP
# → fundingRate: 0.0001 | nextFundingRate: 0.00012 | fundingTime: ... | nextFundingTime: ...
"Show historical funding rates for ETH perp"
bash
okx market funding-rate ETH-USDT-SWAP --history --limit 20
# → table: fundingRate, realizedRate, fundingTime
"What's the open interest on BTC perp?"
bash
okx market open-interest --instType SWAP --instId BTC-USDT-SWAP
# → oi: 125000 | oiCcy: 125000 | ts: ...
"List all available SPOT instruments"
bash
okx market instruments --instType SPOT
# → table: instId, ctVal, lotSz, minSz, tickSz, state (up to 50 rows)
Edge Cases
- instId format: SPOT uses ; SWAP uses ; FUTURES uses ; OPTION uses ; Index uses
- OPTION instruments — cannot list directly:
okx market instruments --instType OPTION
requires (underlying). If the underlying is unknown, run okx market open-interest --instType OPTION
first to discover active option instIds from the results, then use those instIds with okx market ticker <instId>
- No data returned: instrument may be delisted or instId is wrong — verify with
- funding-rate: only applies to SWAP instruments; returns error for SPOT/FUTURES
- price-limit: only applies to SWAP and FUTURES instruments
- mark-price: available for SWAP, FUTURES, OPTION; not applicable to SPOT
- candles --bar: use uppercase , , , for hour/day/week/month (e.g., not )
- index-ticker: use format (not ) for index IDs
- orderbook --sz: max depth is 400; default display shows top 5 per side regardless of
Global Notes
- All market data commands are public — no API key required
- returns raw OKX API v5 response for programmatic use
- has no effect on market commands (no auth needed)
- Rate limit: 20 requests per 2 seconds per IP for market data endpoints
- Candle data is sorted newest-first by default
- in tickers is in base currency (e.g., BTC for BTC-USDT)