CEX Perp Funding Aggregator
Pricing
Pay per event
CEX Perp Funding Aggregator
Track Binance perpetual futures funding rates with normalized APR, prices, next funding times, and optional open interest for crypto quant workflows.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Track perpetual futures funding rates from centralized exchanges in one normalized dataset. This actor starts with Binance USD-M Futures public APIs and produces clean rows for arbitrage dashboards, quant notebooks, market-making tools, and recurring monitoring jobs.
What does CEX Perp Funding Aggregator do?
The actor fetches current perpetual swap funding-rate snapshots and normalizes each market into a consistent schema.
- ๐ฆ Venue name
- ๐ฑ Symbol, base asset, and quote asset
- ๐ Mark price and index price
- ๐งฎ Raw funding rate, percent value, and annualized APR estimate
- โฐ Next funding time
- ๐ Optional open interest
- ๐ API endpoint and source URL
- ๐ Scrape timestamp
Who is it for?
Crypto teams use funding data for repeated monitoring rather than one-off scraping.
- Arbitrage desks comparing positive and negative funding across markets
- Quant researchers building funding-rate histories
- Market makers watching carry costs
- Bot builders feeding signal pipelines
- Analysts preparing exchange risk dashboards
- Data engineers loading crypto market data into warehouses
Why use this actor?
Public exchange APIs use exchange-specific field names. This actor turns those responses into stable export-friendly rows.
- No browser is required
- No login is required
- No proxy is required for the supported Binance endpoint
- Results are ready for CSV, JSON, Excel, API, and webhook workflows
- The schema is designed so more venues can be added later
Supported exchanges
Version 0.1 supports Binance USD-M Futures via the public premiumIndex API.
Additional adapters such as OKX, Bybit, Bitget, and Hyperliquid can be added incrementally while keeping the same normalized output fields.
How much does it cost to monitor CEX perp funding rates?
The actor uses pay-per-event pricing.
- A small start fee is charged once per run
- A per-item event is charged for each funding row saved
- Use
symbolsormaxItemsto keep tiny monitoring jobs inexpensive - Leave
includeOpenInterestdisabled when you only need funding rates
Current pricing:
| Event | Price |
|---|---|
| Run started | $0.005 per run |
| Funding row (FREE) | $0.000034588 |
| Funding row (BRONZE) | $0.000030077 |
| Funding row (SILVER) | $0.00002346 |
| Funding row (GOLD) | $0.000018046 |
| Funding row (PLATINUM) | $0.000012031 |
| Funding row (DIAMOND) | $0.00001 |
Input
You can run the actor with broad or narrow filters.
{"venues": ["binance"],"quoteAssets": ["USDT"],"maxItems": 250,"sortBy": "annualizedAprAbs","includeOpenInterest": false}
Input fields
| Field | Type | Description |
|---|---|---|
venues | array | Exchange adapters to query. Currently binance. |
symbols | array | Optional exact symbols such as BTCUSDT. Empty means all symbols. |
quoteAssets | array | Optional quote filters such as USDT or USDC. |
maxItems | integer | Maximum funding rows saved after sorting. |
sortBy | string | Sort by symbol, absolute funding rate, absolute APR, or next funding time. |
includeOpenInterest | boolean | Adds one extra public request per symbol for Binance open interest. |
Output
Each dataset item is one normalized funding snapshot.
{"venue": "binance","symbol": "BTCUSDT","base": "BTC","quote": "USDT","markPrice": 60209.12,"indexPrice": 60248.77,"fundingRate": 0.00005194,"fundingRatePct": 0.005194,"annualizedApr": 0.0568743,"nextFundingTime": "2026-06-27T08:00:00.000Z","openInterest": null,"timestamp": "2026-06-27T02:33:25.000Z","apiEndpoint": "https://fapi.binance.com/fapi/v1/premiumIndex","sourceUrl": "https://www.binance.com/en/futures/BTCUSDT","scrapedAt": "2026-06-27T02:33:25.437Z"}
Data table
| Column | Meaning |
|---|---|
venue | Exchange source. |
symbol | Exchange market symbol. |
base | Base asset parsed from the symbol. |
quote | Quote asset parsed from the symbol. |
markPrice | Mark price from the venue. |
indexPrice | Index price from the venue. |
fundingRate | Decimal funding rate for the next/last interval. |
fundingRatePct | Funding rate converted to percent. |
annualizedApr | Simple annualized estimate using 3 intervals per day. |
nextFundingTime | Next funding time in ISO format. |
nextFundingTimeMs | Raw next funding time in milliseconds. |
openInterest | Optional open interest enrichment. |
timestamp | Exchange response timestamp in ISO format. |
timestampMs | Raw exchange timestamp in milliseconds. |
apiEndpoint | API endpoint used for the row. |
sourceUrl | Human-readable market URL. |
scrapedAt | Actor collection timestamp. |
How to run
- Open the actor on Apify.
- Keep
venuesset tobinance. - Leave
symbolsempty for a full snapshot or add symbols such asBTCUSDT. - Set
quoteAssetstoUSDTfor the main Binance USD-M universe. - Choose
maxItems. - Click Start.
- Export the dataset or consume it via API.
Example workflows
- Run every 5 minutes and alert when absolute annualized APR crosses a threshold.
- Store full snapshots in a data warehouse for historical funding analysis.
- Compare funding rates with spot borrow rates.
- Feed the highest absolute funding markets into a trading research notebook.
- Monitor open interest only for a short symbol list to avoid extra requests.
Tips for best results
- Use
sortBy: annualizedAprAbsto surface extreme funding markets first. - Use
symbolsfor low-cost production monitors. - Use
quoteAssets: ["USDT"]for clean Binance USD-M snapshots. - Disable open interest unless your strategy needs it.
- Schedule recurring runs on Apify for time-series collection.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/cex-perp-funding-aggregator').call({venues: ['binance'],quoteAssets: ['USDT'],maxItems: 250,sortBy: 'annualizedAprAbs'});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/cex-perp-funding-aggregator').call(run_input={'venues': ['binance'],'quoteAssets': ['USDT'],'maxItems': 250,'sortBy': 'annualizedAprAbs',})print(run['defaultDatasetId'])
API usage with cURL
curl "https://api.apify.com/v2/acts/automation-lab~cex-perp-funding-aggregator/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"venues":["binance"],"quoteAssets":["USDT"],"maxItems":250}'
MCP integration
Use the Apify MCP server to call this actor from Claude Desktop, Claude Code, or compatible MCP clients.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/cex-perp-funding-aggregator
Claude Code setup:
$claude mcp add apify-cex-funding https://mcp.apify.com/?tools=automation-lab/cex-perp-funding-aggregator
Claude Desktop JSON config:
{"mcpServers": {"apify-cex-funding": {"url": "https://mcp.apify.com/?tools=automation-lab/cex-perp-funding-aggregator"}}}
Example prompts:
- "Run the CEX perp funding monitor for Binance USDT markets and show the top 20 absolute APR values."
- "Fetch BTCUSDT, ETHUSDT, and SOLUSDT funding rates and summarize next funding times."
- "Create a CSV-ready funding-rate snapshot for my quant notebook."
Integrations
Connect the dataset to:
- Google Sheets for desk dashboards
- BigQuery or Snowflake for historical snapshots
- Slack alerts through Apify integrations
- Trading research notebooks
- Webhooks that trigger downstream bots
- BI dashboards that track market carry
Scheduling
Funding changes throughout the day. A recurring schedule is the best way to build a useful time series.
Common schedules:
- Every 5 minutes for active trading monitors
- Every 15 minutes for dashboards
- Hourly for research archives
- Around funding boundaries for exchange settlement checks
Limitations
- Version 0.1 supports Binance USD-M Futures.
- Annualized APR is a simple estimate, not a forecast.
- Public API availability can change.
- Open interest enrichment adds one request per emitted symbol.
- The actor does not place trades or provide financial advice.
Legality
This actor uses public market-data API endpoints. You should still review exchange terms, respect rate limits, and use the data responsibly. The actor is intended for analytics, monitoring, and research workflows.
FAQ
Is it legal to scrape funding rates?
This actor uses public exchange market-data APIs and does not access private account data. Review the target exchange's terms before using the data in production.
Does this actor place trades?
No. It only extracts public funding-rate data and does not connect to trading accounts or submit orders.
Troubleshooting
Why did I get zero rows?
Check your symbols and quoteAssets filters. Exact symbols should look like BTCUSDT. If you filter for a quote asset the venue does not return, the dataset can be empty.
Why is open interest empty?
Open interest is optional. Enable includeOpenInterest to request it. If the venue rejects an individual open-interest request, the actor keeps the funding row and leaves openInterest as null.
Related scrapers
Explore related Automation Lab actors on Apify:
- https://apify.com/automation-lab
- https://apify.com/automation-lab/crypto-news-scraper
- https://apify.com/automation-lab/stock-market-news-scraper
Changelog
0.1
Initial Binance USD-M Futures funding-rate aggregator with normalized funding rows, APR estimates, source links, and optional open-interest enrichment.
Support
If you need another exchange adapter or an extra normalized field, open an issue on the Apify actor page with example symbols and the workflow you want to support.