> For the complete documentation index, see [llms.txt](https://docs.hydromancer.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hydromancer.xyz/readme/rest-api/historical-data/usertwapslicefills.md).

# userTwapSliceFills

{% hint style="info" %}
**All data fully available from 28-07-2025. We have performed a full backfill of all fills the HL native API offered, meaning that we have full historical data for most traders except for some very high volume addresses. TWAP fills are included from 02-08-2025.**
{% endhint %}

Returns fills that were executed as part of a TWAP (Time-Weighted Average Price) order. Each fill is an individual "slice" of the TWAP execution. Only fills with a non-null `twapId` are returned.

## POST Request

<table><thead><tr><th width="161.9998779296875">Field</th><th width="119">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type</code></td><td>string</td><td>Must be <code>"userTwapSliceFills"</code></td></tr><tr><td><code>user</code></td><td>string</td><td>Ethereum address (0x-prefixed, 42 characters)</td></tr></tbody></table>

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://api.hydromancer.xyz/info \
  -H "Authorization: Bearer $HYDROMANCER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "userTwapSliceFills",
    "user": "0x0000000000000000000000000000000000000000"
  }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import os

response = requests.post(
    'https://api.hydromancer.xyz/info',
    json={
        'type': 'userTwapSliceFills',
        'user': '0x0000000000000000000000000000000000000000'
    },
    headers={
        'Authorization': f'Bearer {os.environ.get("HYDROMANCER_API_KEY")}',
        'Content-Type': 'application/json'
    }
)

print(response.json())
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
import axios from 'axios';

try {
    const response = await axios.post('https://api.hydromancer.xyz/info', {
        type: 'userTwapSliceFills',
        user: '0x0000000000000000000000000000000000000000'
    }, {
        headers: {
            'Authorization': `Bearer ${process.env.HYDROMANCER_API_KEY}`,
            'Content-Type': 'application/json'
        }
    });

    console.log(response.data);
} catch (error) {
    console.error('Error:', error.message);
}
```

{% endtab %}
{% endtabs %}

***

## Response Fields

| Field           | Type    | Description                                            |
| --------------- | ------- | ------------------------------------------------------ |
| `coin`          | string  | Asset symbol                                           |
| `px`            | string  | Fill price                                             |
| `sz`            | string  | Fill size                                              |
| `side`          | string  | `"A"` (sell) or `"B"` (buy)                            |
| `time`          | int     | Fill timestamp (ms)                                    |
| `startPosition` | string  | Position size before the fill                          |
| `dir`           | string  | Direction (e.g. `"Open Long"`, `"Open Short"`)         |
| `closedPnl`     | string  | Closed PnL from this fill                              |
| `hash`          | string  | Transaction hash (always `0x000...000` for TWAP fills) |
| `oid`           | int     | Order ID                                               |
| `crossed`       | boolean | Whether the order crossed the spread                   |
| `fee`           | string  | Fee amount                                             |
| `tid`           | int     | Trade ID                                               |
| `cloid`         | string? | Client order ID (optional)                             |
| `builderFee`    | string? | Builder fee (optional)                                 |
| `deployerFee`   | string? | Deployer fee (optional, HIP-3 fills only)              |
| `feeToken`      | string  | Fee token (e.g. `"USDC"`)                              |
| `twapId`        | int     | TWAP order ID                                          |
| `txIndex`       | int     | Transaction index                                      |

<details>

<summary>Response</summary>

```json
[
{
"coin": "BTC",
"px": "67950.00",
"sz": "0.00108",
"side": "A",
"time": 1772096268036,
"startPosition": "-1.78931",
"dir": "Open Short",
"closedPnl": "0.00",
"hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"oid": 330647838320,
"crossed": true,
"fee": "0.033023",
"tid": 792432692404914,
"feeToken": "USDC",
"twapId": 1628419,
"txIndex": 12
}
]
```

</details>

<details>

<summary>Notes</summary>

* Returns at most 2000 most recent TWAP slice fills, ordered by time descending
* TWAP fills always have a hash of `0x000...000`
* The `twapId` field identifies which TWAP order the slice belongs to — multiple fills can share the same `twapId`
* Unlike Hyperliquid's native endpoint which wraps fills as `{ "fill": {...}, "twapId": N }`, Hydromancer returns fills in the same flat format as `userFills`

</details>
