Market data
Market data needs no account, session, or key — only a Nord client.
Exchange configuration
const info = await nord.getInfo(); // same payload Nord.new caches on the client
nord.markets; // marketId, symbol, priceDecimals, sizeDecimals, mode, imf, mmf, ...
nord.tokens; // tokenId, symbol, decimals, mintAddr, ...
Resolve marketId from a symbol through nord.markets rather than hardcoding
it; IDs are per deployment. See
Networks and endpoints.
Orderbook
const book = await nord.getOrderbook({ marketId: 0 });
// or by symbol: await nord.getOrderbook({ symbol: "BTCUSD" })
const [bestBidPrice, bestBidSize] = book.bids[0]!;
const [bestAskPrice, bestAskSize] = book.asks[0]!;
Levels are [price, size] pairs, best first, already descaled to decimals. Each
snapshot carries an updateId, which is how you order it against the incremental
deltas from WebSocket streams.
Live prices and stats
const allLive = await nord.getMarketsLive();
const live = await nord.getMarketLive({ marketId: 0 });
const stats = await nord.getMarketStats({ marketId: 0 });
const tokenStats = await nord.getTokenStats(0);
Live and stats payloads carry the market's current pricing state — including the index and mark prices described in Oracle, Index, and Mark Prices — and rolling market statistics.
Trades
const recent = await nord.getTrades({ marketId: 0, pageSize: 50 });
const window = await nord.getTrades({
marketId: 0,
since: "2026-08-01T00:00:00Z", // RFC3339, inclusive
until: "2026-08-02T00:00:00Z", // RFC3339, exclusive
pageSize: 500,
});
Filters: marketId, takerId, makerId, takerSide ("bid" / "ask"),
since, until, pageSize. Paginate with startInclusive, which is a trade ID
by default or an action ID when paginationMode: "actionId". Non-RFC3339
timestamps throw before the request is sent.
Per-order fills:
const order = await nord.getOrder(orderId);
const fills = await nord.getOrderTrades(orderId);
Fees
const brackets = await nord.getFeeBrackets();
const tier = await nord.getAccountFeeTier(accountId);
const quotedFee = await nord.getMarketFee({ marketId: 0, feeKind, accountId });
getMarketFee quotes the fee for a fill role in quote-token units; a negative
value is a fee charged. Fee tiers and rates are described in
Fees.
Streaming
Polling is fine for low-frequency reads. For anything latency-sensitive, subscribe instead — see WebSockets.