/api/v1. Catalog resources use a
feedEpoch: null envelope because they are not WebSocket replay cuts. Market
and user datasets return the committed feedEpoch and the corresponding
marketSeq or globalUserSeq when a replay cursor is available.
Markets
Browse spot markets and trailing 24-hour summaries.
Market details
Read one market’s tokens and trading configuration.
Market trades
Read finalized fills and obtain the market WebSocket join cursor.
Tokens
Browse supported token metadata.
Token details
Read one supported token.
Candles
Query historical OHLCV candles.
Resolve user
Resolve a wallet address to its Kuru user ID.
User open orders
Read a finalized open-order snapshot and its user cursor.
User balances
Read all finalized balances or select one token.
User trades
Read finalized maker and taker trades with fees and PnL.
Order events
Read finalized order creation, cancellation, and RAB reduction history.
User fee tier
Read the root account’s assigned maker and taker fee rates.
Account value and PnL snapshots
Read hourly USDC account value and cumulative PnL history.
feedEpoch as a decimal string
(or null before initialization), without a replay sequence. An epoch of "0"
is valid for a fresh feed. These endpoints are not WebSocket replay bootstraps.
REST to WebSocket handoff
For market trades, pairfeedEpoch with marketSeq and subscribe to the
matching finalized market stream. For user orders, balances, or trades, pair
feedEpoch with globalUserSeq and subscribe to the matching finalized user
stream. Install the REST data first, then request replay from that exact cursor.
Both cursor fields may be null before the current feed epoch has materialized
that scope. In that case the response remains valid finalized data, but it is
not a WebSocket replay bootstrap.