Skip to content

Data Types

Exact integers

Values that can exceed JavaScript's safe-integer range are decimal strings. This includes sequences, large IDs, timestamps, ticks, lots, token atoms, and shares.

json
{
  "timestamp_ns": "1785441661123456789",
  "sequence": "812",
  "price_ticks": "6500000",
  "size_base_lots": "12"
}

Small bounded values such as market_id, subaccount_id, counts, fee rates, and leverage are JSON integers.

Timestamps

Response timestamps use Unix nanoseconds encoded as decimal strings and end in _ns. open_time_ms and candle-style range parameters use Unix milliseconds.

Quantities

SuffixUnit
_ticksRaw order-book price ticks
_base_lotsBase-asset order-book lots
_quote_lotsQuote-asset order-book lots
_token_atomsSmallest denomination of the identified token
_100th_bpsHundredths of one basis point
_bpsBasis points

TokenAtoms is used for either asset. There are no separate base-atom and quote-atom wire types.

Market metadata provides the scale factors required for exact conversion:

text
quote_lots_per_base_unit = price_ticks * quote_lots_per_base_unit_per_tick
quote_lots = quote_lots_per_base_unit * size_base_lots / base_lots_per_base_unit
base_token_atoms = size_base_lots * base_atoms_per_base_lot
quote_token_atoms = quote_lots * quote_atoms_per_quote_lot

Pagination

Paginated endpoints accept limit and cursor. Pass the returned next_cursor unchanged to request the next page. next_cursor is omitted when no later page exists.

Optional fields

Absent optional values are omitted. null is reserved for values whose absence has domain meaning, such as an empty side of the BBO or an initial WebSocket previous_sequence.