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 crypto yield API for live and historical lending, staking, borrowing, and stablecoin rates across CeFi and DeFi providers — with freshness, source, and confidence on every rate, plus a free tier and MCP tools for AI agents.

CoverageLive
590
Assets covered
56
Providers tracked
42,530
Rates monitored
30,049
Updates in 24h
4m
Median refresh
6s
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.96048111,
        "metadata": {
          "mode": "comet_supply_rate",
          "method": "getSupplyRate",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0xc3d688B66703497DAA19211EEdff47f25384cdc3"
        },
        "lastUpdated": "2026-09-02T20:35:48.404Z",
        "coinId": "usd-coin",
        "providerSymbol": "USDC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 105,
        "stale": false
      },
      {
        "provider": "aave-v3",
        "symbol": "USDC",
        "category": "lending",
        "rate": 3.37102239,
        "metadata": {
          "mode": "aave_liquidity_rate",
          "method": "getReserveData",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
        },
        "lastUpdated": "2026-09-02T20:35:32.128Z",
        "coinId": "usd-coin",
        "providerSymbol": "USDC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 121,
        "stale": false
      },
      {
        "provider": "aqru",
        "symbol": "USDC",
        "category": "lending",
        "rate": 6,
        "metadata": null,
        "lastUpdated": "2026-09-02T20:35:29.311Z",
        "coinId": "usd-coin",
        "providerSymbol": "USDC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 124,
        "stale": false
      }
    ],
    "count": 15
  }
}

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
aave-v3
BTC
lending0.00575174Sep 2, 20:35 UTC
aqru
BTC
lending2.5Sep 2, 20:35 UTC
bitfinex
BTC
lending0.001Sep 2, 20:35 UTC
nexo
BTC-180D
lending6.2Sep 2, 20:30 UTC
justlend
BTC
lending0.00103987Sep 2, 20:30 UTC
spark
BTC
lending0.0000143Sep 2, 20:30 UTC
kamino
WBTC
lending0.03303297Sep 2, 20:30 UTC
youhodler
BTC
lending7Sep 2, 20:30 UTC
nebeus
BTC
lending12Sep 2, 20:30 UTC
okx
BTC
lending1.825Sep 2, 20:30 UTC
gemini
BTC
lending0.01Sep 2, 20:30 UTC
euler-v2
WBTC
lending0.01016379Sep 2, 20:30 UTC
GET /api/v1/rates/BTC?category=lendingLive
{
  "data": {
    "symbol": "BTC",
    "rates": [
      {
        "provider": "aave-v3",
        "symbol": "BTC",
        "category": "lending",
        "rate": 0.00575174,
        "metadata": {
          "mode": "aave_liquidity_rate",
          "method": "getReserveData",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
        },
        "lastUpdated": "2026-09-02T20:35:32.128Z",
        "coinId": "bitcoin",
        "providerSymbol": "BTC"
      }
    ],
    "count": 12
  }
}
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.96048111,
        "metadata": {
          "mode": "comet_supply_rate",
          "method": "getSupplyRate",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0xc3d688B66703497DAA19211EEdff47f25384cdc3"
        },
        "lastUpdated": "2026-09-02T20:35:48.404Z",
        "coinId": "usd-coin",
        "providerSymbol": "USDC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 105,
        "stale": false
      },
      {
        "provider": "aave-v3",
        "symbol": "USDC",
        "category": "lending",
        "rate": 3.37102239,
        "metadata": {
          "mode": "aave_liquidity_rate",
          "method": "getReserveData",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
        },
        "lastUpdated": "2026-09-02T20:35:32.128Z",
        "coinId": "usd-coin",
        "providerSymbol": "USDC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 121,
        "stale": false
      }
    ],
    "count": 15
  }
}

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.6,
        "metadata": null,
        "lastUpdated": "2026-09-02T20:31:00.123Z",
        "coinId": "ethereum",
        "providerSymbol": "ETH",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 104,
        "stale": false
      },
      {
        "provider": "frax",
        "symbol": "ETH",
        "category": "staking",
        "rate": 2.60329303,
        "metadata": {
          "url": "https://api.frax.finance/v2/frxeth/summary/latest",
          "field": "sfrxethApr",
          "source": "multi_source"
        },
        "lastUpdated": "2026-09-02T20:30:49.137Z",
        "coinId": "ethereum",
        "providerSymbol": "ETH",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 115,
        "stale": false
      }
    ],
    "count": 10
  }
}

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": "aave-v3",
        "symbol": "BTC",
        "category": "lending",
        "rate": 0.00575174,
        "metadata": {
          "mode": "aave_liquidity_rate",
          "method": "getReserveData",
          "source": "onchain_rate",
          "chainId": 1,
          "contract": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
        },
        "lastUpdated": "2026-09-02T20:35:32.128Z",
        "coinId": "bitcoin",
        "providerSymbol": "BTC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 12,
        "stale": false
      },
      {
        "provider": "aqru",
        "symbol": "BTC",
        "category": "lending",
        "rate": 2.5,
        "metadata": null,
        "lastUpdated": "2026-09-02T20:35:29.311Z",
        "coinId": "bitcoin",
        "providerSymbol": "BTC",
        "unitType": "percentage",
        "unitSymbol": "%",
        "ageSeconds": 15,
        "stale": false
      }
    ],
    "count": 12
  }
}

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 the crypto yield API.

Docs, schema and agent-ready surfaces — built for developers and AI agents alike.

FAQ

Crypto yield API FAQs

Is there a crypto lending rates API?
Yes. The Yield API returns live and historical lending rates for 590+ 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