NewBitcompare Yield API and MCP now give developers and AI agents access to live crypto yield data.

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.

CoverageLive
616
Assets covered
58
Providers tracked
41,673
Rates monitored
32,233
Updates in 24h
3m
Median refresh
17s
Freshest provider
What the API includes

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
Example rate response
// 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.

Live
ProviderCategoryRateUpdated
aqru
BTC
lending2.5Jul 24, 20:05 UTC
bitfinex
BTC
lending0.0015Jul 24, 20:05 UTC
aave-v3
BTC
lending0.0064924Jul 24, 20:01 UTC
justlend
BTC
lending0.0198318Jul 24, 20:00 UTC
gemini
BTC
lending0.01Jul 24, 20:00 UTC
okx
BTC
lending1.825Jul 24, 20:00 UTC
kamino
WBTC
lending0.02437552Jul 24, 20:00 UTC
spark
BTC
lending0.00000627Jul 24, 20:00 UTC
earnpark
BTC
lending10.00003436Jul 24, 20:00 UTC
youhodler
BTC
lending8Jul 24, 20:00 UTC
nexo
BTC-180D
lending6.2Jul 24, 20:00 UTC
morpho
WBTC
lending0.00004974Jul 24, 20:00 UTC
nebeus
BTC
lending4.5Jul 24, 20:00 UTC
lunefi
lending21.5Jul 21, 09:37 UTC
euler-v2
WBTC
lending0.17559976Jul 14, 11:20 UTC
GET /api/v1/rates/BTC?category=lendingLive
{
  "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
  }
}
Click a row to inspect its response · Updated every 5 minFull schema in the docs
Rate endpoints

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 rates

Staking 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 rewards

Crypto 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 asset
Recipes

Copy-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]
Example response
{
  "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"
Example response
{
  "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)
Example response
{
  "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.

Freshness & trust

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.

Developer resources

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