Yield API
The crypto yield API for live and historical rates.
One typed API for live and historical lending, staking, borrowing, and stablecoin yield across CeFi and DeFi providers — with freshness, source, and confidence on every rate, plus a free tier and MCP tools for AI agents.
- 616
- Assets covered
- 58
- Providers tracked
- 41,673
- Rates monitored
- 32,233
- Updates in 24h
- 3m
- Median refresh
- 17s
- 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": "compound-v3", "symbol": "USDC", "category": "lending", "rate": 3.10639305, "metadata": { "mode": "comet_supply_rate", "method": "getSupplyRate", "source": "onchain_rate", "chainId": 1, "contract": "0xc3d688B66703497DAA19211EEdff47f25384cdc3" }, "lastUpdated": "2026-07-24T20:05:42.394Z", "coinId": "usd-coin", "providerSymbol": "USDC", "unitType": "absolute", "unitSymbol": null }, { "provider": "aqru", "symbol": "USDC", "category": "lending", "rate": 6, "metadata": null, "lastUpdated": "2026-07-24T20:05:24.157Z", "coinId": "usd-coin", "providerSymbol": "USDC", "unitType": "absolute", "unitSymbol": null }, { "provider": "aave-v3", "symbol": "USDC", "category": "lending", "rate": 3.1394366, "metadata": { "mode": "aave_liquidity_rate", "method": "getReserveData", "source": "onchain_rate", "chainId": 1, "contract": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2" }, "lastUpdated": "2026-07-24T20:01:03.367Z", "coinId": "usd-coin", "providerSymbol": "USDC", "unitType": "absolute", "unitSymbol": null } ], "count": 17 } }
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 |
|---|---|---|---|
aqru BTC | lending | 2.5 | Jul 24, 20:05 UTC |
bitfinex BTC | lending | 0.0015 | Jul 24, 20:05 UTC |
aave-v3 BTC | lending | 0.0064924 | Jul 24, 20:01 UTC |
justlend BTC | lending | 0.0198318 | Jul 24, 20:00 UTC |
gemini BTC | lending | 0.01 | Jul 24, 20:00 UTC |
okx BTC | lending | 1.825 | Jul 24, 20:00 UTC |
kamino WBTC | lending | 0.02437552 | Jul 24, 20:00 UTC |
spark BTC | lending | 0.00000627 | Jul 24, 20:00 UTC |
earnpark BTC | lending | 10.00003436 | Jul 24, 20:00 UTC |
youhodler BTC | lending | 8 | Jul 24, 20:00 UTC |
nexo BTC-180D | lending | 6.2 | Jul 24, 20:00 UTC |
morpho WBTC | lending | 0.00004974 | Jul 24, 20:00 UTC |
nebeus BTC | lending | 4.5 | Jul 24, 20:00 UTC |
lunefi | lending | 21.5 | Jul 21, 09:37 UTC |
euler-v2 WBTC | lending | 0.17559976 | Jul 14, 11:20 UTC |
{
"data": {
"symbol": "BTC",
"rates": [
{
"provider": "aqru",
"symbol": "BTC",
"category": "lending",
"rate": 2.5,
"metadata": null,
"lastUpdated": "2026-07-24T20:05:24.157Z",
"coinId": "bitcoin",
"providerSymbol": "BTC"
}
],
"count": 15
}
}One API covers every rate category. Each endpoint returns the same normalized JSON schema, so lending, staking and per-asset requests share one integration.
Crypto lending rates API
Live lending APY per asset and provider across CeFi and DeFi, with base vs max rate, freshness and source signals on every rate.
GET /api/v1/rates/{symbol}?category=lendingCompare live lending ratesStaking rewards API
Staking reward rates per asset across validators, exchanges and liquid staking providers, normalized to the same schema as lending.
GET /api/v1/rates/{symbol}?category=stakingCompare staking rewardsCrypto rates by asset
All rate categories for a single asset in one call — lending, staking and borrowing side by side, ready for per-coin pages and agent lookups.
GET /api/v1/rates/{symbol}Browse rates by assetMade for teams shipping yield features.
Skip maintaining provider integrations — pull verified yield data from one typed API.
The Yield API is one surface of Bitcompare's yield intelligence layer, backed by historical rate data across every covered asset and provider.
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": "compound-v3",
"symbol": "USDC",
"category": "lending",
"rate": 3.10639305,
"metadata": {
"mode": "comet_supply_rate",
"method": "getSupplyRate",
"source": "onchain_rate",
"chainId": 1,
"contract": "0xc3d688B66703497DAA19211EEdff47f25384cdc3"
},
"lastUpdated": "2026-07-24T20:05:42.394Z",
"coinId": "usd-coin",
"providerSymbol": "USDC",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "aqru",
"symbol": "USDC",
"category": "lending",
"rate": 6,
"metadata": null,
"lastUpdated": "2026-07-24T20:05:24.157Z",
"coinId": "usd-coin",
"providerSymbol": "USDC",
"unitType": "absolute",
"unitSymbol": null
}
],
"count": 17
}
}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": "stakin",
"symbol": "ETH",
"category": "staking",
"rate": 2.71,
"metadata": null,
"lastUpdated": "2026-07-24T20:05:50.161Z",
"coinId": "ethereum",
"providerSymbol": "ETH",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "binance-staked-eth",
"symbol": "ETH",
"category": "staking",
"rate": 2.42748322,
"metadata": {
"mode": "erc4626_price_delta",
"method": "exchangeRate",
"source": "onchain_rate",
"chainId": 1,
"contract": "0xa2E3356610840701BDf5611a53974510Ae27E2e1",
"elapsedSeconds": 604788
},
"lastUpdated": "2026-07-24T20:05:07.783Z",
"coinId": "ethereum",
"providerSymbol": "ETH",
"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": "aqru",
"symbol": "BTC",
"category": "lending",
"rate": 2.5,
"metadata": null,
"lastUpdated": "2026-07-24T20:05:24.157Z",
"coinId": "bitcoin",
"providerSymbol": "BTC",
"unitType": "absolute",
"unitSymbol": null
},
{
"provider": "bitfinex",
"symbol": "BTC",
"category": "lending",
"rate": 0.0015,
"metadata": null,
"lastUpdated": "2026-07-24T20:05:08.578Z",
"coinId": "bitcoin",
"providerSymbol": "BTC",
"unitType": "absolute",
"unitSymbol": null
}
],
"count": 15
}
}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.
FAQ
Frequently asked questions
- Is there a crypto lending rates API?
- Yes. The Yield API returns live and historical lending rates for 610+ assets across 55+ CeFi and DeFi providers — for example GET /api/v1/rates/USDC?category=lending — with per-rate freshness and source signals. The same data powers the lending rates comparison pages.
- Is there a staking rewards API?
- Yes. Staking reward rates are served from the same endpoint with category=staking, covering validators, exchanges and liquid staking providers, normalized to the same JSON schema as lending and borrowing rates.
- Can I get crypto rates for a specific asset?
- Yes. Requesting an asset without a category filter — for example GET /api/v1/rates/ETH — returns every rate category for that asset in a single call, lending, staking and borrowing side by side, which is the shape most apps and AI agents want for per-coin views.
- Does the API cover both CeFi and DeFi?
- Yes. Every rate is classified CeFi or DeFi and fixed or flexible, so you can filter or compare across both in one response instead of stitching together separate sources.
- Can AI agents use the Yield API?
- Yes. The REST API has a public OpenAPI spec and a free tier, and the same data layer is exposed as MCP tools for agents — connect via the hosted MCP endpoint or the @bitcompare/mcp-server npm package.
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