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

# Aggregated user fills

> Time-bucketed trade history for a wallet: one row per bucket, market and side. A TWAP of hundreds of sub-fills collapses into one point, which keeps long histories chartable.



## OpenAPI

````yaml /api-reference/openapi.json get /fills/user/{user_address}/aggregated
openapi: 3.0.3
info:
  title: 'Hypedexer API: Indexed Data'
  version: 1.0.0
  description: >-
    API to query indexed Hyperliquid trading data.


    This API provides access to stored/indexed trading data:

    - **Fills**: Executed orders and fills (Spot-only or All = Spot + Perp)

    - **Analytics**: Aggregations and statistics based on indexed data

    - **Completed Trades**: Trade objects and their related fills

    - **Users**: User overviews, performance and activity

    - **Social Trading**: Per-trader equity curve, PnL calendar, account
    leverage and top trades

    - **Funding**: Funding rate history, user funding payments, predicted rates

    - **Liquidations**: Liquidation events with filters

    - **Overview**: Market dashboard metrics (volume, fees, traders, PnL)

    - **Spot**: Spot token metadata, pairs, and auctions

    - **TWAPs**: TWAP orders, execution stats and fills

    - **Vaults**: Vault details, summaries, equity, ledger


    > Note: No live streaming. Responses are computed from indexed data.
servers:
  - url: https://api.hypedexer.com
    description: Production, routed to the nearest region (EU or JP)
security:
  - ApiKeyAuth: []
tags:
  - name: Fills
    description: Fills endpoints.
  - name: Analytics
    description: Aggregations and stats.
  - name: Completed Trades
    description: Trades and fills.
  - name: Users
    description: User profiles.
  - name: Funding
    description: Funding rates and payments (HL-compatible).
  - name: Liquidations
    description: Liquidation events.
  - name: Overview
    description: Market dashboard metrics.
  - name: Spot
    description: Spot token metadata, pairs and auctions.
  - name: TWAPs
    description: TWAP orders, stats and fills.
  - name: Vaults
    description: Vault details, summaries, equity and ledger.
  - name: Social Trading
    description: >-
      Per-trader equity, PnL calendar, performance, account leverage and top
      trades.
paths:
  /fills/user/{user_address}/aggregated:
    get:
      tags:
        - Fills
      summary: Aggregated user fills
      description: >-
        Time-bucketed trade history for a wallet: one row per bucket, market and
        side. A TWAP of hundreds of sub-fills collapses into one point, which
        keeps long histories chartable.
      parameters:
        - name: user_address
          in: path
          required: true
          schema:
            type: string
            pattern: ^0x[0-9a-fA-F]{40}$
            description: User address (0x + 40 hex)
            title: User Address
          description: User address (0x + 40 hex)
        - name: interval
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/FillAggInterval'
            description: 'Time bucket size: 1m, 5m, 15m, 1h, 4h, 1d.'
            default: 15m
          description: 'Time bucket size: 1m, 5m, 15m, 1h, 4h, 1d.'
        - name: start_time
          in: query
          required: false
          schema:
            description: 'Start of range (ISO UTC). Default: end_time - 30d.'
            title: Start Time
            type: string
            format: date-time
            nullable: true
          description: 'Start of range (ISO UTC). Default: end_time - 30d.'
        - name: end_time
          in: query
          required: false
          schema:
            description: 'End of range (ISO UTC). Default: now.'
            title: End Time
            type: string
            format: date-time
            nullable: true
          description: 'End of range (ISO UTC). Default: now.'
        - name: coin
          in: query
          required: false
          schema:
            description: Filter by a single market/coin
            title: Coin
            type: string
            nullable: true
          description: Filter by a single market/coin
        - name: split_sides
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              true: one row per (bucket, coin, side) — chart-correct (buy/sell
              distinct). false: merge buys+sells into one row per (bucket,
              coin).
            default: true
            title: Split Sides
          description: >-
            true: one row per (bucket, coin, side) — chart-correct (buy/sell
            distinct). false: merge buys+sells into one row per (bucket, coin).
        - name: order
          in: query
          required: false
          schema:
            type: string
            description: 'Sort by bucket time: ASC or DESC'
            default: DESC
            title: Order
            enum:
              - ASC
              - DESC
          description: 'Sort by bucket time: ASC or DESC'
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 50000
            minimum: 1
            description: Max aggregated buckets returned
            default: 10000
            title: Limit
          description: Max aggregated buckets returned
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                  total_count:
                    type: integer
                    nullable: true
                  next_cursor:
                    type: string
                    nullable: true
                  has_more:
                    type: boolean
                    nullable: true
              example:
                success: true
                message: Aggregated 2 buckets for 0x010461c1... (interval=1h)
                data:
                  - t: 1789696800000
                    interval: 1h
                    coin: APT
                    coinMeaning: APT
                    side: A
                    dir: Sell
                    px: 0.6199
                    sz: 248.23
                    notional: 153.877777
                    fee: 0
                    closedPnl: 0
                    fills: 1
                    lastFillTime: 1789696800547
                  - t: 1789696800000
                    interval: 1h
                    coin: MINA
                    coinMeaning: MINA
                    side: B
                    dir: Buy
                    px: 0.09549193333333332
                    sz: 180
                    notional: 17.188547999999997
                    fee: 0
                    closedPnl: 0.223212
                    fills: 2
                    lastFillTime: 1789696800614
                total_count: 2
                execution_time_ms: 109.05
                next_cursor: null
                has_more: true
components:
  schemas:
    FillAggInterval:
      type: string
      enum:
        - 1m
        - 5m
        - 15m
        - 1h
        - 4h
        - 1d
      description: Time bucket size for GET /fills/user/{address}/aggregated.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Your Hypedexer API key. Create one in the console at
        https://app.hypedexer.com. `Authorization: Bearer <key>` and the
        `api_key` query parameter are accepted as well.

````