Free Hyperliquid market data: a JSON file for every asset
Updated Nov 13, 2026 · 6 min read
Senpi’s free, key-less JSON for 301 Hyperliquid perps: endpoints, every field with units, update cadence, Python examples and how to credit it.
Is there free Hyperliquid market data you can use without an API key? Yes. Senpi publishes a JSON file for every Hyperliquid perpetual it covers, 301 on Nov 13, 2026 (179 crypto perps and 122 XYZ markets: stocks, indices, commodities, currencies and pre-IPO names), plus one file that lists them all. Each file carries the market numbers, the Senpi Signals score, Senpi’s written read and what the top traders hold. The files refresh every few minutes and need no key or sign-up.
Key takeaways
- Two endpoints: senpi.ai/assets.json for every asset at once, and senpi.ai/assets/<symbol>/data.json for one asset in depth.
- Symbols are written as Hyperliquid prints them: BTC, kPEPE, xyz:TSLA. The same symbol opens the asset’s page at senpi.ai/assets/<symbol>.
- Ratios are fractions (0.036 = 3.6%); money is in USD; times are UTC in ISO 8601.
- Free to use with a link back to the asset page; it is market information, not investment advice.
The two endpoints
| File | What it holds | Size |
|---|---|---|
| senpi.ai/assets.json | Every asset (301 today), ranked by Senpi Signals score: symbol, name, asset class, listing state, page and file links, signals and the main market numbers | about 135 KB |
| senpi.ai/assets/<symbol>/data.json, for example BTC or xyz:ANT | One asset: the market numbers plus oracle, premium and funding percentile, the signals, Senpi’s written read, top-trader positioning with the five largest positions, and follow-up questions | about 5 KB |
In assets.json, each entry carries assetClass (crypto, stock, commodity, index, fx or pre_ipo; on Nov 13, 2026: 179 crypto, 103 stock, 9 commodity, 5 index, 3 fx, 2 pre_ipo) and listingState (listed, or pre_ipo for names such as xyz:ANT that trade before their IPO). Every page on senpi.ai/assets has the same data behind it.
Field reference
market
| Field | Meaning | Example (BTC) |
|---|---|---|
| mark | Mark price in USD | 68983.9 |
| oracle | Oracle price in USD (asset files only) | 69006.3 |
| premium | (mark − oracle) ÷ oracle, as a fraction (asset files only) | -0.00032 = −0.03% |
| change24h | Change over 24 hours, as a fraction | -0.036 = −3.6% |
| volume24h | Traded volume over 24 hours, USD | 5128314208 |
| openInterest | Open interest, USD | 2750190582 |
| fundingHourly | Current hourly funding rate, as a fraction; positive = longs pay shorts | 0.0000125 = 0.00125% an hour |
| fundingApr | fundingHourly × 8,760, as a fraction | 0.1095 = 10.95% a year |
| fundingPercentile30d | Where the current funding rate sits within its last 30 days, 0 to 100 (asset files only) | 60.1 |
| maxLeverage | Maximum leverage Hyperliquid allows | 40 |
signals
| Field | Meaning | Example (BTC) |
|---|---|---|
| score | Senpi Signals score, 0 to 100: how strongly the reads on the asset point one way (not a forecast) | 14 |
| stance | Which side is in control | Shorts pressing |
| driver | The read behind the score | Top traders short |
| because | The evidence in one line | shorts at 70% of top-trader notional ($796M) |
positioning (asset files only)
| Field | Meaning | Example (BTC) |
|---|---|---|
| long, short | USD notional held long and short by the top traders Senpi tracks | 242396755, 553288948 |
| longWallets, shortWallets | How many of those wallets are long and short | 48, 43 |
| shift.h1, h4, h24 | Change in that positioning over 1, 4 and 24 hours, USD | 37232316 |
| largest[] | The five largest positions: wallet (shortened), side, notionalUsd, entryPx, leverage, liqPx, liqDistancePct, ageS (seconds open, null if unknown), roePct | short, $102M, entry 77924.2, 5x |
read and questions (asset files only)
| Field | Meaning | Example |
|---|---|---|
| read.headline | Senpi’s current read in one line | Shorts control BTC’s price structure … |
| read.body[] | The full read, one paragraph per item | 10 paragraphs |
| read.watch | What would change the read | More top wallets joining the short side. |
| read.asOf | When the read was last written (it can be older than the market numbers) | 2026-11-13T19:19:39Z |
| questions[] | Four follow-up questions you can ask Senpi about the asset | Who holds the largest ANT shorts… |
How fresh the data is
Every file has an asOf time: the snapshot it was built from. Snapshots are taken every few minutes, and a file can be served from cache for a few minutes more, so read asOf rather than assuming the numbers are live; polling more often than once a minute gains nothing. The written read changes less often and has its own read.asOf. The files hold the current snapshot only; for history, use Hyperliquid’s own info API (candles and funding history), as shown in how to read Hyperliquid market data.
Examples
From the command line, the market block for Bitcoin:
curl -s https://senpi.ai/assets/BTC/data.json | jq '.market'In Python, with the standard library only: the ten markets with the most extreme funding right now, with open interest and Senpi’s stance.
import json, urllib.request
def get(url):
req = urllib.request.Request(url, headers={"User-Agent": "my-script"})
return json.load(urllib.request.urlopen(req, timeout=10))
d = get("https://senpi.ai/assets.json")
print("as of", d["asOf"])
top = sorted(d["assets"], key=lambda a: abs(a["market"]["fundingApr"]), reverse=True)[:10]
for a in top:
m = a["market"]
print(f'{a["symbol"]:<14} funding {m["fundingApr"]:+8.1%} a year OI ${m["openInterest"] / 1e6:8,.1f}M {a["signals"]["stance"]}')And the five largest top-trader positions in Anthropic’s pre-IPO perpetual, with how far each is from liquidation:
import json, urllib.request
req = urllib.request.Request("https://senpi.ai/assets/xyz:ANT/data.json", headers={"User-Agent": "my-script"})
d = json.load(urllib.request.urlopen(req, timeout=10))
p = d["positioning"]
print(d["name"], d["market"]["mark"], "| top traders long", f'${p["long"]:,.0f}', "short", f'${p["short"]:,.0f}')
for pos in p["largest"]:
print(f' {pos["side"]:<5} ${pos["notionalUsd"]:>12,.0f} entry {pos["entryPx"]:<10} {pos["leverage"]}x liquidation {pos["liqDistancePct"]}% away')Get it as CSV
The files are JSON. This script writes every asset to a CSV with one row per market and the snapshot time in the first column, ready for a spreadsheet:
import csv, json, urllib.request
req = urllib.request.Request("https://senpi.ai/assets.json", headers={"User-Agent": "my-script"})
d = json.load(urllib.request.urlopen(req, timeout=10))
cols = ["symbol", "name", "assetClass", "listingState", "mark", "change24h", "volume24h",
"openInterest", "fundingApr", "maxLeverage", "score", "stance", "url"]
with open("senpi-assets.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["asOf"] + cols)
for a in d["assets"]:
row = {**a, **a["market"], "score": a["signals"]["score"], "stance": a["signals"]["stance"]}
w.writerow([d["asOf"]] + [row[c] for c in cols])
print("wrote", len(d["assets"]), "rows to senpi-assets.csv")Using the data
Use it in your own tools, dashboards, research and articles, with the credit line below. Wallet addresses are shortened in the files. The data describes the market; it is not investment advice. The files send no CORS headers, so read them from a script or a server; a web page on another site can’t fetch them directly.
Credit line
Source: Senpi analysis of Hyperliquid market data. Link it to the page of the asset you used (for example senpi.ai/assets/BTC) or to senpi.ai/assets.
<p>Source: <a href="https://senpi.ai/assets/BTC">Senpi analysis of Hyperliquid market data</a></p>Frequently asked questions
Do I need an API key for Senpi’s market data?
No. The JSON files at senpi.ai/assets.json and senpi.ai/assets/<symbol>/data.json are public and need no key or sign-up.
How often does the data update?
Snapshots are taken every few minutes, and a file can come from a cache that is a few minutes older. The asOf field in every file gives the snapshot time in UTC.
Which markets are covered?
Every Hyperliquid perpetual Senpi covers: 301 on Nov 13, 2026, 179 crypto perps on the main order book and 122 XYZ markets (stocks, indices, commodities, currencies and pre-IPO names such as Anthropic).
Can I get historical data?
The files hold the current snapshot. For history, Hyperliquid’s own info API returns candles and funding history; the market data guide shows the calls.
Can I get the data as CSV?
The files are JSON; the Python script on this page writes all markets to a CSV in one run, with the snapshot time in the first column.
Can I use the data in my own product or article?
Yes, with the credit “Source: Senpi analysis of Hyperliquid market data” and a link to the asset’s page on senpi.ai.
Ask about any market in plain English
Ask Senpi’s agent about any market and the positions behind it, in the app or from Claude and ChatGPT.
Related articles
Hyperliquid funding, margin and liquidation explained
How Hyperliquid funding, margin modes and liquidation work, with Nov 2026 numbers and a worked $10,000 example. Fee tiers have their own page.
Hyperliquid fees explained (Nov 2026): maker, taker, builder fees
On a paid Senpi plan you pay only Hyperliquid’s fee. Hyperliquid’s fees on Nov 12, 2026: 0.045% taker, 0.015% maker, tiers, discounts, builder fees by app and HIP-3 rates.
Anthropic stock before the IPO: how to trade ANT now (Nov 2026)
You can trade Anthropic before its IPO: the ANT pre-IPO perp trades 24/7 on Hyperliquid and Senpi, long or short. How it’s priced, what happens at listing, the risks.
Hyperliquid order types: limit, market, stop, TP/SL, TWAP and more
Every Hyperliquid order type and option as of Nov 9, 2026: what each does, when to use it, and whether it pays the maker or the taker fee.