> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notional.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Get fills by time

> Returns up to 2,000 fills within inclusive execution-time bounds.

```json 200 theme={null}
[
  {
    "coin": "BTC",
    "marketAssetId": "00020000",
    "px": "50000.00",
    "sz": "0.1",
    "side": "B",
    "time": 1701234567890,
    "startPosition": "0",
    "dir": "Open Long",
    "closedPnl": "0",
    "hash": "0x1234abcd...",
    "orderId": "0x1234567890abcdef1234567890abcdef",
    "crossed": true,
    "fee": "2.50",
    "tid": 67890,
    "feeToken": "USDC"
  },
  {
    "coin": "HYPE/USDC",
    "marketAssetId": "00030001",
    "px": "20",
    "sz": "0.1",
    "side": "A",
    "time": 1701234567890,
    "startPosition": "0.1",
    "startPositionStatus": "known",
    "dir": "Sell",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0.00",
    "feeToken": "USDC",
    "executionSource": "internal",
    "matchId": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
    "counterparty": "0x2222222222222222222222222222222222222222",
    "originatingOrderId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "orderId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  },
  {
    "coin": "BTC",
    "marketAssetId": "00020000",
    "px": "50000.00",
    "sz": "0.1",
    "side": "A",
    "time": 1701234567890,
    "startPosition": "0.1",
    "dir": "Close Long",
    "closedPnl": "0",
    "hash": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
    "orderId": "0xdddddddddddddddddddddddddddddddd",
    "crossed": true,
    "fee": "2.50",
    "tid": 67892,
    "feeToken": "USDC",
    "forcedClosureType": "adl"
  },
  {
    "coin": "HYPE/USDC",
    "marketAssetId": "00030001",
    "px": "20",
    "sz": "0.1",
    "side": "B",
    "time": 1701234567890,
    "startPosition": "0",
    "startPositionStatus": "known",
    "dir": "Buy",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0",
    "feeToken": "USDC",
    "executionSource": "internal",
    "matchId": "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
    "counterparty": "0x2222222222222222222222222222222222222222",
    "originatingOrderId": "0xcccccccccccccccccccccccccccccccc"
  },
  {
    "coin": "polymarket:5615282760875985231868508008056959876238536896643315063916840237042205273721",
    "marketAssetId": "10010c6a232d8b7ebad17d093c8cc5f7b2326b41052074f4ae9883e22ab7e9f52e79",
    "px": "0.42",
    "sz": "2.5",
    "side": "A",
    "time": 1701234567900,
    "startPosition": "0",
    "startPositionStatus": "unknown",
    "dir": "Sell",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "hash": "0xabcd1234...",
    "orderId": "0xabcdef1234567890abcdef1234567890",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0.01",
    "tid": 67891,
    "feeToken": "pUSD",
    "settlementStatus": "finalized"
  }
]
```

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

**type** `string` *required*

Must be `"userFillsByTime"`.

**user** `string` *required*

User wallet address in 42-character hexadecimal format, case-insensitive.

**startTime** `integer` *required*

Inclusive start time in Unix milliseconds. Must be a nonnegative safe integer.

**endTime** `integer`

Inclusive end time in Unix milliseconds. Defaults to current time; must be at least `startTime`.

