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

# List fills (All = Spot + Perp)

> Returns fills across Spot and Perp. Each fill includes `priorityGas` (priority fee paid, null if none) and `block_number` (Hyperliquid block number, null for older fills).

### Order type (opt-in)
Set `include_order_type=true` to add exactly one field to each fill row:
- `orderType` (string or null): the originating order's type, resolved server-side from the order status by (user, oid). Observed values include `Limit`, `Market`, `Stop Market`, `Take Profit Limit`; treat this as an open set, not a fixed enum.
- With the default `include_order_type=false` the response is **byte-identical to before**: the key is absent (not null), so existing integrations are unaffected.
- `orderType` is `null` when the originating order status is unknown: orders placed before 2026-06-27 (start of order-status coverage), plus a small share of gaps in that dataset.
- Cost: adds roughly tens of milliseconds per page of 1000 fills.

Example:

```bash
curl -X 'GET' \
  'https://api.hypedexer.com/fills/?user=0x079f56bfd27f71cbd278c27c7b121e7ef180a5be&limit=1000&include_order_type=true' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY'
```

Each returned fill row gains exactly one field:

```json
[
  { "...": "existing fill fields unchanged", "oid": 50583850248, "orderType": "Limit" },
  { "...": "existing fill fields unchanged", "oid": 31207118820, "orderType": null }
]
```



## OpenAPI

````yaml /api-reference/openapi.json get /fills/
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.
  - name: Market history
    description: >-
      Historical Hyperliquid market microstructure: best bid/offer aggregates
      and spread statistics (April 2024 to February 2026), and the order book
      reconstructed minute by minute: April 2024 to February 2026 from our
      archive (top ~20 levels per side) and, since 23 September 2026, the full
      order book replayed from our own node. Served from the EU region.
paths:
  /fills/:
    get:
      tags:
        - Fills
      summary: List fills (All = Spot + Perp)
      description: >-
        Returns fills across Spot and Perp. Each fill includes `priorityGas`
        (priority fee paid, null if none) and `block_number` (Hyperliquid block
        number, null for older fills).


        ### Order type (opt-in)

        Set `include_order_type=true` to add exactly one field to each fill row:

        - `orderType` (string or null): the originating order's type, resolved
        server-side from the order status by (user, oid). Observed values
        include `Limit`, `Market`, `Stop Market`, `Take Profit Limit`; treat
        this as an open set, not a fixed enum.

        - With the default `include_order_type=false` the response is
        **byte-identical to before**: the key is absent (not null), so existing
        integrations are unaffected.

        - `orderType` is `null` when the originating order status is unknown:
        orders placed before 2026-06-27 (start of order-status coverage), plus a
        small share of gaps in that dataset.

        - Cost: adds roughly tens of milliseconds per page of 1000 fills.


        Example:


        ```bash

        curl -X 'GET' \
          'https://api.hypedexer.com/fills/?user=0x079f56bfd27f71cbd278c27c7b121e7ef180a5be&limit=1000&include_order_type=true' \
          -H 'accept: application/json' \
          -H 'X-API-Key: YOUR_API_KEY'
        ```


        Each returned fill row gains exactly one field:


        ```json

        [
          { "...": "existing fill fields unchanged", "oid": 50583850248, "orderType": "Limit" },
          { "...": "existing fill fields unchanged", "oid": 31207118820, "orderType": null }
        ]

        ```
      parameters:
        - name: user
          in: query
          description: User address
          schema:
            type: string
        - name: coin
          in: query
          description: Coin symbol
          schema:
            type: string
        - name: side
          in: query
          description: Side (B=Buy, A=Sell)
          schema:
            type: string
            enum:
              - B
              - A
        - name: size_usd
          in: query
          description: Minimum notional amount in USD
          schema:
            type: number
        - name: start_time
          in: query
          description: ISO 8601 UTC start time
          schema:
            type: string
            format: date-time
        - name: end_time
          in: query
          description: ISO 8601 UTC end time
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: Max items to return
          schema:
            type: integer
            default: 100
        - name: cursor
          in: query
          description: 'Pagination cursor (format: `<time_ms>:<tid>`)'
          schema:
            type: string
        - name: order
          in: query
          description: Sort order
          schema:
            type: string
            default: DESC
            enum:
              - ASC
              - DESC
        - name: has_priority_gas
          in: query
          required: false
          description: >-
            Filter by priority gas: `true` = only fills with priorityGas > 0,
            `false` = only fills without, omit = no filter.
          schema:
            type: boolean
            nullable: true
        - name: include_order_type
          in: query
          required: false
          description: >-
            Set to `true` to add `orderType` to each fill: the originating
            order's type (e.g. `Limit`, `Market`, `Stop Market`, `Take Profit
            Limit`), resolved server-side from the order status by (user, oid);
            `null` when unknown. Default `false`: response unchanged, key
            absent.
          schema:
            type: boolean
            default: false
        - name: X-API-Key
          in: header
          schema:
            type: string
      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: Fetched 2 fills (compact)
                data:
                  - user: '0xbe21f22f20e18ecaf7556a8e29bbd5114b7949c8'
                    coin: '@256'
                    coinMeaning: '@256'
                    px: 0.020206
                    sz: 711.79
                    side: B
                    time: '2026-09-18T00:04:59.960999'
                    startPosition: 477.9099172
                    dir: Buy
                    closedPnl: 0
                    hash: >-
                      0xf88c6b38bd36883dfa060444a28a69020256001e5839a7109c55168b7c3a6228
                    oid: 548310214365
                    tid: 1011741022583722
                    fee: 0.47832277
                    feeToken: SEDA
                    typeTrade: spot
                    isLiquidation: 0
                    liquidationRole: none
                    liqMarkPx: null
                    liqMethod: null
                    liquidatedUser: null
                    notional: 14.382428739999998
                    priorityGas: null
                  - user: '0xbf66cb8b987fee1f6526bb6ee04345d36405f913'
                    coin: '@256'
                    coinMeaning: '@256'
                    px: 0.020206
                    sz: 711.79
                    side: A
                    time: '2026-09-18T00:04:59.960999'
                    startPosition: 11282867.7634304
                    dir: Sell
                    closedPnl: -1.04983943
                    hash: >-
                      0xf88c6b38bd36883dfa060444a28a69020256001e5839a7109c55168b7c3a6228
                    oid: 548309126284
                    tid: 1011741022583722
                    fee: 0.00287648
                    feeToken: USDC
                    typeTrade: spot
                    isLiquidation: 0
                    liquidationRole: none
                    liqMarkPx: null
                    liqMethod: null
                    liquidatedUser: null
                    notional: 14.382428739999998
                    priorityGas: null
                total_count: 64891
                execution_time_ms: 2017.83
                next_cursor: '1789689899961:1011741022583722'
                has_more: true
components:
  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.

````

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