Get fills
Returns fill and trade history for the requested account address, newest-first. Optional from/to (epoch ms) bound the time window. Optional accountIndex selects a subaccount (default 0); optional market restricts results to a single market. No authentication header is required.
from/to (epoch ms) bound the time window. Optional accountIndex selects a subaccount (default 0); optional market restricts results to a single market. No authentication header is required.Query Parameters
Master Ethereum address for this API key (must match address from POST /createApiKey for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.
20-byte EVM address as hex: optional 0x or 0X prefix and exactly 40 hexadecimal digits. API responses normalize to lowercase a–f after 0x.
^(0x|0X)?[0-9a-fA-F]{40}$Subaccount index (0–9) to scope the request to. Defaults to 0 (the primary account). Values above 9 → 400.
0 <= x <= 9Restrict results to a single market (display name, e.g. BTC-USD). Omit to return fills across all markets. An unknown market → 400.
"BTC-USD"
Maximum number of fills to return. Default and maximum are both 1000; requests above the maximum are silently clamped. Pass an explicit smaller value when you want fewer rows.
1 <= x <= 1000Start of the time window, filtering on createdAt (epoch microseconds, inclusive) — the same unit and field the response reports, so a createdAt read from one page is a valid bound for the next with no conversion.
Second- and millisecond-scale values are rejected with a 400 (the server requires at least 1e14). A millisecond bound read as microseconds would land in 1970 and quietly return nothing.
x >= 1000000000000001785801600123456
End of the time window, filtering on createdAt (epoch microseconds, inclusive) — the same unit and field the response reports, so a createdAt read from one page is a valid bound for the next with no conversion.
The bound closes over the whole microsecond it names, so page boundaries overlap by design — deduplicate by id when paging.
Second- and millisecond-scale values are rejected with a 400 (the server requires at least 1e14). A millisecond bound read as microseconds would land in 1970 and quietly return nothing.
x >= 1000000000000001785801699001200
Response
List of fills.