Skip to main content
GET
Trades

Live filters

Narrow the live tape with side (long or short), min_qty, max_qty, and min_notional. For example, set min_notional=25000 to keep only trades worth at least $25,000. Unknown parameters return HTTP 400.

Historical windows

Add after and/or before (Unix seconds or milliseconds) to query historical trades. History covers every execution from July 9, 2026 onward and keeps growing. The same side, quantity, and notional filters apply to the archive.
Archived responses preserve the existing more flag and also return has_more and an opaque next_cursor. When has_more is true, send the returned cursor with the same instrument and filters:
Trades are newest first in both live and archived responses. Cursor pages belong to one fixed traversal, so new trades do not overlap or displace its later pages. Cursors expire after 24 hours. A malformed cursor returns HTTP 400 with {"error":"invalid cursor"}. An expired cursor returns {"error":"cursor has expired"}. Reusing a cursor with a different instrument or filter returns HTTP 400 and a clean mismatch message. Start again without the cursor in each case. side is the taker’s direction: long means the taker bought, and short means the taker sold. Trades carry no account attribution. For position-level tracking, use wallet portfolios.

Authorizations

x-api-key
string
header
required

Path Parameters

instrument
string
required

Instrument id (e.g. 6), symbol (BTC-USD), or bare asset (btc).

Query Parameters

limit
integer

Max rows to return.

after
string

Only rows after this time (Unix seconds or ms).

before
string

Only rows before this time (Unix seconds or ms).

side
string

Filter: long | short

min_qty
number

Minimum quantity

max_qty
number

Maximum quantity

min_notional
number

Minimum notional (price x qty), USD

cursor
string

Opaque next_cursor from the preceding archived page. Reuse the same instrument and filters within 24 hours.

Response

Success