API documentation
Funding, open interest and liquidations from Bybit, OKX, Hyperliquid and Gate (Binance and Bitget rolling out), one schema, five-minute snapshots. Base URL https://api.perpdata.dev. No SDK needed — it's plain JSON over HTTPS.
Authentication and limits
The free tier needs no key: 200 requests per day per IP across /v1/* and MCP tool calls. Pro ($29/month) raises that to 50,000/day with commercial use — send your key as Authorization: Bearer pd_.... Get one at perpdata.dev; manage or cancel via GET /billing/portal with the same header.
curl "https://api.perpdata.dev/v1/funding/current?symbol=BTC" \
-H "Authorization: Bearer pd_your_key"
Endpoints
| Endpoint | Params | Returns |
|---|---|---|
GET /v1/funding/current | symbol | Latest funding per venue with annualized apr and the min/max spread |
GET /v1/funding/history | symbol, venue?, limit? | 5-minute snapshots, newest first (cap 1000) |
GET /v1/funding/spreads | limit? | Symbols ranked by cross-venue apr spread: richest venue vs cheapest |
GET /v1/oi/current | symbol | Open interest per venue (base units + USD) and the cross-venue total |
GET /v1/liquidations/recent | symbol?, limit? | Recent liquidation prints, newest first |
GET /v1/symbols | — | Every tracked symbol |
GET /v1/venues | — | Every tracked venue |
GET /health | — | Row counts and latest timestamps per table |
Rates are decimals (0.0001 = 1 bp per interval); apr annualizes across different funding intervals so venues compare directly. Timestamps are Unix ms.
MCP server
Streamable-HTTP MCP at https://api.perpdata.dev/mcp — six tools with terse schemas: list_symbols, get_funding_rates, get_funding_history, get_funding_spreads, get_open_interest, get_liquidations. Discovery calls (initialize, tools/list) are never metered.
claude mcp add --transport http perpdata https://api.perpdata.dev/mcp
For other clients, paste the URL directly. Pro keys go in the same Authorization header on the POST.
Errors
401 — key unknown, malformed, or its subscription lapsed. 429 — daily limit reached; the body says which tier and where to upgrade. 404 — no data for that symbol. Errors are JSON: {"error": "..."}.