**aggregateByTime** `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.

**reversed** `boolean`

Defaults to `false`. Set to `true` for newest-first results, as used by chart trade markers.

## Response

```json 200 theme={null}
[
  {
    "coin": "BTC",
    "marketAssetId": "00020000",
    "px": "50000.00",
    "sz": "0.1",
    "side": "B",
    "time": 1701234567890,
    "startPosition": "0",
    "dir": "Open Long",
    "closedPnl": "0",
    "hash": "0x1234abcd...",
    "orderId": "0x1234567890abcdef1234567890abcdef",
    "crossed": true,
    "fee": "2.50",
    "tid": 67890,
    "feeToken": "USDC"
  },
  {
    "coin": "HYPE/USDC",
    "marketAssetId": "00030001",
    "px": "20",
    "sz": "0.1",
    "side": "A",
    "time": 1701234567890,
    "startPosition": "0.1",
    "startPositionStatus": "known",
    "dir": "Sell",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0.00",
    "feeToken": "USDC",
    "executionSource": "internal",
    "matchId": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
    "counterparty": "0x2222222222222222222222222222222222222222",
    "originatingOrderId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "orderId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  },
  {
    "coin": "BTC",
    "marketAssetId": "00020000",
    "px": "50000.00",
    "sz": "0.1",
    "side": "A",
    "time": 1701234567890,
    "startPosition": "0.1",
    "dir": "Close Long",
    "closedPnl": "0",
    "hash": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
    "orderId": "0xdddddddddddddddddddddddddddddddd",
    "crossed": true,
    "fee": "2.50",
    "tid": 67892,
    "feeToken": "USDC",
    "forcedClosureType": "adl"
  },
  {
    "coin": "HYPE/USDC",
    "marketAssetId": "00030001",
    "px": "20",
    "sz": "0.1",
    "side": "B",
    "time": 1701234567890,
    "startPosition": "0",
    "startPositionStatus": "known",
    "dir": "Buy",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0",
    "feeToken": "USDC",
    "executionSource": "internal",
    "matchId": "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
    "counterparty": "0x2222222222222222222222222222222222222222",
    "originatingOrderId": "0xcccccccccccccccccccccccccccccccc"
  },
  {
    "coin": "polymarket:5615282760875985231868508008056959876238536896643315063916840237042205273721",
    "marketAssetId": "10010c6a232d8b7ebad17d093c8cc5f7b2326b41052074f4ae9883e22ab7e9f52e79",
    "px": "0.42",
    "sz": "2.5",
    "side": "A",
    "time": 1701234567900,
    "startPosition": "0",
    "startPositionStatus": "unknown",
    "dir": "Sell",
    "closedPnl": "0",
    "closedPnlStatus": "unknown",
    "hash": "0xabcd1234...",
    "orderId": "0xabcdef1234567890abcdef1234567890",
    "crossed": false,
    "crossedStatus": "unknown",
    "fee": "0.01",
    "tid": 67891,
    "feeToken": "pUSD",
    "settlementStatus": "finalized"
  }
]
```

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.

**fill** `object`

A canonical fill object.

**child attributes**

**coin** `string`

Asset display label; finalized external Polymarket fills use `"polymarket:<tokenId>"`

**marketAssetId** `string`

Optional canonical unprefixed market AssetId.

**px** `string`

Execution price in quote-asset units per base unit; Polymarket uses pUSD per outcome share.

**sz** `string`

Executed quantity in base-asset units, or outcome shares for prediction markets.

**side** `string`

`"B"` for buy or `"A"` for sell

**time** `number`

Execution time in Unix milliseconds.

**startPosition** `string`

Signed position or holding before the fill, in asset units; `"0"` when unknown.

**startPositionStatus** `string`

Optional `known` or `unknown` position-data status.

**dir** `string`

Direction, e.g., `"Open Long"`

**closedPnl** `string`

Realized PnL in the market’s quote units; `"0"` when unknown.

**closedPnlStatus** `string`

Optional `known` or `unknown` PnL-data status.

**hash** `string`

External fills only: transaction hash, e.g., `"0x1234abcd..."`

**orderId** `string`

Notional order ID or forced-closure allocation ID, when available.

**crossed** `boolean`

Whether the fill crossed the book.

**crossedStatus** `string`

Optional `known` or `unknown` indicator for book-crossing data. `unknown` (with `crossed: false`) marks internal matches and Polymarket fills matched before the venue taker role was recorded.

**fee** `string`

All-in fee amount in units of the [fee token](#param-fee-token), including venue and protocol fees where applicable.

**tid** `number`

External fills only: venue ID for ordinary Hyperliquid fills, synthetic ID for Polymarket/forced closures

**feeToken** `string`

Fee denomination: current internal receipts use USDC; finalized external Polymarket fills use pUSD.

**settlementStatus** `string`

Optional `"finalized"` settlement marker.

**forcedClosureType** `string`

Optional forced-closure type: `"adl"`, `"backstop"`, or `"notionalAdl"`

##### Internal fills

**executionSource** `string`

`"internal"`; external fills omit it or use `"external"`

**matchId** `string`

Committed match ID shared by both participants.

**counterparty** `string`

Address of the opposite beneficial owner

**originatingOrderId** `string`

Order that initiated the match


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.