Yield API
Build with live crypto yield data.
Access structured lending, staking, borrowing, and stablecoin yield data across CeFi and DeFi providers through a typed API with freshness, source, and confidence signals.
- 366
- Assets covered
- 61
- Providers tracked
- 40,312
- Rates monitored
- 31,965
- Updates in 24h
- 5m
- Median refresh
- 3s
- Freshest provider
Specific fields, not vague claims.
Every response is typed and documented. Here is exactly what you can query and what each rate carries.
Data types
- Assets
- Providers
- Lending rates
- Staking rewards
- Borrowing rates
- Stablecoin yields
Per-rate signals
- Rate freshness
- Provider / source metadata
- Confidence & verification status
Classification
- CeFi · DeFi · liquid staking
- Fixed vs flexible
- Base rate vs max rate
// GET /api/v1/rates/USDC?category=lending { "data": { "symbol": "USDC", "rates": [ { "provider": "fluid", "symbol": "USDC", "category": "lending", "rate": 6.29, "metadata": { "chain": "Ethereum", "source": "defillama_yields", "poolId": "4438dabc-7f0c-430b-8136-2722711ae663", "project": "fluid-lending", "tvlUsd": 116838581, "apyBase": 5.25, "exposure": "single", "poolMeta": null, "apyReward": 1.04, "apyMean30D": 6.85431, "isStablecoin": true }, "lastUpdated": "2026-06-21T11:20:50.559Z", "coinId": "usd-coin", "providerSymbol": "USDC", "unitType": "absolute", "unitSymbol": null }, { "provider": "euler-v2", "symbol": "USDC", "category": "lending", "rate": 2.78441, "metadata": { "chain": "Ethereum", "source": "defillama_yields", "poolId": "0fde8996-ecdf-441c-94a9-ec67403e9b8c", "project": "euler-v2", "tvlUsd": 14522414, "apyBase": 2.78441, "exposure": "single", "poolMeta": "EVK Vault eUSDC-80", "apyReward": null, "apyMean30D": 2.68741, "isStablecoin": true }, "lastUpdated": "2026-06-21T11:20:34.976Z", "coinId": "usd-coin", "providerSymbol": "USDC", "unitType": "absolute", "unitSymbol": null }, { "provider": "nexo", "symbol": "USDC", "category": "lending", "rate": 10.5, "metadata": { "source": "nexo_earn_api", "duration": 90, "flexRate": 6.5, "baseSymbol": "USDC", "cryptoName": "USD Coin", "hasFloorApy": false, "durationType": "fixed", "rewardsClaim": "automatic", "warmUpPeriod": { "type": "range", "numbers": [ 1, 1 ], "periods": [ "day", "day" ] }, "rewardsPayout": "automatic", "rewardFrequency": { "text": "daily", "type": "text" }, "minPurchaseAmount": "500.187014", "undelegationPeriod": { "text": "immediate", "type": "text" }, "flexProviderSymbol": "USDC-FLEX" }, "lastUpdated": "2026-06-21T11:20:31.063Z", "coinId": "usd-coin", "providerSymbol": "USDC-90D", "unitType": "absolute", "unitSymbol": null } ], "count": 18 } }
What the API returns
A real response, fetched live.
Every provider rate for a single asset, exactly as GET /api/v1/rates/:symbol returns it. Pick a row to see the live JSON response.
| Provider | Category | Rate | Updated |
|---|---|---|---|
spark WBTC | lending | 0.00001 | Jun 21, 11:21 UTC |
okx BTC | lending | 1.825 | Jun 21, 11:21 UTC |
kamino WBTC | lending | 0.00001 | Jun 21, 11:21 UTC |
fluid WBTC | lending | 0.14 | Jun 21, 11:20 UTC |
euler-v2 WBTC | lending | 0.00051 | Jun 21, 11:20 UTC |
nexo BTC-180D | lending | 6.2 | Jun 21, 11:20 UTC |
youhodler BTC | lending | 8 | Jun 21, 11:20 UTC |
gemini BTC | lending | 0.01 | Jun 21, 11:20 UTC |
bitfinex BTC | lending | 0.0021 | Jun 21, 11:20 UTC |
nebeus BTC | lending | 4.5 | Jun 21, 11:20 UTC |
aqru BTC | lending | 2.5 | Jun 21, 11:20 UTC |
justlend BTC | lending | 0.02048 | Jun 18, 21:21 UTC |
earnpark BTC | lending | 15.00011332 | Apr 27, 01:51 UTC |
morpho WBTC | lending | 1.34347 | Apr 22, 12:21 UTC |
{
"data": {
"symbol": "BTC",
"rates": [
{
"provider": "spark",
"symbol": "BTC",
"category": "lending",
"rate": 0.00001,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "03406d3a-fcc4-4fe3-8809-7a95222951b6",
"project": "sparklend",
"tvlUsd": 176215182,
"apyBase": 0.00001,
"exposure": "single",
"poolMeta": null,
"apyReward": null,
"apyMean30D": 0.00001,
"isStablecoin": false
},
"lastUpdated": "2026-06-21T11:21:12.264Z",
"coinId": "bitcoin",
"providerSymbol": "WBTC"
}
],
"count": 14
}
}Made for teams shipping yield features.
Skip maintaining provider integrations — pull verified yield data from one typed API.
Wallets
Add yield discovery without maintaining provider integrations.
For walletsFintechs
Surface stablecoin and crypto yield data inside your products.
For fintechsExchanges / providers
Benchmark rates and understand market positioning.
For exchangesAI agents
Call live yield data through API-backed MCP tools.
For AI agentsCopy-paste integration recipes.
Practical snippets against documented REST endpoints — best stablecoin yields, staking rewards and lending-vs-borrowing spreads. Every response carries freshness, source and confidence so you know how fresh each rate is.
Best stablecoin yield across providers
Pull live USDC lending rates across every covered provider, then sort by APY to find the top stablecoin yield.
// Best stablecoin yield: fetch USDC lending rates, sort by rate const res = await fetch( "https://api.bitcompare.net/api/v1/rates/USDC?category=lending", { headers: { Authorization: `Bearer ${process.env.BITCOMPARE_API_KEY}` } } ) const { data } = await res.json() const best = data.rates.sort((a, b) => Number(b.rate) - Number(a.rate))[0]
{
"data": {
"symbol": "USDC",
"rates": [
{
"provider": "fluid",
"symbol": "USDC",
"category": "lending",
"rate": 6.29,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "4438dabc-7f0c-430b-8136-2722711ae663",
"project": "fluid-lending",
"tvlUsd": 116838581,
"apyBase": 5.25,
"exposure": "single",
"poolMeta": null,
"apyReward": 1.04,
"apyMean30D": 6.85431,
"isStablecoin": true
},
"lastUpdated": "2026-06-21T11:20:50.559Z",
"coinId": "usd-coin",
"providerSymbol": "USDC",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "euler-v2",
"symbol": "USDC",
"category": "lending",
"rate": 2.78441,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "0fde8996-ecdf-441c-94a9-ec67403e9b8c",
"project": "euler-v2",
"tvlUsd": 14522414,
"apyBase": 2.78441,
"exposure": "single",
"poolMeta": "EVK Vault eUSDC-80",
"apyReward": null,
"apyMean30D": 2.68741,
"isStablecoin": true
},
"lastUpdated": "2026-06-21T11:20:34.976Z",
"coinId": "usd-coin",
"providerSymbol": "USDC",
"unitType": "absolute",
"unitSymbol": null
}
],
"count": 18
}
}Track staking rewards for an asset
Query live staking rewards for ETH across validators and platforms to monitor reward rates in your app.
# Track staking rewards for ETH curl -s "https://api.bitcompare.net/api/v1/rates/ETH?category=staking" \ -H "Authorization: Bearer $BITCOMPARE_API_KEY"
{
"data": {
"symbol": "ETH",
"rates": [
{
"provider": "etherfi",
"symbol": "ETH",
"category": "staking",
"rate": 2.86924,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "46bd2bdf-6d92-4066-b482-e885ee172264",
"project": "ether.fi-stake",
"tvlUsd": 3084195719,
"apyBase": 2.77906,
"exposure": "single",
"poolMeta": null,
"apyReward": 0.09018,
"apyMean30D": 2.80592,
"isStablecoin": false
},
"lastUpdated": "2026-06-21T11:21:12.573Z",
"coinId": "ethereum",
"providerSymbol": "WEETH",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "stakewise",
"symbol": "ETH",
"category": "staking",
"rate": 2.17712,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "4d01599c-69ae-41a3-bae1-5fab896f04c8",
"project": "stakewise-v2",
"tvlUsd": 233844142,
"apyBase": 2.17712,
"exposure": "single",
"poolMeta": null,
"apyReward": null,
"apyMean30D": 2.42958,
"isStablecoin": false
},
"lastUpdated": "2026-06-21T11:21:12.476Z",
"coinId": "ethereum",
"providerSymbol": "OSETH",
"unitType": "absolute",
"unitSymbol": null
}
],
"count": 11
}
}Compare lending vs borrowing rates
Fetch BTC lending and borrowing rates side by side to surface the spread between earning and borrowing on the same asset.
// Compare BTC lending vs borrowing rates (one call per category) const [lending, borrowing] = await Promise.all( ["lending", "borrowing"].map((category) => fetch( `https://api.bitcompare.net/api/v1/rates/BTC?category=${category}`, { headers: { Authorization: `Bearer ${process.env.BITCOMPARE_API_KEY}` } } ).then((r) => r.json()) ) ) const spread = Number(borrowing.data.rates[0].rate) - Number(lending.data.rates[0].rate)
{
"data": {
"symbol": "BTC",
"rates": [
{
"provider": "spark",
"symbol": "BTC",
"category": "lending",
"rate": 0.00001,
"metadata": {
"chain": "Ethereum",
"source": "defillama_yields",
"poolId": "03406d3a-fcc4-4fe3-8809-7a95222951b6",
"project": "sparklend",
"tvlUsd": 176215182,
"apyBase": 0.00001,
"exposure": "single",
"poolMeta": null,
"apyReward": null,
"apyMean30D": 0.00001,
"isStablecoin": false
},
"lastUpdated": "2026-06-21T11:21:12.264Z",
"coinId": "bitcoin",
"providerSymbol": "WBTC",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "okx",
"symbol": "BTC",
"category": "lending",
"rate": 1.825,
"metadata": null,
"lastUpdated": "2026-06-21T11:21:10.265Z",
"coinId": "bitcoin",
"providerSymbol": "BTC",
"unitType": "absolute",
"unitSymbol": null
}
],
"count": 14
}
}Full parameters and schemas at docs.bitcompare.net.
Know how fresh and trustworthy every rate is.
Every rate carries freshness, source and confidence — so you can trust what you ship.
How often rates refresh
Rates refresh continuously, typically every 5 minutes, and each carries a freshness signal.
What "verified" means
Verified rates are confirmed against the provider's own source, not estimated.
How source is captured
Each rate records its source type — provider API, partner feed or manual review.
What confidence signals mean
A confidence label flags how reliable a rate is, so you can filter low-confidence data.
Why rates differ
Rates vary by region, asset, tier, lockup, balance and provider terms — exposed where available.
Sponsored vs organic
Sponsored placements are clearly separated from organic rate data and never alter it.
Everything you need to integrate.
Docs, schema and agent-ready surfaces — built for developers and AI agents alike.
Start building in minutes.
10,000 requests a month free — no credit card. Paid plans unlock higher volume.
- Free tier: 10,000 requests/month, no card required
- Paid plans for higher volume and SLAs
- Sign in only for keys, billing and dashboards at pro.bitcompare.net
- Docs and the OpenAPI spec are public — no login required
- MCP tools are powered by the same API and data layer