DeFi yield pools across chains, with base APY, reward APY, TVL and impermanent-loss risk on every row.
One row per pool, not per pool per day. Top of the book by TVL: Lido stETH at $24B, Fluid DEX USDC-CSUSDL at $16B (apy 0.0% — a real, deliberate value, not a missing field).
Every field the corpus returns for one record. Real shape — walked corpus-wide, not sampled.
A curl that runs against the live API right now, plus the MCP tool names for the same data.
MCP tools
get_tvl_yieldsget_tvl_yields_detailget_tvl_yields_topThree concrete questions this capability answers that a general crypto API does not.
il_risk is yes, no, or unknown and is present on every row, so a UI can filter without a per-pool allowlist.tvl_usd descending, so ?limit=5 returns the largest pools by capital — Lido stETH at $25B, then Fluid DEX and Binance staked ETH. Note that /tvl/yields/top/ is a different thing: it ranks by APY, returns a different envelope ({ pools: { config, data } }, attributed to DefiLlama), and its leaders are five-figure APYs on pools with almost no capital in them.Required, not optional. Coverage gaps, staleness and parameter traps that were observed by running the curl above against the live server on 2026-09-18.
The date field is the pool's last update, not today.
Each pool's date is independent. Walked 300 rows: 73 distinct date values, ranging from June through September. The default TVL ordering gives you the top of the book today, but the rows in it may be weeks old individually. Do not call the result a market snapshot.
?ordering= is not live on the public API yet.
The API defines four sort fields — tvl_usd, apy, apy_base, apy_reward, each ascending or descending with a - prefix. None of them take effect here yet: every value, including an invalid one, returns the default order. That default is tvl_usd descending, so the common case already works without the parameter. Sort client-side for anything else until it ships.
apy: 0.0 on a $16B pool is real.
Fluid DEX's USDC-CSUSDL pool carries TVL $16.44B and APY 0.0% — a stable pair, fee-light at the time of the snapshot. The corpus does not exclude zero-APY pools and the figure should not be treated as a missing value.
APY vs APY-base vs APY-reward are separate fields.
apy is the headline figure a reader wants; apy_base is the underlying yield with no incentives; apy_reward is the boost from token emissions. apy_reward is null on pure-LST pools. The three can move independently; do not collapse them client-side before comparing pools.