PerpFinder API
Free, keyless, CORS-open perpetual-futures market data — volume, open interest, funding rates, fees and liquidations across 50+ exchanges. Fetch it from any site, server or browser. The API requires no sign-up. PerpFinder last reviewed it on 2026-08-24.
Quick start
// Free, keyless, CORS-open — call it from any site, server or browser
const res = await fetch('https://perpfinder.com/api/data/funding-rates')
const { rows } = await res.json()
// rows = live funding rates, asset × exchangePlease keep a “Data by PerpFinder” credit linking to perpfinder.com when you republish. The data is free; the attribution funds it.
Rate limits & conventions
Per-IP limits (no key needed): 60 requests/min on most endpoints; 40/min on open-interest, volume and funding-rates; 30/min on the order-book slippage engine. Exceeding a limit returns 429 with Retry-After and X-RateLimit-* headers. Responses are CDN-cached — a well-behaved poller rarely hits the limiter at all.
Conventions: a missing value is null, never 0. Every response carries updatedAt (UTC). Self-collected datasets additionally expose methodologyVersion, maturity and dataStatus — treat collecting/preliminary series accordingly. Pipeline health: /status. Machine-readable resources: OpenAPI and API manifest.
License: the DATA is free to republish with attribution (“Data: PerpFinder” + link) — see the data-license clause in our terms. Editorial content (reviews, guides) remains all-rights-reserved.
Market-data endpoints
CORS-open and CDN-cached. Full machine-readable list: /llms-full.txt.
/api/data/perpsPerp DEX volume overview (24h/7d/30d, change %, per protocol).
Fields: protocols[], dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/slippage?asset=BTC&size=100000&feeType=taker|maker&side=buy|sellLive perp execution-cost ladder from order books and supported oracle/pool models. Total cost is fee + half-spread + size-dependent impact beyond the best quote.
Fields: asset, sizeUsd, side, results[].{exchange,feeBps,feeBpsMin,feeBpsMax,feeModel,slippageBps,halfSpreadBps,spreadBps,totalBps,midPrice,vwap,sufficient,quoteStatus,maxExecutableSizeUsd}, coverage, dataStatus, generatedAt, schemaVersion, sources, ETag
/api/data/slippage-spot?asset=BTC&size=10000&feeType=taker|maker&side=buy|sellLive spot execution-cost ladder using venue order books, pair-specific fees, spread, VWAP impact and explicit depth coverage.
Fields: asset, sizeUsd, side, results[].{exchange,baseAsset,quoteAsset,feeBps,slippageBps,halfSpreadBps,spreadBps,totalBps,midPrice,vwap,sufficient}, coverage, dataStatus, generatedAt, schemaVersion, sources, ETag
/api/data/dex-enrichmentDirect DEX market enrichment: OI, volume, funding, prices, protocol stats and venue coverage.
Fields: protocols[], crossVenueFunding, coverage, dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/perps-chart?days=90Aggregate daily perp-volume time series + total open interest per day (own snapshots).
Fields: chart[{date,volume,oi}]
/api/data/volumeCEX 24h volume per venue from direct venue-reported futures tickers + top symbols.
Fields: exchanges[], venueSlugs, updatedAt, dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/open-interestOpen interest per exchange (CEX+DEX) + aggregate total.
Fields: byExchange[], venueSlugs, updatedAt
/api/data/oi-long-shortDEX long vs short open-interest split per protocol.
Fields: protocols[], totalLong, totalShort, updatedAt
/api/data/funding-ratesLive funding-rate matrix: asset × exchange (normalized 1h). Missing OI/price are null with per-venue field support and explicit feed coverage.
Fields: rows[], exchanges[], coverage, updatedAt, meta.fieldSupport, meta.venueSlugs, dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/feesProtocol fees (DEX, 24h/7d/30d per protocol).
Fields: protocols[], dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/liquidationsLiquidations 24h/4h/1h, long vs short split.
Fields: events[], summary, meta, updatedAt
/api/data/optionsBTC/ETH options market state: mark IV per strike/expiry, ATM term structure, put/call, Deribit DVOL (attributed), expiries.
Fields: assets.{BTC,ETH}, dvol, termStructure[], expiries[], status, updatedAt
/api/data/options-history?asset=BTC&metric=dvol&interval=15m|1d&days=NSelf-collected options time series (no synthetic backfill); allowlisted metrics; maturity + methodologyVersion in every response.
Fields: series[], maturity, methodologyVersion, firstObservedAt, dataStatus, ETag
/api/data/volume-qualityReported vs observable CEX volume signals with separate data-confidence scoring.
Fields: sweep.venues[], maturity, methodologyVersion, datasetStart, dataStatus
/api/data/rwa-marketsRWA perp markets: stocks / forex / commodities across venues.
Fields: markets[], updatedAt
/api/data/micaCommitted ESMA MiCA register snapshot joined to PerpFinder venue status, service permissions, EU-derivatives scope and fee context.
Fields: register, scope, coverage, authorized[], tracked[], dataStatus, generatedAt, upstreamTimestamp, schemaVersion, sources, ETag
/api/data/fear-greedFear & Greed index (alternative.me, attributed).
Fields: value, updatedAt
/api/data/funding-history?asset=BTC&type=aggregates|venue|realized&days=7&venue=Binance&rateType=current|predicted&format=csvSelf-collected funding history: aggregates, per-venue sweeps, or the append-only realized-settlement ledger. Rate types never mixed; no synthetic backfill.
Fields: series[]/entries[], coverage, maturity, methodologyVersion, datasetStart, dataStatus, generatedAt, schemaVersion, sources, ETag
/api/data/volume-quality-history?days=7&venue=&format=csvVolume-quality sweep history per venue (reported vs observable signals over time). Measurements, never accusations.
Fields: series[], maturity, methodologyVersion, datasetStart, updatedAt
/api/data/venue-history?venue=Binance&days=30&format=csvPer-venue daily volume/OI history from the committed snapshot series (since 2026-06-05) — venue-reported figures, normalized; null never zero-filled.
Fields: series[], venueSlug, datasetStart, updatedAt
/api/data/cost-history?market=perp&asset=BTC&size=100000&days=7|all&endDate=YYYY-MM-DD&methodologyVersion=1|2|3|4|all&venue=&format=json|csvStrict execution-cost history by methodology version. The default returns active v4. Use endDate to page an older window. The all view marks exact version boundaries.
Fields: series[].{attemptId,ingestedAt,collectedAt,methodologyVersion,versionBoundary,side,feeType,feeTierAssumption,engineDataStatus,coverage,venues[].{halfSpreadBps,priceImpactBps,quoteStatus,slippageModel,executionModel}}, selectionMode, selectedMethodologyVersions, availableMethodologyVersions, versionBoundaries, globalDatasetStart, datasetStart, maturity, maturityByMethodology, venueCoverage, updatedAt, generatedAt
Notes
- Methodology. Every metric is defined on /data-definitions.
- Freshness. Responses carry an
updatedAt. Cache your own calls a few seconds to be kind. - Coverage. 50+ perp venues (CEX+DEX).