Fetch Market Data
MEXC market data is split between spot and futures.
For time windows, pass datetime objects directly. See Timestamps.
Fetch Spot Market Data
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
server_time = await client.spot.market.time()
depth = await client.spot.market.depth(symbol='BTCUSDT', limit=5)
trades = await client.spot.market.trades(symbol='BTCUSDT', limit=10)
print(server_time['serverTime'], depth['bids'][0], trades[0]['price'])Fetch Spot Candles
from datetime import datetime, timedelta
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
end_time = datetime.now()
start_time = end_time - timedelta(hours=1)
candles = await client.spot.market.candles(
symbol='BTCUSDT',
interval='1m',
start_time=start_time,
end_time=end_time,
limit=60,
)
print(candles[-1][4])Walk A Longer Range
candles_paged and agg_trades_paged repeat the window you pass until one comes back empty.
Choose a window the endpoint answers in one response — at most limit rows — because a wider
one is capped by MEXC and the walk moves on to the next window:
from datetime import datetime, timedelta
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
start_time = datetime.now() - timedelta(hours=6)
closes = []
async for page in client.spot.market.candles_paged(
symbol='BTCUSDT',
interval='1m',
start_time=start_time,
end_time=start_time + timedelta(hours=1),
limit=1000,
max_pages=6,
):
closes += [row[4] for row in page]
print(len(closes))Spot candles walk forwards because MEXC returns them oldest first, and aggregate trades walk backwards because it returns those newest first. Both bounds are required: the width you pass is the step the walk takes.
Fetch Futures Candles
from datetime import datetime, timedelta
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
end = datetime.now()
start = end - timedelta(hours=1)
candles = await client.futures.market.candles(
'BTC_USDT',
interval='Min1',
start=start,
end=end,
)
if 'data' in candles:
print(candles['data']['close'][-1])Fetch Spot Exchange Metadata
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
info = await client.spot.market.exchange_info(symbol='BTCUSDT')
print(info['symbols'][0]['symbol'])Fetch Futures Market Data
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
contract = await client.futures.market.contract_info(symbol='BTC_USDT')
depth = await client.futures.market.depth('BTC_USDT', limit=20)
rate = await client.futures.market.funding_rate('BTC_USDT')
if 'data' in contract:
print(contract['data'])
if 'data' in depth and 'data' in rate:
print(depth['data']['bids'][0], rate['data']['fundingRate'])Fetch Futures Funding History
from typed_mexc import MEXC
async with MEXC.new(public=True) as client:
history = await client.futures.market.funding_rate_history(
symbol='BTC_USDT',
page_num=1,
page_size=20,
)
if 'data' in history:
print(history['data']['resultList'][0]['fundingRate'])