Market Data (REST)

Public, unsigned market data: markets, 24h stats, order book, best bid and offer, trades and klines, plus TRUE mark based klines and venue totals.

All reads on this page are public and unsigned. Sizes and prices are decimal strings; timestamps are Unix milliseconds. For live data use the SSE or WebSocket feeds; poll REST only for snapshots and history.

On the venue

Base URL https://dex-prod.truefinance.ai.

GET /v1/markets

Every market: symbol, base_asset and quote_asset with decimals, base_lot_size, price_tick, margin parameters (mm_ratio, risk_factor, liquidation_fee), funding parameters, status and flags.

[{"id":0,"symbol":"BTCUSDC","base_asset":{"symbol":"BTC","decimals":8},"quote_asset":{"symbol":"USDC","decimals":6},"kind":"Perpetual","flags":3,"status":"Normal","base_lot_size":"0.0001","price_tick":"1","mm_ratio":20000,"liquidation_fee":100,"funding_ema_half_life_seconds":3600}]
GET /v1/markets/stats?market=BTCUSDC

market=ALL returns every market. last_traded_price is the last fill, not the mark.

{"results":[{"symbol":"BTCUSDC","last_traded_price":"77338","volume_24h":"25788814.0023","price_change_rate_24h":"-0.005670","timestamp":1789232208665}]}
GET /v1/orderbook/BTCUSDC?depth=60
{"asks":{"77350":"0.4061","77362":"0.3238"},"bids":{"77302":"0.3593","77307":"0.4000"}}
GET /v1/markets/bbo/BTCUSDC
{"ask":"77350","ask_size":"0.4061","bid":"77338","bid_size":"0.3331","market":"BTCUSDC","seq_no":0,"last_updated_at":0}
GET /v1/trades?market=BTCUSDC&page_size=200&start_at=<ms>

Fills, oldest first behind a forward cursor (next). Each row: id, market, price, side, size, created_at, trade_type. Anchor on id when you follow the tape: ids are unique and strictly ascending, timestamps collide inside a millisecond.

GET /v1/markets/kline?market=BTCUSDC&resolution=60&start_at=<ms>&end_at=<ms>

Fill based bars, resolution in seconds: {time, open, high, low, close, volume}.

On TRUE

Base URL https://app.truefinance.ai. 600 requests a minute per client IP.

GET /api/perps-dex/markets

The venue’s market list, cached server side.

GET /api/perps-dex/kline?market=BTCUSDC&resolution=60&start_at=<ms>&end_at=<ms>

Bars built from the oracle mark, the same series the TRUE chart shows. The venue’s /v1/markets/kline is fill based; the two agree over time and differ inside a bar on a thin book.

GET /api/public/dex/stats

Venue totals for listing sites: TVL (USDC held by the custody vault on Solana), volumes and trade counts.

Which price is the price

The mark is what TRUE settles and liquidates on and what every TRUE screen shows. If you display TRUE prices anywhere, use the mark: the mark event, the marks:ALL topic, or the TRUE kline endpoint. last_traded_price sits on a thin book and can differ by tens of dollars.

Last updated: