> ## 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.

# userTwapSliceFillsByTime | Hyperliquid Info API

> Hyperliquid userTwapSliceFillsByTime: fetch a user's TWAP slice fills within a time window for execution-quality reconciliation on algorithmic orders.

> [card] Credit Cost
>
> 1 per call

> [card] Processing
>
> Realtime

The Hyperliquid info endpoint with `type: "userTwapSliceFillsByTime"` is used to fetch a user's TWAP slice fills within a time window for execution-quality reconciliation on algorithmic orders.

> [!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-twap-slice-fills-by-time).

> [!NOTE]
>
> * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "userTwapSliceFillsByTime", "user": "...", "startTime": ...}`.
> * Each response contains at most 2,000 slice fills; widen the window in chunks or page by advancing `startTime` if you need more.
> * GoldRush serves this `type` from a dedicated HyperCore historical store, so windows older than upstream Hyperliquid’s 10,000-fill retention are still fulfilled.
> * TWAP slice fills have a `hash` of all zeros - use that, or the presence of `twapId`, to distinguish them from regular fills.
> * Use [`userTwapSliceFills`](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-twap-slice-fills) (no `ByTime` suffix) when you only need the most recent N slice fills without specifying a window.

Returns a single user's TWAP slice fills bounded by a `[startTime, endTime)` window in milliseconds. Each entry is a `{fill, twapId}` pair, where `twapId` ties the slice back to its parent TWAP order. Use this when you want execution-quality data for TWAP orders within a specific window - daily slice recaps, post-deploy backfills, or reconciling realized TWAP execution against benchmarks.

User-keyed. The upstream Hyperliquid API caps each response at **2,000 slice fills**; page by advancing `startTime`. **NOT LIMITED TO THE 10,000 MOST RECENT FILLS.** GoldRush serves this `type` from a dedicated HyperCore historical store so windows extending past the upstream retention limit are fulfilled from GoldRush data rather than truncated.

## Endpoint

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

## Request

**type** `string` *required* (default: userTwapSliceFillsByTime)

Always `"userTwapSliceFillsByTime"`.

**user** `string` *required*

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

**startTime** `int` *required*

Unix timestamp in milliseconds. Inclusive lower bound.

**endTime** `int`

Unix timestamp in milliseconds. Exclusive upper bound. Defaults to current server time when omitted.

### 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": "userTwapSliceFillsByTime",
    "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    "startTime": 1735689600000
  }'
```

```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: "userTwapSliceFillsByTime",
    user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    startTime: 1735689600000,
  }),
});

const slices = 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": "userTwapSliceFillsByTime",
        "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
        "startTime": 1735689600000,
    },
)

slices = response.json()
```

## Response

An array of TWAP slice fill objects ordered by `time`.

```json theme={null}
[
  {
    "fill": {
      "closedPnl": "0.0",
      "coin": "AVAX",
      "crossed": true,
      "dir": "Open Long",
      "hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "oid": 90542681,
      "px": "18.435",
      "side": "B",
      "startPosition": "26.86",
      "sz": "93.53",
      "time": 1681222254710,
      "fee": "0.01",
      "feeToken": "USDC",
      "tid": 118906512037719
    },
    "twapId": 3156
  }
]
```

### Field descriptions

> [!NOTE]
>
> All numeric `fill` fields (`px`, `sz`, `startPosition`, `closedPnl`, `fee`) 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.

**fill** `object`

The slice's fill payload - the same shape as one entry from [`userFillsByTime`](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-fills-by-time).

**properties**

**coin** `string`

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

**px** `string`

Fill execution price for this slice.

**sz** `string`

Slice fill size.

**side** `string`

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

**time** `int`

Unix timestamp in milliseconds when the slice executed.

**startPosition** `string`

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

**dir** `string`

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

**closedPnl** `string`

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

**hash** `string`

All-zero (`0x000…000`) for TWAP slice fills - the distinguishing marker versus regular fills, which carry an L1 transaction hash.

**oid** `int`

Order ID for the slice.

**tid** `int`

Unique trade ID for the slice.

**crossed** `boolean`

`true` when the slice came from the taker side, `false` when it was the maker side.

**fee** `string`

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

**feeToken** `string`

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

**twapId** `int`

Identifier of the parent TWAP order. Multiple slice fills from the same TWAP share this value - group by `twapId` to reconstruct per-TWAP execution.

## Related endpoints

> [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] [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] [userFills](https://goldrush.dev/docs/api-reference/hyperliquid-info/user-fills.md)
>
> fetch a user's most recent trade fills without specifying a time window.

> [card] [builderFillsByTime](https://goldrush.dev/docs/api-reference/hyperliquid-info/builder-fills-by-time.md)
>
> fetch a builder’s attributed trade fills within a time window for revenue attribution and fee accounting.

> [card] [builderFills](https://goldrush.dev/docs/api-reference/hyperliquid-info/builder-fills.md)
>
> fetch a builder’s most recent attributed trade fills for revenue attribution and order-flow analytics.

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-06-19*


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