Data & API
FeeFloor data & API
FeeFloor measures the all-in cost of a crypto market order — the venue fee plus the live bid-ask spread plus order-book slippage — across 40+ centralized and decentralized exchanges, and publishes it openly. The same numbers behind the site are available as JSON and CSV. Free to use with attribution (CC BY 4.0).
What the data represents
Every number answers one question: if you sent a market order to this venue right now, at this size, how much would it cost beyond the mid price? That total is expressed in basis points (1 bps = 0.01%) and split into three measured parts — fee(the venue’s published standard-tier rate), spread (half the live bid-ask cross) and slippage (how far the fill walks the live order book). Oracle-priced venues have no order book, so FeeFloor reports their protocol fee only. Full methodology.
Coverage: assets BTC, ETH, SOL, XRP; markets spot and perpetual; sides buy (walk the asks) and sell (walk the bids); order sizes $10K, $100K, $1M and $10M. Live costs refresh about every 60 seconds; the study history adds one measurement per cell roughly every 6 hours.
Live costs — JSON
The current all-in cost for every tracked venue at one asset / market / size. This is what the live ranking on the site reads. Public, rate-limited, no key required.
curl "https://feefloor.com/api/costs?asset=BTC&market=perp&size=100000&feeType=taker&side=buy"Response (truncated):
{
"market": "perp", "asset": "BTC", "sizeUsd": 100000,
"feeType": "taker", "side": "buy", "updatedAt": "2026-07-16T18:00:07Z",
"venues": [
{
"exchange": "Lighter", "type": "dex", "oracle": false,
"feeBps": 0, "spreadBps": 0.61, "slippageBps": 0.42,
"totalBps": 0.73, "sufficient": true,
"midPrice": 64398, "vwap": 64402.6
}
// … one object per venue, sorted cheapest-first
]
}Query parameters: asset (BTC|ETH|SOL|XRP), market (perp|spot), size (USD; snapped to $10K/$100K/$1M/$10M buckets), feeType (taker|maker), side (buy|sell), mica(true filters to venues in FeeFloor’s EU filter). Prices are list prices — no referral discount is applied to this endpoint.
Study history — CSV
The full long-format history of the cheapest-exchange study: one row per measurement (sweep × scenario × venue), with a metadata preamble (schema version, license, date range). Ideal for reproducing the research or running your own analysis.
curl -L "https://feefloor.com/api/research/dataset.csv" -o feefloor.csvOnce Version 1 publishes, a frozen, hash-verified CSV is served at a stable versioned URL (/research/snapshots/v1/dataset.csv) — cite that for reproducibility; the live CSV keeps growing.
Rolling aggregate — JSON
A compact rolling summary of the study: per-scenario winners and per-venue depth statistics over several time windows, split by side. Smaller than the CSV when you only need the aggregates.
curl "https://feefloor.com/api/research/data" # manifest (both sides)
curl "https://feefloor.com/api/research/data?side=sell&view=matrix" # sell-side winners
curl "https://feefloor.com/api/research/data?side=buy&view=depth" # buy-side depth statsResponse fields
Per-venue fields in the live costs response:
| Field | Type | Meaning |
|---|---|---|
| exchange | string | Venue display name (canonical casing, e.g. Gate.io, WhiteBIT). |
| type | 'cex' | 'dex' | Centralized or decentralized venue. |
| oracle | boolean | True = priced from an oracle (no order book); spread/slippage are not computed. |
| feeBps | number | Published standard-tier fee, basis points. |
| spreadBps | number | Half the live bid-ask cross, basis points. |
| slippageBps | number | Order-book slippage for the requested size, basis points. |
| totalBps | number | All-in cost = fee + spread + slippage. The ranking key. |
| sufficient | boolean | False = the book can't fill the size within 2% of mid (depth-limited); treat totals as indicative. |
| midPrice | number | Mid price at measurement time. |
| vwap | number | Volume-weighted fill price for the size. |
“All-in” covers execution only (fee + spread + slippage). It excludes funding, borrowing, withdrawal/network fees and fiat conversion. Depth-limited and oracle rows are labelled, never silently zeroed.
Embeddable widget
A lightweight “cheapest exchange right now” card you can drop into an article. It loads fast, shows the current measured winner, links back to FeeFloor, and carries no affiliate links — safe for journalists and bloggers. Paste this iframe:
<iframe src="https://feefloor.com/embed/cheapest"
width="400" height="180" loading="lazy"
style="border:0;max-width:100%"
title="Cheapest crypto exchange right now — FeeFloor"></iframe>Please keep the “Measured by FeeFloor” link intact. The embed is cached for a few minutes and falls back to a static message if the data is briefly unavailable.
License, citation, limits & stability
License. Data is published under CC BY 4.0 — free to use, including commercially, with attribution to FeeFloor and a link back to the relevant page.
Citation.“FeeFloor — measured crypto trading costs, feefloor.com.” For the research study, cite the frozen version (e.g. Version 1.0) and its data cutoff, not the live endpoint.
Rate limits. The live costs endpoint allows ~30 requests per minute per client. The CSV and aggregate are edge-cached (roughly hourly) — please cache rather than polling in a tight loop.
Stability & versioning. The CSV carries a schema_versionin its preamble; breaking changes bump it. Published research snapshots are immutable and versioned. Live JSON field names are stable; new fields may be added but existing ones won’t change meaning without a version note.
Corrections. Spot a wrong fee or a mis-measured venue? Report a correction or email contact@feefloor.com. See also the methodology and the two studies on cheapest exchange and liquidity.