Quick Start

Up and running in 60 seconds. Three steps from zero to live order book data.

STEP 1

Get an API key

Sign up on the pricing page to get a free API key instantly, or call the signup endpoint directly:

curl -X POST https://depthy.io/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'
STEP 2

Make your first request

Fetch the current BTC-PERP order book from Hyperliquid with a single curl command:

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://depthy.io/v1/depth/hyperliquid/BTC-PERP
STEP 3

Use it in Python

Drop this into your bot and start reading depth metrics:

python
import requests

resp = requests.get(
    "https://depthy.io/v1/depth/hyperliquid/BTC-PERP",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)
book = resp.json()
print(f"Mid: {book['metrics']['mid_price']}, Spread: {book['metrics']['spread_bps']}bps")

Authentication

All endpoints except /v1/health require a valid API key in the Authorization header.

Authorization: Bearer dk_live_abc123...

Key types

  • Master key — Full admin access. One per account. Used for system status and management.
  • Customer keys — Scoped to a pricing tier (Free, Metered, Pro, Enterprise). Determines rate limits and endpoint access.

Crypto payments

All tiers accept crypto payments via NOWPayments (200+ cryptocurrencies). Use POST /v1/payments/create-invoice to generate a payment link. Pro and Enterprise plans activate automatically on payment confirmation.

Error responses

  • 401 Unauthorized — Missing or invalid API key. Check your header format.
  • 403 Forbidden — Key is revoked, expired, or does not have access to the requested tier-restricted endpoint.

Rate Limits

Limits are enforced per API key. Standard and heavy endpoints have separate pools.

Tier Standard endpoints Heavy endpoints (heatmaps) On exceed
Free 30 req/min 429 for 60 seconds
Metered 60 req/min 10 req/min 429 for 60 seconds
Pro 120 req/min 10 req/min 429 for 60 seconds
Enterprise 300 req/min 30 req/min 429 for 60 seconds

Rate limit headers

Every response includes these headers so your client can self-throttle:

  • X-RateLimit-Limit — Maximum requests per window
  • X-RateLimit-Remaining — Requests remaining in current window
  • X-RateLimit-Reset — Unix timestamp when the window resets

Tier Comparison

Choose the plan that fits your trading operation. Upgrade or downgrade at any time.

Feature Free ($0/mo) Metered (pay-per-query) Pro ($99/mo) Enterprise ($499/mo)
Rate limit 30/min 60/min 120/min 300/min
HL symbols Top 10 All 228 All 228 All 228
Depth / Walls / Market Yes (T1 only) Yes (all) Yes (all) Yes (all)
Heatmaps Yes Yes Yes
Compare Yes Yes Yes
PM Adjustment Latency Yes Yes Yes
PM Series Recent Yes Yes Yes
Historical archive Yes

Endpoint Reference

All endpoints grouped by domain. Params in {braces} are path parameters. Click any endpoint to expand details.

Hyperliquid Depth & Intelligence
GET /v1/depth/{exchange}/{symbol} Current L2 order book with depth metrics +

Returns the current order book snapshot with computed depth metrics: mid price, spread, imbalance ratio, and depth at various price levels.

Parameters

NameTypeDescription
exchangestringExchange name (e.g. hyperliquid)
symbolstringTrading pair (e.g. BTC-PERP)

Example

curl -H "Authorization: Bearer YOUR_KEY" \
  https://depthy.io/v1/depth/hyperliquid/BTC-PERP
GET /v1/depth/{exchange}/{symbol}/recent Depth metrics timeseries (last 6 hours) +

Returns depth metrics over the last 6 hours for charting and trend analysis.

GET /v1/walls/{exchange}/{symbol} Active order book walls ($100K+ persistent orders) +

Detects large persistent orders ($100K+) that act as support/resistance walls in the order book.

GET /v1/market/{exchange}/{symbol} Mark price, funding rate, open interest +

Returns current market data: mark price, funding rate, open interest, and 24h volume.

GET /v1/liquidations/{exchange}/{symbol}/clusters Estimated liquidation clusters (14 zones) +

