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

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.

CoverageLive
366
Assets covered
61
Providers tracked
40,312
Rates monitored
31,965
Updates in 24h
5m
Median refresh
3s
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": "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.

Live
ProviderCategoryRateUpdated
spark
WBTC
lending0.00001Jun 21, 11:21 UTC
okx
BTC
lending1.825Jun 21, 11:21 UTC
kamino
WBTC
lending0.00001Jun 21, 11:21 UTC
fluid
WBTC
lending0.14Jun 21, 11:20 UTC
euler-v2
WBTC
lending0.00051Jun 21, 11:20 UTC
nexo
BTC-180D
lending6.2Jun 21, 11:20 UTC
youhodler
BTC
lending8Jun 21, 11:20 UTC
gemini
BTC
lending0.01Jun 21, 11:20 UTC
bitfinex
BTC
lending0.0021Jun 21, 11:20 UTC
nebeus
BTC
lending4.5Jun 21, 11:20 UTC
aqru
BTC
lending2.5Jun 21, 11:20 UTC
justlend
BTC
lending0.02048Jun 18, 21:21 UTC
earnpark
BTC
lending15.00011332Apr 27, 01:51 UTC
morpho
WBTC
lending1.34347Apr 22, 12:21 UTC
GET /api/v1/rates/BTC?category=lendingLive
{
  "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
  }
}
Click a row to inspect its response · Updated every 5 minFull schema in the docs
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": "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"
Example response
{
  "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)
Example response
{
  "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.

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.

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