---
title: "Get user fills"
method: POST
path: "/api/v1/developer/trading/hyperliquid/info/fills"
---

# Get user fills

`POST /api/v1/developer/trading/hyperliquid/info/fills`

Retrieve fill data for a user including regular fills and TWAP slice fills

## Request body

- HyperliquidGetFillsRequest
  - `type` 'userFills' | 'userFillsByTime' | 'userTwapSliceFills', required — Type of fills to retrieve. Applies to all request types.
  - `user` string, required — User's wallet address (hex string). Applies to all request types.
  - `startTime` integer — Start time filter (Unix timestamp in milliseconds). Required for userFillsByTime. Only applies to userFillsByTime.
  - `endTime` integer — End time filter (Unix timestamp in milliseconds). Only applies to userFillsByTime.
  - `aggregateByTime` boolean — When true, aggregates multiple fills from the same order at the same timestamp into a single fill with combined size, weighted average price, and summed fees/PnL. Only applies to userFills and userFillsByTime.
  - `twapMode` 'none' | 'include' | 'only' — Controls TWAP fill filtering: 'none' (default) excludes TWAP fills, 'include' returns both regular and TWAP fills, 'only' returns only TWAP fills. Only applies to userFills and userFillsByTime.

## Response `200`

Fills retrieved successfully

- HyperliquidGetFillsResponse[]
  - `closedPnl` string, nullable — Realized PnL from closing a position with this fill
  - `coin` string, nullable — Trading pair symbol (e.g., BTC, ETH)
  - `crossed` boolean, nullable — Whether the order crossed the spread (i.e., was a taker order)
  - `dir` string, nullable — Direction description (e.g., Open Long, Close Short, Buy, Sell)
  - `hash` string, nullable — Transaction hash
  - `oid` integer, nullable — Order ID
  - `px` string, nullable — Execution price
  - `side` string, nullable — Order side: B (buy) or A (sell)
  - `startPosition` string, nullable — Position size before this fill was executed
  - `sz` string, nullable — Fill size
  - `time` integer, nullable — Fill timestamp (Unix timestamp in milliseconds)
  - `fee` string, nullable — Trading fee amount
  - `feeToken` string, nullable — Token used for fee payment
  - `tid` integer, nullable — Unique trade ID
  - `liquidation` HyperliquidLiquidation
    - `liquidatedUser` string, nullable — Wallet address of the user being liquidated
    - `markPx` string, nullable — Mark price at the time of liquidation
    - `method` string, nullable — Liquidation method used
  - `builderFee` string, nullable — Builder fee if order was routed through a builder
  - `builderAddress` string, nullable — Address of the builder if applicable
  - `twapId` integer, nullable — TWAP order ID if this fill is part of a TWAP order

## Other responses

- `400` — Bad request - Invalid type or missing required fields
- `500` — Internal server error

---

[API](https://skmtc.net/allium/apis/allium-account-api.md) · [All operations](https://skmtc.net/allium/apis/allium-account-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/allium/allium-account-api/versions/6c79c032c85d/schema)