Returns estimated liquidation clusters at 14 price zones above and below current price.

GET /v1/compare/{exchange}?symbols=... Multi-symbol depth comparison +

Compare depth metrics across multiple symbols in a single request. Pass comma-separated symbols.

Heatmaps
GET /v1/heatmap/{exchange}/{symbol}/depth Order book depth heatmap grid Pro+ +

Returns a time x price grid of order book depth snapshots for heatmap visualization.

GET /v1/heatmap/{exchange}/{symbol}/liquidations Real liquidation trade heatmap Pro+ +

Returns actual liquidation trades plotted on a time x price grid.

GET /v1/heatmap/{exchange}/{symbol}/estimated Estimated liquidation zones heatmap Pro+ +

Returns estimated liquidation zone intensities on a time x price grid.

Polymarket Data
GET /v1/polymarket/markets/active List all active Polymarket markets +

Returns active Polymarket markets with prices, volumes, and depth metrics.

GET /v1/polymarket/markets/{condition_id} Single market detail by condition ID +

Returns detailed data for a single Polymarket market by its condition ID.

GET /v1/polymarket/series List all tracked series with aggregate stats +

Returns all tracked Polymarket series with aggregate depth and volume statistics.

GET /v1/polymarket/series/{series}/recent Series depth timeseries (recent cycles) Pro+ +

Returns recent depth timeseries data for a specific Polymarket series.

GET /v1/polymarket/adjustment-latency/{series} Binance-to-Polymarket repricing latency Pro+ +

Measures how fast Polymarket crypto markets reprice after Binance moves. Broken down by hour and day of week.

Paper Trading
GET /v1/paper/portfolios Strategy leaderboard (no auth required) +

Returns all 6 paper trading strategy portfolios sorted by balance. Each strategy starts with $10,000 and trades automatically based on Depthy signals. No authentication required.

Example Request

curl https://depthy.io/v1/paper/portfolios

Example Response

{
  "portfolios": [
    {
      "strategy": "consensus",
      "starting_balance": 10000.0,
      "current_balance": 10250.50,
      "total_trades": 12,
      "open_trades": 3,
      "wins": 6,
      "losses": 3,
      "total_pnl": 250.50,
      "win_rate": 0.6667,
      "return_pct": 2.51,
      "last_updated": "2026-02-21T14:30:00"
    }
  ]
}
GET /v1/paper/trades Recent paper trades (no auth required) +

Returns recent paper trades, optionally filtered by strategy and status. No authentication required.

Parameters

NameTypeDescription
strategystring optionalFilter by strategy name (e.g. consensus, whale_reversal)
statusstring optionalFilter by trade status: open or closed
limitinteger optional1-500, default 50

Example Request

curl "https://depthy.io/v1/paper/trades?strategy=consensus&status=open&limit=10"

Example Response

{
  "trades": [
    {
      "trade_id": "pt_abc123",
      "strategy": "consensus",
      "signal_id": "sig_...",
      "signal_type": "SMART_MONEY",
      "market_id": "0x4c96...",
      "market_title": "Will Trump win 2028?",
      "side": "YES",
      "entry_price": 0.65,
      "exit_price": null,
      "size_usd": 500.0,
      "pnl": null,
      "status": "open",
      "opened_at": "2026-02-21T12:00:00",
      "closed_at": null
    }
  ],
  "count": 1
}
GET /v1/paper/trade/{trade_id} Single trade detail with signal context +

Full detail for a single paper trade including the originating signal, wallet profile, current market price, and Polymarket link. No authentication required.

Parameters

NameTypeDescription
trade_idstring requiredPaper trade ID (path param)

Example Request

curl https://depthy.io/v1/paper/trade/pt_abc123

Example Response

