Returns trading aggregates per user: fill count, volume broken down by side, total fees (negative values represent net maker rebates), realized PnL, net funding paid or received, liquidation-fill count, distinct coins traded, and first/last trade timestamps.
Omit `user` for leaderboard mode — returns a paginated list sorted by `sort_by`. Provide `user` for profile mode — returns a single row. Filters `coin` and `dex` compose additively — pass either or both to narrow the scope (`coin=BTC` for one market, `dex=xyz` for one venue, both together for redundancy). A mismatched combination (e.g. `coin=cash:TSLA&dex=xyz`) returns an empty result.
Aggregation windows are fixed via the `interval` parameter — `1h`, `1d`, `1w`, `30d`, or omit for all-time. Data is refreshed hourly, so `1h` lags up to 1h.
Vaults trade as normal accounts, so passing a vault address as `user` returns its trading performance — pair with `/v1/hyperliquid/vaults` for depositor-side stats.
**Query Parameters:**
- **user**: Filter by address<br>Single value or array of values* (separate multiple values with `,`)<br>*Plan restricted.
- **interval**: Lookback window for user statistics (1 hour, 1 day, 1 week, 30 days). Omit for all-time.
- **sort_by**: No description.
- **coin**: Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).<br>Single value or array of values* (separate multiple values with `,`)<br>*Plan restricted.
- **dex**: DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.<br>Single value or array of values* (separate multiple values with `,`)<br>*Plan restricted.
- **limit**: Number of items* returned in a single request.<br>*Plan restricted.
- **page**: Page number to fetch.<br>Empty `data` array signifies end of results.
**Responses:**
- **200** (Success): Successful Response
- Content-Type: `application/json`
- **Response Properties:**
- **request_time**: ISO 8601 datetime string
- **Example:**
```json
{
"data": [
{
"user": "string",
"coin": "unknown_type",
"dex": "unknown_type",
"total_funding": 1.5,
"volume_sold": 1.5,
"transactions": 1,
"realized_pnl": 1.5,
"volume_bought": 1.5,
"liquidation_fills": 1,
"last_trade": "string",
"interval": "unknown_type",
"buys": 1,
"total_volume": 1.5,
"sells": 1,
"first_trade": "string",
"total_fees": 1.5,
"coins_traded": 1
}
],
"statistics": {
"elapsed": 1.5,
"rows_read": 1.5,
"bytes_read": 1.5
},
"pagination": {
"previous_page": 1,
"current_page": 1
},
"request_time": "string",
"duration_ms": 1.5,
"results": 1.5
}
```
- **400**: Client side error
- Content-Type: `application/json`
- **Response Properties:**
- **Example:**
```json
{
"status": "unknown_type",
"code": "authentication_failed",
"message": "string"
}
```
- **401**: Authentication failed
- Content-Type: `application/json`
- **Response Properties:**
- **Example:**
```json
{
"status": "unknown_type",
"code": "authentication_failed",
"message": "string"
}
```
- **403**: Forbidden
- Content-Type: `application/json`
- **Response Properties:**
- **Example:**
```json
{
"status": "unknown_type",
"code": "authentication_failed",
"message": "string"
}
```
- **404**: Not found
- Content-Type: `application/json`
- **Response Properties:**
- **Example:**
```json
{
"status": "unknown_type",
"code": "authentication_failed",
"message": "string"
}
```
- **500**: Server side error
- Content-Type: `application/json`
- **Response Properties:**
- **Example:**
```json
{
"status": "unknown_type",
"code": "bad_database_response",
"message": "string"
}
```