Skip to main content
POST/info
Returns a JSON array ordered by execution time, oldest first. Only the 10,000 most recent fills are available; each response contains at most 2,000 rows. To continue a time range, use the last returned time as the next startTime and deduplicate the inclusive overlap. Timestamp-only pagination cannot advance past more than 2,000 fills at one millisecond. CSV exports using this endpoint share the 10,000-fill window.

Request Body

string
required
Must be "userFillsByTime".
string
required
User wallet address in 42-character hexadecimal format, case-insensitive.
integer
required
Inclusive start time in Unix milliseconds. Must be a nonnegative safe integer.
integer
Inclusive end time in Unix milliseconds. Defaults to current time; must be at least startTime.
boolean
Defaults to false. Combines a crossing order’s partial fills across resting orders. Resting-order partials combine only within the same committed block. Aggregation keeps markets, sides, and fee tokens separate. Internal matches, forced closures, and fills with unknown crossing status remain separate. Size, fees and PnL sum exactly; weighted price rounds once to 20 decimal places, half-up. The earliest fill supplies time, start position and identity. Executions after endTime are excluded before aggregation; startTime then selects aggregate rows by their earliest execution time. Keep endTime fixed across continuation requests so partial fills are not counted again under a different representative identity.
boolean
Defaults to false. Set to true for newest-first results, as used by chart trade markers.

Response

A JSON array, including an empty array when no fills match. Fill fields preserve Notional identities: orderId identifies the user’s Notional order; internal matches use matchId and counterparty instead of fabricated venue IDs. Unknown accounting fields retain their status annotations.
object
A canonical fill object.