{
  "trade_id": "pt_abc123",
  "strategy": "consensus",
  "signal_id": "sig_...",
  "signal_type": "SMART_MONEY",
  "market_id": "0x4c96...",
  "market_title": "Will Trump win 2028?",
  "side": "YES",
  "entry_price": 0.65,
  "exit_price": null,
  "size_usd": 500.0,
  "pnl": null,
  "status": "open",
  "opened_at": "2026-02-21T12:00:00",
  "closed_at": null,
  "signal_severity": 72.5,
  "signal_title": "Smart money BUY Yes $500...",
  "signal_metadata": {"side": "BUY", "outcome": "Yes"},
  "signal_wallet": "0xd218...",
  "wallet_info": {
    "wallet": "0xd218...",
    "score": 82.3,
    "total_pnl_usd": 1250.50,
    "win_rate": 0.74,
    "total_trades": 47
  },
  "current_yes_price": 0.68,
  "market_slug": "will-trump-win-2028"
}
GET /v1/paper/performance Equity curves & signal accuracy +

Daily equity curve per strategy (cumulative balance from closed trades) plus signal accuracy breakdown by signal type. No authentication required.

Example Request

curl https://depthy.io/v1/paper/performance

Example Response

{
  "equity_curves": {
    "consensus": [
      {"date": "2026-02-20", "balance": 10000.0},
      {"date": "2026-02-21", "balance": 10125.50, "daily_pnl": 125.50}
    ]
  },
  "signal_accuracy": [
    {
      "signal_type": "SMART_MONEY",
      "total_trades": 15,
      "wins": 10,
      "losses": 5,
      "win_rate": 0.6667,
      "avg_pnl": 18.50,
      "total_pnl": 277.50
    }
  ]
}
System
GET /v1/health Health check (no auth required) +

Returns system health status including collector uptime, Redis connection, and staging stats. No authentication required.

GET /v1/status Full system status (master key only) +

Returns detailed system status. Requires master API key.

GET /v1/symbols All 228 symbols grouped by collection tier +

Returns all tracked Hyperliquid symbols grouped by collection tier (T1, T2, T3).

Payments
POST /v1/payments/create-invoice Create crypto payment invoice (200+ coins) +

Creates a NOWPayments invoice for upgrading your tier. Supports 200+ cryptocurrencies.

GET /v1/payments/status/{payment_id} Check live payment status +

Returns the current status of a payment by its ID.

GET /v1/payments/history Your payment history +

Returns your complete payment history with amounts and statuses.

Adjustment Latency Deep Dive

The temporal arbitrage edge. Understand exactly how fast Polymarket crypto markets reprice after Binance moves.

What it measures

When BTC moves more than 0.1% on Binance Futures within a 30-second window, we start a clock. The moment a Polymarket crypto book shifts by more than 2 cents, the clock stops. That interval is the adjustment latency — the time it takes Polymarket market makers to reprice.

Why it matters

If a series consistently reprices in 3 seconds during trading hours but 12 seconds on Sunday nights, your bot can set asymmetric timeout windows. Wider windows on slow periods mean more fill opportunities. Tighter windows on fast periods avoid adverse selection.

Example: Fetch BTC-DAILY-UP latency stats

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://depthy.io/v1/polymarket/adjustment-latency/BTC-DAILY-UP
json response
{
  "series": "BTC-DAILY-UP",
  "overall": {
    "avg_ms": 3240,
    "median_ms": 2810,
    "p95_ms": 8450,
    "sample_count": 1847
  },
  "by_hour": {
    "14": { "avg_ms": 2100, "median_ms": 1850, "p95_ms": 4200, "sample_count": 142 },
    "03": { "avg_ms": 8100, "median_ms": 7200, "p95_ms": 15600, "sample_count": 34 }
  },
  "by_day_of_week": {
    "Monday": { "avg_ms": 2900, "sample_count": 310 },
    "Sunday": { "avg_ms": 6400, "sample_count": 89 }
  }
}

How to use this data

If BTC-15M-UP reprices in 3.2s on weekday afternoons but 8.1s on Sunday nights, you can set your bot's timeout window accordingly. During fast periods, use tight fills and aggressive quoting. During slow periods, widen your spread and extend your fill timeout to capture the latency premium.

Interactive API Explorer

For the full OpenAPI spec with request/response schemas, try our interactive documentation. Both include all endpoints, parameters, and example payloads.

Ready to integrate?

Get your free API key in 30 seconds. Start pulling live market-structure data via REST API.

Get your API key