Aperiodic/
marketsEvery perp on Binance, OKX and HyperliquidliquidityOpen interest, volume and depth, coin by coinunusual activityThe perps acting least like their own day
S&P 500 (SP500) perps on Hyperliquid and OKX, from Aperiodic's own 5-minute bars, free and 15 minutes behind. Every perp, A–Z →

Every number here is 15 minutes behind

5m bar 23:20–23:25 UTC

Free, from Aperiodic's own data. The hatched end of each chart marks the 15 minutes left out.

5m bars, 15 minutes behind. The newest runs 23:20–23:25 UTC; the next lands around 23:45 UTC, and the line under this bar fills until it does. Bars are labelled by their open and keyed on capture time: when Aperiodic received each trade, quote and update.

Every metric moves every 15 seconds, just as delayed, each a rolling window over the last 5 minutes, not a 15-second bar; funding, open interest and basis every minute, the finest they are measured at. The day's medians and means roll on with the 5m bars.

1664 perpetuals on Binance, OKX and Hyperliquid.

5m bars received in the last 24h: Hyperliquid 99.7% · OKX 35.8% (1 with gaps).

Plans with live data and more history →
23:25:00 UTC
Expand
Markets/All perps/SP500

S&P 500 perpsSP500

Index perp · Hyperliquid, OKX · #24 by volume

7,527.1-1.02% 24h

Hyperliquid xyz USDC · 24h 7,499.1 – 7,648.8

24h volume
$555.9M
#24 of 914
Open interest
$473.8M
−2.1% contracts · 24h
Spread
0.13 bps
median · 24h
Size at best price
$105.3K
mean · 24h
Net taker flow
−$18.8M
every contract · 24h
Funding
−0.0052%
per period · HL

Aperiodic metrics · SP500 · 24 h

Every metric on SP500, bar by bar →

Are takers buying or selling SP500?

Flow

Takers sold $19.9M more than they bought on Hyperliquid and OKX over 24 h; the heaviest hour, 14:25 UTC, saw $11.4M.

+$11.4M0−$11.4M
23:25 UTCnow

flow.volume_delta_notionalbusiest contract on each venue · hourly · 24 h

What does it cost to cross SP500's spread?

L1 liquidity

0.13 bps median on Hyperliquid xyz USDC, tighter than 95% of the 200 most traded perps.

  • #1BTC0.015 bps
  • #2ETH0.051 bps
  • #3SOXL1.56 bps
  • #5SOL1.25 bps
  • #10AKE3.18 bps
  • #24SP5000.13 bps
  • #25XYZ:XYZ1000.35 bps
  • #50MUU5.64 bps
  • #100MVLL8.76 bps
  • #200AIN2.70 bps

l1_liquidity.spread_bpsbusiest contract · median · 24 h

How much size waits at SP500's best price?

L1 liquidity

$105.3K at the best bid and ask on Hyperliquid xyz USDC, on average, deeper than 94% of the 200 most traded perps.

  • #1BTC$651.7K
  • #2ETH$269.8K
  • #3SOXL$86.9K
  • #5SOL$157.5K
  • #10AKE$553
  • #24SP500$105.3K
  • #25XYZ:XYZ100$165.1K
  • #50MUU$22.4K
  • #100MVLL$13.7K
  • #200AIN$180

l1_liquidity.total_dollar_depthbusiest contract · mean · 24 h

Which way is SP500's book leaning?

L2 imbalance

Leaned to the ask in 18 of 24 hours on Hyperliquid xyz USDC; 48% bids over the day.

64% bid036% bid
23:25 UTCnow

l2_imbalance.imbalance_ratio_10Hyperliquid xyz USDC · top 10 levels · hourly

Where does SP500 trade?

OHLCV

Hyperliquid xyz USDC took 100% of $555.9M traded in 24 h.

volume sharespread

  • Hyperliquid xyz USDC100%0.13
  • OKX USDT0.0%2.37

ohlcv.volume_notionaleach contract · 24 h

Does SP500 trade away from its index?

Basis

8.50 bps below its index on Hyperliquid xyz USDC now; 0.30 bps to 5.67 bps below over 24 h.

+5.67 bps0−5.67 bps
23:25 UTCnow

basis.basis_bpsHyperliquid xyz USDC · hourly

Is leverage building in SP500?

Open interest

$473.8M open across 2 contracts: −2.1% in contracts, −2.5% in dollars over 24 h.

$487.9M$449.0M
23:25 UTCnow

open_interest.open_interestbusiest contract on each venue · hourly

Who pays funding on SP500?

Funding

Longs pay on 0 of 2 contracts; Hyperliquid xyz USDC charges −0.0052% a period (Hyperliquid’s are hourly).

  • Hyperliquid xyz USDC−0.0052%
  • OKX USDT+0.0000%

← shorts paylongs pay →

