Crypto Perpetual Funding Rate & Open Interest Scraper
Pricing
from $11.28 / 1,000 perp snapshots
Crypto Perpetual Funding Rate & Open Interest Scraper
Aggregate perpetual-futures funding rates, open interest and long/short ratio across Bybit, OKX and Binance. Get annualized funding, cross-exchange funding spread and total OI per coin. Export to JSON, CSV or Excel.
Pricing
from $11.28 / 1,000 perp snapshots
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Crypto Perpetual Funding Rate & Open Interest Scraper
Here is one real result, with every field the actor returns:
{"exchange": "binance","symbol": "BTC","instrument": "BTCUSDT","markPrice": 77721,"indexPrice": 77739.16934783,"lastPrice": 77710,"price24hChangePct": 8.013,"fundingRate": 0.0001,"fundingIntervalHours": 8,"fundingRateAnnualizedPct": 10.95,"nextFundingTime": "2026-08-21T16:00:00.000Z","openInterestBase": 109406.315,"openInterestUsd": 8503168208.12,"volume24hUsd": 31614402369.37,"longShortRatio": 1.0555,"xAvgFundingAnnualizedPct": 10.95,"xFundingSpreadAnnualizedPct": 0,"xTotalOpenInterestUsd": 14764534312.98,"xExchangesCovered": ["bybit", "okx", "binance"],"fundingHistoryPoints": 100,"fundingHistoryStart": "2026-07-19T08:00:00.000Z","fundingHistoryEnd": "2026-08-21T08:00:00.000Z","fundingRateAvg": 5.585e-05,"fundingRateAvgAnnualizedPct": 6.116,"cumulativeFundingPct": 0.5585,"fundingRegimeVsAvg": "above average","fundingTrend": "rising","aiPositioningBias": "long-crowded","aiSqueezeRisk": "medium","aiFundingRegime": "mildly positive carry","aiArbNote": "the spread is negligible","aiSummary": "The market shows a long-crowded positioning with a mildly positive funding rate, indicating potential squeeze risk.","source": "binance","observedAt": "2026-08-21T11:07:40.077Z","error": null}
The most complete cross-exchange perpetual-futures market-data scraper available. It returns every core field the exchanges expose for each USDT perpetual (funding rate, mark and index price, open interest in coin and USD, 24h volume, long/short account ratio), plus derived fields single-exchange scrapers cannot give you: annualized funding, the cross-exchange funding spread (the funding-arbitrage edge), and aggregated open interest across Bybit, OKX and Binance.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Use cases
- Billing and limits
- FAQ and troubleshooting
What it does
You pass a list of base coins (for example BTC, ETH, SOL) and the exchanges you want. For every coin the actor pulls the live USDT perpetual snapshot from each exchange, normalizes it into one flat row per (symbol, exchange), and computes a cross-exchange summary for the coin that is attached to every row.
Each row carries:
- The current funding rate as a per-interval decimal and annualized to a percent.
- Mark price, index price, last price and 24h price change.
- Open interest in coin units and in USD, plus 24h USD volume.
- The long/short account ratio where the exchange exposes it.
- A cross-exchange block for the coin: average annualized funding, the funding spread (max minus min annualized funding across the exchanges that responded), aggregated total open interest in USD, and the list of exchanges covered.
The cross-exchange funding spread is the core value. When one venue pays a very different funding rate than another, that gap is a cash-and-carry / funding-arbitrage edge that a single-exchange feed cannot show you. Two optional add-ons deepen each row: a funding-history summary (average funding, cumulative funding, regime and trend over the recent window) and an AI funding signal (positioning bias, squeeze risk, funding regime and an arbitrage note).
Coverage is Bybit, OKX and Binance USDT-margined linear perpetuals. Bybit and OKX are the reliable core; Binance is included and returned whenever it is reachable. All anti-block handling is internal, so you never configure a proxy.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the funding, open interest and cross-exchange spread for BTC and ETH on all three exchanges.
{"symbols": ["BTC", "ETH"],"exchanges": ["bybit", "okx", "binance"],"sortBy": "openInterest","maxResults": 10}
Leave symbols empty to default to BTC, ETH and SOL. Every input field is optional.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
symbols | array of strings | no | ["BTC","ETH","SOL"] | Base coin symbols. Each is mapped to that coin's USDT perpetual on every selected exchange (BTC becomes BTCUSDT on Bybit/Binance and BTC-USDT-SWAP on OKX). A single string is accepted and wrapped to a one-item list. |
exchanges | array of strings | no | ["bybit","okx","binance"] | Which exchanges to query. Any subset of bybit, okx, binance. |
minOpenInterestUsd | integer | no | 0 | Only return per-exchange rows whose open interest is at least this many USD. Use to skip thin markets. |
sortBy | enum | no | openInterest | Sort rows before the result cap. One of openInterest, fundingRate, annualizedFunding (all descending). |
includeFundingHistory | boolean | no | false | Paid add-on. Fetch each exchange's funding-rate history and attach average funding (annualized), cumulative funding, current-vs-average regime and trend direction. Charged only when a real series returns. Disabled on free plans. |
aiFundingSignal | boolean | no | false | Paid add-on. Add an AI read: positioning bias, squeeze risk, funding regime, cross-exchange arbitrage note and a one-line summary. Charged only when usable output returns. Disabled on free plans. |
maxResults | integer | no | 10 | Maximum per-exchange rows to return across the run, after filtering and sorting. Free Apify plans are capped at 10. |
Output reference
One dataset item per (symbol, exchange). Types are string, number, boolean, string[], or null when a value is absent.
| Field | Type | Description |
|---|---|---|
exchange | string | Exchange the row is from: bybit, okx or binance. |
symbol | string | Base coin symbol, for example BTC. |
instrument | string | Exchange-native perpetual id, for example BTCUSDT or BTC-USDT-SWAP. |
markPrice | number | Perpetual mark price. null on OKX, which does not expose it on this endpoint. |
indexPrice | number | Underlying index price. null on OKX. |
lastPrice | number | Last traded price of the perpetual. |
price24hChangePct | number | 24h price change, percent. |
fundingRate | number | Current funding rate as a per-interval decimal (0.0001 = 0.01% per interval). |
fundingIntervalHours | number | Funding interval in hours (8 on all three exchanges). |
fundingRateAnnualizedPct | number | Funding annualized to a percent: fundingRate * (24 / interval) * 365 * 100. |
nextFundingTime | string | ISO 8601 timestamp of the next funding settlement. |
openInterestBase | number | Open interest in base coin units. |
openInterestUsd | number | Open interest in USD. |
volume24hUsd | number | 24h traded volume in USD. |
longShortRatio | number | Long/short account ratio (above 1 means more longs), where exposed, else null. |
xAvgFundingAnnualizedPct | number | Cross-exchange average annualized funding for this coin. |
xFundingSpreadAnnualizedPct | number | Cross-exchange funding spread: max minus min annualized funding across the exchanges that responded. The funding-arbitrage edge. |
xTotalOpenInterestUsd | number | Cross-exchange total open interest in USD for this coin. |
xExchangesCovered | string[] | Exchanges that returned data for this coin. |
fundingHistoryPoints | number | Funding-history points returned (funding history add-on). |
fundingHistoryStart | string | First timestamp of the history window (funding history add-on). |
fundingHistoryEnd | string | Last timestamp of the history window (funding history add-on). |
fundingRateAvg | number | Average funding over the window, decimal (funding history add-on). |
fundingRateAvgAnnualizedPct | number | Average funding over the window, annualized percent (funding history add-on). |
cumulativeFundingPct | number | Sum of per-interval funding over the window, percent (funding history add-on). |
fundingRegimeVsAvg | string | Current funding vs the window average: above average, near average or below average (funding history add-on). |
fundingTrend | string | Funding trend across the window: rising, falling or flat (funding history add-on). |
aiPositioningBias | string | AI bias: long-crowded, short-crowded or neutral (AI add-on). |
aiSqueezeRisk | string | AI squeeze risk: low, medium or high (AI add-on). |
aiFundingRegime | string | AI one-phrase funding-regime read (AI add-on). |
aiArbNote | string | AI note on the cross-exchange funding-spread arbitrage edge (AI add-on). |
aiSummary | string | AI one-line trader summary (AI add-on). |
source | string | Data source for the row (the exchange). |
observedAt | string | ISO 8601 timestamp when the record was collected. |
error | string | null on success. On a failed run a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"symbols":["BTC"],"exchanges":["bybit","okx","binance"]}), OKX row:
{"exchange": "okx","symbol": "BTC","instrument": "BTC-USDT-SWAP","markPrice": null,"indexPrice": null,"lastPrice": 77719.9,"price24hChangePct": 7.32,"fundingRate": 0.0001,"fundingIntervalHours": 8,"fundingRateAnnualizedPct": 10.95,"nextFundingTime": "2026-08-21T16:00:00.000Z","openInterestBase": 30528.6,"openInterestUsd": 2372799466.44,"volume24hUsd": 18053441897.97,"longShortRatio": 1.16,"xAvgFundingAnnualizedPct": 10.95,"xFundingSpreadAnnualizedPct": 0,"xTotalOpenInterestUsd": 14787163125.23,"xExchangesCovered": ["bybit", "okx", "binance"],"source": "okx","observedAt": "2026-08-21T11:05:12.000Z","error": null}
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~crypto-perp-funding-oi-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"symbols":["BTC","ETH","SOL"],"exchanges":["bybit","okx","binance"],"sortBy":"annualizedFunding"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~crypto-perp-funding-oi-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"symbols":["BTC"],"includeFundingHistory":true,"aiFundingSignal":true,"maxResults":3}'
Apify CLI:
apify call scrapers_lat/crypto-perp-funding-oi-scraper \--input '{"symbols":["BTC","ETH"],"minOpenInterestUsd":100000000}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Use cases
- Funding-rate arbitrage. Compare
fundingRateAnnualizedPctacross exchanges and readxFundingSpreadAnnualizedPctto spot the venue paying you to hold one leg while shorting the other. - Perp basis and carry trading. Track annualized funding and the mark-to-index gap to size and time basis positions.
- Open-interest monitoring. Watch
openInterestUsdper exchange andxTotalOpenInterestUsdper coin to see leverage building or unwinding. - Long/short positioning. Use
longShortRatioper exchange to gauge how one-sided the crowd is. - Liquidation-risk and squeeze detection. Combine crowded positioning, rising funding and concentrated open interest to flag squeeze conditions; the AI add-on scores this directly.
- Crypto quant research and market-making. Pull a clean, flat, cross-exchange funding and OI panel for backtests, signals and inventory models.
Billing and limits
This actor uses pay-per-event billing. See the pricing tab for current prices.
apify-actor-startis charged once per run to cover initialization.resultis charged once per(symbol, exchange)snapshot returned, including its cross-exchange summary. This is the primary event.funding_historyis an opt-in add-on (includeFundingHistory, off by default). It is charged only when a real funding-rate history series is fetched and the derived average, cumulative, regime and trend fields are attached.ai_funding_signalis an opt-in add-on (aiFundingSignal, off by default). It is charged only when the AI returns usable JSON.- No charge on failure. Unknown symbols or a run where no exchange responds write a single item with a populated
errorfield and are not charged. - Add-ons are paying-only. Both add-ons are disabled for free Apify plans, which are also capped at 10 results per run.
- Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results.
FAQ and troubleshooting
Why is xFundingSpreadAnnualizedPct zero?
All the exchanges that responded currently pay the same funding rate for that coin, so the spread is genuinely zero. It widens as soon as funding diverges across venues, which is exactly the arbitrage signal to watch.
Why is markPrice null on OKX rows?
OKX does not return a mark or index price on the public endpoints used here, so those fields are null for OKX. Bybit and Binance return them. Missing source values are never invented.
A run returned only some exchanges. Why?
Each exchange is fetched independently and a coin that does not list on a given venue, or a venue that is momentarily unreachable, is simply omitted from that coin's rows. xExchangesCovered always tells you which exchanges are included in the cross-exchange summary.
What does a positive funding rate mean? Positive funding means longs pay shorts, which usually signals a long-crowded market; negative funding means shorts pay longs. The AI add-on translates this into a positioning bias and squeeze risk.
How is annualized funding computed?
fundingRate * (24 / fundingIntervalHours) * 365 * 100. All three exchanges settle funding every 8 hours, so a 0.01% per-interval rate annualizes to about 10.95%.
Is this an official exchange tool? No. This actor is independent and not affiliated with Bybit, OKX or Binance. It reads only publicly available market data.
Related scrapers
- CoinGecko Crypto Market Scraper: spot prices, market cap and volume by coin.
- DEX Screener Pairs Scraper: on-chain DEX pair prices and liquidity.
- DeFi Yield Pools Scraper: APY, TVL and IL risk across DeFi pools.
- CFTC Commitments of Traders Scraper: TradFi futures positioning by reporting group.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Bybit, OKX or Binance. Accesses only publicly available market data.
