Free funding rate API: four exchanges, no key, no quota

The same numbers the pages are built from, as three static files.

Everything this site measures is also published as JSON. There is no key, no account, no quota and no rate limit, and there never will be — it is three static files behind a CDN, so serving them costs nothing worth metering.

EndpointContains
/api/v1/funding.jsonEvery contract quoted on two or more of the four venues, with each venue's funding rate, its own settlement interval, and 24h volume.
/api/v1/venues.jsonStandard-tier fees and live depth per venue.
/api/v1/index.jsonMachine-readable index of the above.

Terms

Licensed CC BY 4.0: use it commercially, redistribute it, build on it. The one condition is attribution to perpdesk.net. The payload carries no referral parameters and no tracking of any kind — CORS is open, so you can call it from the browser.

Units, stated once

The four venues do not settle funding on the same clock, so a raw rate from one is not comparable with a raw rate from another. Every rate is given normalised to eight hours as funding_rate_per_8h, alongside that venue's real funding_interval_hours, so you can undo the normalisation. Spreads are given both per period and per day, because an unqualified "spread" does not say per what.

How fresh

Rebuilt daily, read from each exchange's public endpoint at build time. Each file carries its own generated_utc; trust that over the cache header. The methodology states what each figure is and what it is not.

curl -s https://perpdesk.net/api/v1/funding.json | head -40

Or embed it

If you would rather not call anything, drop this into a page. It reads the feed itself, so it stays current without you touching it again, and it sets no cookie and tracks nothing — a widget that watched your readers would deserve to be removed.

<iframe src="https://perpdesk.net/embed/funding/?base=BTC" title="BTC funding rates by venue" width="100%" height="260" loading="lazy" style="border:0;max-width:420px"></iframe>

Change base=BTC to any contract in the feed. Attribution is built into the widget, which satisfies the licence on its own.

Here it is running: