Get a user's trading volume
One wallet’s trading volume over a window, in both units side by side.
?user= is required. ?start= / ?end= are epoch seconds, inclusive and
optional: omitted or 0 disables a bound (full history). Volume is tracked in
whole UTC days, so each bound is floored to its UTC day; the served window
is the smallest whole-day window containing [start, end].
Returns { data: { volume, volume_usdc, trade_count } }; exactly one row
by construction (the view aggregates with no GROUP BY), zeros for a wallet
with no trades in the window. An inverted window is zeros too, not an error.
volume is both-sides SHARES; volume_usdc is the same measure in USD;
the endpoint that shows the unit convention side by side: the bare name is
the natural unit, _usdc is the denomination, the same pairing as
current_size / entry_cost_usdc on /v2/positions.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The wallet whose volume to return. Required.
Window start, epoch seconds, inclusive. Omitted or 0 disables the
bound (the feeds' convention). Volume is tracked in whole UTC days, so
the bound is floored to its UTC day.
Window end, epoch seconds, inclusive, floored to its UTC day. Omitted
or 0 disables the bound.
Response
The wallet's volume over the window: both-sides shares, the same measure in USD, and the trade count
{ "data": T }; the envelope for endpoints that don't paginate.
There is no pagination key: an aggregate or bounded list has no next page.
Paginated feeds return a *Page shape ({ data, pagination }) instead.
/v2/user-volume: one wallet's trading volume over a whole-day window, in
both units side by side.
volume is both-sides SHARES; volume_usdc is the same measure in USD;
the bare name is the natural unit and _usdc is the denomination, the same
pairing as current_size / entry_cost_usdc on /v2/positions.
trade_count is the number of trades in the window.