Skip to main content
HyperliquidPolymarket
Returns fills in newest protocol commit order (block number, then transaction index). The time field is the venue trade time, so it need not decrease from one row to the next. There is no time-range filter. Each page examines at most 500 indexed transactions; unrelated transactions can produce an empty page with a continuation cursor.

Endpoint

Request Body

For an incremental refresh, pass afterBlock from a previously completed response’s snapshotBlock. For continuation, pass the exact nextCursor as cursor with the same user; do not also send afterBlock. No limit parameter is accepted.

Response

Page fields

fills contains the rows below. snapshotBlock fixes the committed high-water mark for the whole traversal. Continue until nextCursor is null, including when fills is empty. Unknown fields, malformed cursors and cross-wallet cursors return 400; a reader behind the requested watermark returns 503. A committed transaction that cannot be rendered as a canonical fill fails the request with 500 and pages an operator — read failures remain errors rather than empty history. Commit order differs from trade time, especially after delayed finalization. To select a global window by time, traverse the snapshot before sorting. The app keeps its most recent 2,000 by trade time, then refreshes only commits after its completed watermark. Initial load and full-history consumers still traverse all indexed transactions through bounded sequential requests.

Fill fields

Polymarket fills appear after Polygon finality with settlementStatus: "finalized". Pending CLOB matches remain available through orderUpdates.polymarketFills. For sells from positions without complete canonical cost basis, closedPnlStatus remains "unknown" after finalization. Polymarket finalized fills emitted after the accounting cutover have an authoritative startPosition; legacy fills retain the numeric "0" placeholder with startPositionStatus: "unknown". Maker/taker role is not currently canonical, so crossedStatus is "unknown". Authority flags are optional: when omitted, interpret the field using established userFills semantics; when unknown, ignore its compatibility placeholder.