POST
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 /infotime 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
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.
