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

# userFills | Hyperliquid Info API

> Hyperliquid userFills: fetch a user's most recent trade fills without specifying a time window.

> [card] Credit Cost
>
> 1 per call

> [card] Processing
>
> Realtime

The Hyperliquid info endpoint with `type: "userFills"` is used to fetch a user's most recent trade fills without specifying a time window.

> [!TIP]
>
> Estimate your monthly cost for this API using the [Pricing Calculator](https://goldrush.dev/docs/pricing-calculator.md?endpoint=%2Fapi-reference%2Fhyperliquid-info%2Fuser-fills).

> [!NOTE]
>
> * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "userFills", "user": "..."}`.
> * Each response contains at most 2,000 fills.

Returns the most recent fills for a user, up to 2,000. Use this when you need the latest trade activity without specifying a time window.

User-keyed. The upstream Hyperliquid API caps each response at **2,000 fills** per wallet.

## Endpoint

```
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
```

## Request

**type** `string` *required*

Always `"userFills"`.

**user** `string` *required*

The wallet address (lowercase 0x-prefixed hex).

**aggregateByTime** `boolean`

When `true`, partial fills sharing the same timestamp are consolidated into one row. Default `false`.

### Example

```bash cURL theme={null}
curl -X POST https://hypercore.goldrushdata.com/info \
  -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "userFills",
    "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
  }'
```

```typescript TypeScript theme={null}
const response = await fetch("https://hypercore.goldrushdata.com/info", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    type: "userFills",
    user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
  }),
});

const fills = await response.json();
```

```python Python theme={null}
import os, requests

response = requests.post(
    "https://hypercore.goldrushdata.com/info",
    headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
    json={
        "type": "userFills",
        "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    },
)

fills = response.json()
```

## Response

An array of fill objects ordered most-recent-first.

```json theme={null}
[
  {
    "coin": "BTC",
    "px": "43250.5",
    "sz": "0.1",
    "side": "B",
    "time": 1735689600000,
    "startPosition": "0",
    "dir": "Open Long",
    "closedPnl": "0",
    "hash": "0x6b9c0a4a3d54b0d4d6b1a0c4d8c9e7f2b6e5d3c2a1f0e9d8c7b6a5f4e3d2c1b0a",
    "oid": 95012345,
    "tid": 678900012345,
    "crossed": true,
    "fee": "2.16",
    "feeToken": "USDC"
  }
]
```

### Field descriptions

> [!NOTE]
>
> All numeric fields (`px`, `sz`, `startPosition`, `closedPnl`, `fee`, `builderFee`) are returned as **decimal strings**, preserving upstream precision. Do not parse them as floats - keep them as strings or use a fixed-precision decimal type.

**coin** `string`

Asset symbol - e.g. `"BTC"`, `"ETH"` for perps; spot pairs use the `@N` form (e.g. `"@107"`).

**px** `string`

Fill execution price.

**sz** `string`

Fill size.

**side** `string`

`"B"` for buy/long, `"A"` for ask/short.

**time** `int`

Unix timestamp in milliseconds when the fill executed.

**startPosition** `string`

Signed position size on the same coin immediately before this fill.

**dir** `string`

Human-readable direction label - e.g. `"Open Long"`, `"Close Short"`, `"Buy"`, `"Sell"`.

**closedPnl** `string`

Realized PnL in USDC attributable to this fill (zero when the fill opens or extends a position).

**hash** `string`

L1 transaction hash that included this fill.

**oid** `int`

Parent order ID.

**tid** `int`

Unique trade ID.

**crossed** `boolean`

`true` when the fill came from the taker side of the order, `false` when it was the maker side.

**fee** `string`

Trading fee paid for this fill, denominated in `feeToken`.

**feeToken** `string`

Symbol the fee was paid in - typically `"USDC"`.

**builderFee** `string`

Optional. Builder fee paid for this fill if the order routed through a builder code.

**twapId** `int | null`

Optional TWAP order ID if this fill is a slice of a TWAP order.

**cloid** `string | null`

Optional client order ID if one was set at order placement.

## Related endpoints

> [card] [userFillsByTime](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-fills-by-time.md)
>
> fetch a user’s trade fills within a time window for P\&L recaps and tax ledger reconstruction.

> [card] [userTwapSliceFills](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-twap-slice-fills.md)
>
> fetch a user's most recent TWAP slice fills for execution-quality analytics on algorithmic orders.

> [card] [userTwapSliceFillsByTime](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-twap-slice-fills-by-time.md)
>
> fetch a user's TWAP slice fills within a time window for execution-quality reconciliation on algorithmic orders.

> [card] [userBorrowLendInterest](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-borrow-lend-interest.md)
>
> fetch a user's borrow/lend interest accrual history.

> [card] [userFunding](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-funding.md)
>
> fetch a user's per-coin funding payment history within a time window for funding-only P\&L attribution.

> [card] [userNonFundingLedgerUpdates](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-non-funding-ledger-updates.md)
>
> fetch a user's non-funding USDC ledger history (deposits, withdrawals, transfers, vault flows) within a time…

See all Hyperliquid endpoints: [Overview hub](https://goldrush.dev/docs/goldrush-hyperliquid/overview.md) · [Info API reference](https://goldrush.dev/docs/goldrush-hyperliquid/info-api/overview.md)

*Last reviewed: 2026-07-23*


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