IRONFLOW
SANDBOXDATA APILIVEPRICINGDOCSGET_API_KEY
GET_API_KEY
GUIDES · NOVEMBER 2026 · 4 MIN READ

Hyperliquid userFills limit: get more than 10,000 fills

Hyperliquid's userFills returns at most 2,000 fills, and userFillsByTimeonly reaches a wallet's 10,000 most recent. Older fills are gone from the API. Ironflow's GET /v1/fills?address= pages through every fill a wallet made since 25 May 2025, 1,000 per page.

API
GET https://api.ironflow.sh/v1/fills?address=0x... no key
SQL
SELECT ... FROM hl.wallet_fills WHERE address = '0x...'
MCP
get_fills on https://mcp.ironflow.sh/mcp

Free key14 days of history at 60 requests a minute. Without a key, the API reaches 24 hours back.

By requesting a key you agree to the Terms and API terms; see the Privacy Policy. We may email you when your key keeps hitting its limits; you can opt out at any time.

CONTENTS
  1. The short version
  2. Hyperliquid's limits
  3. Who hits 10,000
  4. Every fill over REST
  5. SQL
  6. How far back by plan
  7. Questions
  8. Related guides
  9. References

The short version#

  • Hyperliquid: 2,000 fills per call and the 10,000 most recent per wallet.
  • Every fill: /v1/fills?address=, oldest first, with a cursor. History starts on 25 May 2025.
  • Who needs it: 221 wallets made more than 10,000 fills in the 24 hours to 12 November 2026.

Hyperliquid's limits#

RequestLimit
userFillsAt most the 2,000 most recent fills. No time range.
userFillsByTimeAt most 2,000 per response. Only the 10,000 most recent fills are available.
userTwapSliceFillsAt most the 2,000 most recent TWAP slice fills.

From the info endpoint page. Each of these also costs weight 20 plus more for every 20 fills returned, out of 1,200 per minute per IP (rate limits).

Who hits 10,000#

In the 24 hours to 21:10 UTC on 12 November 2026, 95,256 wallets traded on Hyperliquid. 825 made more than 2,000 fills and 221 more than 10,000. The busiest made about 597,000. For those 221, userFillsByTime cannot reach back even one day.

Every fill over REST#

python
import os
import time
from datetime import datetime, timezone

import requests

ADDRESS = "0xYOUR_ADDRESS"
KEY = os.environ.get("IRONFLOW_KEY")  # optional
headers = {"Authorization": f"Bearer {KEY}"} if KEY else {}
params = {"address": ADDRESS, "from": "-24h", "limit": 1000}  # "-14d" with a free key

fills = []
while True:
    r = requests.get("https://api.ironflow.sh/v1/fills", params=params, headers=headers, timeout=30)
    if r.status_code == 429:
        time.sleep(int(r.headers.get("Retry-After", 5)))
        continue
    r.raise_for_status()
    body = r.json()
    fills += body["data"]
    if not body["pagination"]["has_more"]:
        break
    params["cursor"] = body["pagination"]["next_cursor"]


def utc(ms):
    return datetime.fromtimestamp(ms / 1000, timezone.utc).strftime("%Y-%m-%d %H:%M")


print(len(fills), "fills,", utc(fills[0]["timestamp"]), "to", utc(fills[-1]["timestamp"]), "UTC")

Keyless, for one of those wallets on 12 November 2026:

text
10606 fills, 2026-11-11 21:50 to 2026-11-12 21:30 UTC
  • With an address there is no cap on the window per request, only your plan's history.
  • Each fill has price, size, side, dir, fee, realized_pnl, oid, tid and hash.
  • Add market=BTC-PERP for one market. Endpoint reference: list fills.

SQL#

hl.wallet_fills holds the last 92 days sorted by wallet, so one address reads fast. Fills per hour:

bash
curl -X POST https://api.ironflow.sh/v1/query \
  -H "Content-Type: application/json" \
  -d @- <<'EOF'
{"sql": "SELECT toStartOfHour(ts) AS hour, count() AS fills FROM hl.wallet_fills WHERE address = '0xYOUR_ADDRESS' AND ts > now() - INTERVAL 1 DAY GROUP BY hour ORDER BY hour DESC LIMIT 3"}
EOF

For totals over months use hl.wallet_daily. Tables and limits are in the SQL guide.

How far back by plan#

AccessFill historyLimit
No key24 hours30 requests a minute, 300 a day
Free key14 days60 a minute
Explorer, $49 for 30 days90 days100 a minute
Builder, $149 for 30 days1 year1,000 a minute
EnterpriseEvery fill since 25 May 202510,000 a minute

The other route is Hyperliquid's S3 archive: node_fills_by_block has every fill of every wallet, in requester-pays buckets you download and filter yourself.

Questions#

What is the userFills limit on Hyperliquid?#

userFills returns at most a wallet's 2,000 most recent fills. userFillsByTime returns at most 2,000 per response, and only the 10,000 most recent fills are available to it. Older fills cannot be read from the info API.

How do I get more than 10,000 fills for a Hyperliquid wallet?#

Use an indexed API. Ironflow's GET https://api.ironflow.sh/v1/fills?address=0x... pages through every fill of that wallet, 1,000 per page, oldest first, from 25 May 2025 within your plan's history: 24 hours with no key, 14 days with a free key.

How many Hyperliquid wallets pass 10,000 fills?#

In the 24 hours to 21:10 UTC on 12 November 2026, 221 of 95,256 active wallets made more than 10,000 fills, so userFillsByTime could not reach back even one day for them. The busiest made about 597,000.

Can I rebuild a wallet's fills from Hyperliquid's S3 archive?#

Yes. node_fills_by_block in the requester-pays hl-mainnet-node-data bucket has every fill of every wallet, with older periods in node_fills. Download each hour, decompress it and keep the rows for the address. You pay the transfer.

Related guides#

  • Hyperliquid trades and fills data: API, archive and history by wallet
  • Hyperliquid historical liquidations API
  • Hyperliquid data sources compared
  • Hyperliquid SQL: query every fill, liquidation and transfer

References#

  • Hyperliquid docs: Info endpoint. userFills, userFillsByTime and userTwapSliceFills limits.
  • Hyperliquid docs: Rate limits. Request weights per IP.
  • Hyperliquid docs: Historical data. node_fills_by_block on S3.

24 hours of fills need no key. A free key reaches 14 days, by email, no card.

Free key14 days of history at 60 requests a minute. Without a key, the API reaches 24 hours back.

By requesting a key you agree to the Terms and API terms; see the Privacy Policy. We may email you when your key keeps hitting its limits; you can opt out at any time.

ON THIS PAGE
  1. The short version
  2. Hyperliquid's limits
  3. Who hits 10,000
  4. Every fill over REST
  5. SQL
  6. How far back by plan
  7. Questions
  8. Related guides
  9. References

Automated derivatives trading is high-risk: you can lose all of your funds. Ironflow is trading software, not financial advice, and never holds your funds. Not available to U.S. persons or in sanctioned jurisdictions. See Risk Disclosure.

Not affiliated with Hyperliquid or Pear Protocol.

IRONFLOW

© 2026 IRONFLOW

Product

IronboxAPI and MCPPricingNodesTerminal

Data

Live liquidationsLiquidation mapLiquidation heatmapHIP-4 outcomesTop tradersDatasets

Developers

DocsGuidesFree API keyStatusGitHub

Company

TermsPrivacyRiskAcknowledgements