Appearance
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
| Suffix | Unit |
|---|---|
_ticks | Raw order-book price ticks |
_base_lots | Base-asset order-book lots |
_quote_lots | Quote-asset order-book lots |
_token_atoms | Smallest denomination of the identified token |
_100th_bps | Hundredths of one basis point |
_bps | Basis 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_lotPagination
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.