funding.funding_rateeach contract · per funding period · now

SP500's 2 contracts · now

Named by Atlas →
ContractPrice24hVolume 24hOpen interestFundingSpreadCharts
Hyperliquid xyz USDCperpetual-XYZ:SP500-USDC:USDC7,527.1-1.02%$555.8M$473.5M−0.0052%0.13Charts →
OKX USDTperpetual-US500-USDT:USDT7,531.6-1.10%$146.5K$323.1K+0.0000%2.37Charts →

History · a year of 5m bars per series · busiest contract on each venue

Every chart for SP500 →
Python
import os
from datetime import date

from aperiodic import get_derivative_metrics, get_metrics

# aperiodic.io/markets: SP500 on Hyperliquid and OKX
# 5m bars, 2025-11-12 to 2026-11-12. Install: pip install "aperiodic[polars]"
# Needs an API key (https://aperiodic.io/home/api) on a plan with flow, basis, open_interest, funding (Pro) and l1_liquidity, l2_imbalance (Prime).
# OKX: okx-perps l1_liquidity and l2_liquidity count contracts, not coins (BTC-USDT-SWAP is 0.01 BTC each). Multiply by the contract size to match the page.
API_KEY = os.environ["APERIODIC_API_KEY"]
# timestamp="true" keys bars on capture time, as on the page; "exchange" keys them on exchange time.
PERIOD = dict(
    interval="5m",
    timestamp="true",
    start_date=date(2025, 11, 12),
    end_date=date(2026, 11, 12),
)
CONTRACTS = [
    ("hyperliquid-perps", "perpetual-XYZ:SP500-USDC:USDC"),
    ("okx-perps", "perpetual-US500-USDT:USDT"),
]

frames = {}
for exchange, symbol in CONTRACTS:
    frames["flow", exchange, symbol] = get_metrics(
        api_key=API_KEY,
        metric="flow",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )
    frames["l1_liquidity", exchange, symbol] = get_metrics(
        api_key=API_KEY,
        metric="l1_liquidity",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )
    frames["l2_imbalance", exchange, symbol] = get_metrics(
        api_key=API_KEY,
        metric="l2_imbalance",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )
    frames["basis", exchange, symbol] = get_derivative_metrics(
        api_key=API_KEY,
        metric="basis",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )
    frames["open_interest", exchange, symbol] = get_derivative_metrics(
        api_key=API_KEY,
        metric="open_interest",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )
    frames["funding", exchange, symbol] = get_derivative_metrics(
        api_key=API_KEY,
        metric="funding",
        exchange=exchange,
        symbol=symbol,
        **PERIOD,
    )

Next by volume

All 914 perps, A–Z →
  • WTI crude oilCL
  • BNB
  • BARD
  • PepePEPE
  • DogecoinDOGE
  • NEAR
  • XYZ:XYZ100
  • Brent crude oilBZ
  • Nasdaq 100 ETFQQQ
  • SKHY
  • AMD
  • SNXX

Every number is from Aperiodic's own 5-minute bars, 15 minutes behind.

Aperiodic

Built from hundreds of terabytes of raw data and distilled into point-in-time metrics you can pull as parquet files. Plus the raw trades, quotes and derivatives data behind them.

Use Cases
  • Improve your backtest
  • Find new alpha
  • Execute smarter
Indices
  • All indices
  • Aperiodic Cost Index
  • Aperiodic Depth Index
  • Aperiodic Impact Index
Metrics
  • Metrics library
  • Data Catalog
  • Free data
  • Live markets dashboard
  • Every perp, A–Z
  • Global Liquidity
  • Unusual activity
  • Order Flow
  • L1 & L2
  • Derivatives
  • RWA
  • Live funding rates
  • Raw Data
Developers
  • Docs
  • API Docs
  • MCP Server
  • Notebooks
  • Integrations
  • For AI Agents
  • Atlas Security Master
  • TParquet
  • Binance OI history API
  • OKX history APIs
  • Pre-flight
  • Changelog
  • Roadmap
  • llms.txt
Learn
  • Markets from First Principles
  • Replays
  • Microstructure Guide
  • Architecture
  • Research Blog
  • FAQ
Compare
  • All vendors
  • Pricing compared
  • vs. Tardis
  • vs. CoinGlass
  • vs. Kaiko
  • vs. Amberdata
  • vs. Crypto Lake
  • vs. Laevitas
  • vs. Coinalyze
  • vs. Binance public data
  • vs. Hyperliquid data
  • Binance archive
  • Hyperliquid data
Company
  • Team
  • Pricing
  • Contact
  • Book a call
  • Terms of Service
  • Privacy Policy
  • Licensing
  • SLA

© Copyright 2026 Aperiodic. All Rights Reserved.

Aperiodic Limited · Registered in Ireland · Company No. 815273 ·
136 Capel Street, Dublin D01 T2C9, Ireland