DeFi Yield Pools Scraper (APY, TVL, IL Risk)
Pricing
from $11.34 / 1,000 yield pool records
DeFi Yield Pools Scraper (APY, TVL, IL Risk)
Scrape thousands of DeFi liquidity pools with live APY, base vs reward yield, TVL, 1D/7D/30D APY deltas, impermanent-loss risk and ML trend prediction. Filter by chain, protocol, token or stablecoin. Export to JSON, CSV or Excel.
Pricing
from $11.34 / 1,000 yield pool records
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
DeFi Yield Pools Scraper (APY, TVL, IL Risk)
Here is one real result, with every field the actor returns (the pool_history and AI add-ons enabled):
{"chain": "Ethereum","project": "lido","symbol": "STETH","poolId": "747c1d2a-c668-4682-b9f9-296708a3dd90","poolMeta": null,"tvlUsd": 22760693591,"apy": 2.382,"apyBase": 2.382,"apyReward": null,"apyMean30d": 2.1932,"apyPct1D": 0.197,"apyPct7D": 0.182,"apyPct30D": 0.185,"rewardTokens": null,"stablecoin": false,"ilRisk": "no","exposure": "single","predictedClass": "Stable/Up","predictedProbability": 74,"underlyingTokens": ["0x0000000000000000000000000000000000000000"],"volumeUsd1d": null,"volumeUsd7d": null,"poolUrl": "https://defillama.com/yields/pool/747c1d2a-c668-4682-b9f9-296708a3dd90","historyPoints": 1542,"historyStart": "2022-05-03T00:00:00.000Z","historyEnd": "2026-08-21T08:01:46.144Z","apyAvgHist": 3.4477,"apyVolatility": 1.0517,"apyMinHist": 2.045,"apyMaxHist": 11.773,"tvlMinHist": 3874088251,"tvlMaxHist": 42441513059,"riskLevel": "Low","sustainability": "The APY appears sustainable as it is entirely base yield with a stable trend.","redFlags": null,"opportunityNote": "This pool suits conservative investors looking for stable returns.","source": "defillama.com","observedAt": "2026-08-21T08:26:26.566Z","error": null}
The most complete DeFi yield scraper available. It returns every field the yields dataset exposes for each liquidity pool (chain, protocol, token symbol, TVL, total APY split into base and reward), plus the derived fields most scrapers skip: 1D/7D/30D APY deltas, impermanent-loss risk, asset exposure, an ML trend prediction, and optional per-pool history with computed APY volatility and an AI risk read. It scans thousands of pools across every chain and gives you eight filters to target exactly the yield you want.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Use cases
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor scans the full DeFi yields universe (thousands of liquidity pools across every chain and protocol) and returns one clean record per pool that matches your filters. Each record carries the pool identity (chain, protocol, token symbol, pool id and link), the money numbers (TVL in USD, total APY, and the split into base APY from fees or lending and reward APY from token emissions), and the risk and trend signals that tell you whether a yield is real: the 1-day, 7-day and 30-day change in APY, the 30-day mean APY, an impermanent-loss risk flag, single or multi asset exposure, and a machine-learning prediction of where the APY is heading with a confidence score.
You filter the set with eight controls: chain, protocol name, token symbol, minimum TVL, minimum and maximum APY, a stablecoin-only switch, and a sort by APY or TVL. Numbers are returned as plain numbers (for example 2.382 for 2.382%, and 22760693591 for TVL), so nothing needs post-processing.
Two optional add-ons deepen each record: a pool-history add-on that pulls the full APY and TVL time series and computes the average APY, APY volatility (standard deviation), and min and max APY and TVL over the pool's life, and an AI yield-risk add-on that reads the APY composition, IL risk and recent deltas to return a risk level, a sustainability verdict, concrete red flags and a one-line opportunity note.
Use cases
- DeFi yield farming. Rank the highest-APY pools on a chain or protocol, then use the base vs reward split and the APY deltas to tell durable yield from emissions that are already fading.
- APY monitoring. Track how a pool's APY has moved over 1, 7 and 30 days, and with the history add-on measure its APY volatility so you can size positions to how stable the yield really is.
- Risk screening. Filter out impermanent-loss pools, cap the maximum APY to skip unrealistic emission traps, require a minimum TVL to avoid illiquid pools, and add the AI risk read to surface red flags before you deposit.
- Stablecoin yield. Flip the stablecoin-only switch to list lower-risk stablecoin pools and compare their yields across chains and protocols.
- Portfolio and treasury allocation. Pull the top pools by TVL for the assets you hold and export the full set to a spreadsheet to plan allocations across chains.
- Analytics and dashboards. Feed clean per-pool APY, TVL and trend data into your own dashboards, alerts or models on a schedule.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the highest-APY Ethereum pools above one million dollars of TVL.
{"chain": "Ethereum","minTvl": 1000000,"sort": "apy","maxResults": 25}
To list stablecoin USDC pools instead:
{"symbol": "USDC","stablecoinOnly": true,"sort": "tvl","maxResults": 25}
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
chain | string | no | (all) | Filter to a single chain, matched exactly and case-insensitively, for example Ethereum, Arbitrum, Solana, Base, Polygon. |
project | string | no | (all) | Filter to protocols whose name contains this text, for example aave, lido, uniswap, curve, pendle. |
symbol | string | no | (all) | Filter to pools whose symbol contains this token, for example USDC, ETH, WBTC. Matches either side of a pair. |
minTvl | integer | no | (none) | Only return pools with at least this much TVL in USD, for example 1000000. |
minApy | number | no | (none) | Only return pools with APY at or above this percent, for example 5. |
maxApy | number | no | (none) | Only return pools with APY at or below this percent, for example 100. Use to skip unrealistic emission APYs. |
stablecoinOnly | boolean | no | false | Return only pools flagged as stablecoin pools. |
sort | enum | no | apy | Sort matching pools before the cap. apy = highest APY first, tvl = largest TVL first. |
includeHistory | boolean | no | false | Paid add-on. Attach the APY and TVL time series plus derived average, volatility and min/max. Charged only when a series is returned. Disabled on free plans. |
aiYieldRisk | boolean | no | false | Paid add-on. Add an AI risk level, sustainability read, red flags and an opportunity note. Charged only when a usable analysis is returned. Disabled on free plans. |
maxResults | integer | no | 10 | Maximum pools to return across the run, after filtering and sorting. Free Apify plans are capped at 10 per run. |
All filters are optional. With no filters the actor returns the top pools by APY. Filters combine, so setting several narrows the set.
Output reference
One dataset item per pool. Numeric fields are returned as numbers, or null when the source has no value. Percentages are plain numbers without the % sign.
| Field | Type | Description |
|---|---|---|
chain | string | Blockchain the pool is on. |
project | string | Protocol the pool belongs to. |
symbol | string | Token or pair symbol of the pool. |
poolId | string | DefiLlama pool identifier. |
poolMeta | string | Extra pool label or variant, for example a fee tier or lock period. |
tvlUsd | number | Total value locked in the pool, in USD. |
apy | number | Total net APY percent (base plus reward). |
apyBase | number | Base APY percent from trading fees or lending interest. |
apyReward | number | Reward APY percent from token emissions or incentives. |
apyMean30d | number | Mean APY percent over the last 30 days. |
apyPct1D | number | Change in APY over the last 1 day, in percentage points. |
apyPct7D | number | Change in APY over the last 7 days, in percentage points. |
apyPct30D | number | Change in APY over the last 30 days, in percentage points. |
rewardTokens | string[] | Contract addresses of the reward tokens, or null. |
stablecoin | boolean | True if the pool is a stablecoin pool. |
ilRisk | string | Impermanent-loss risk flag, yes or no. |
exposure | string | Asset exposure, single or multi. |
predictedClass | string | ML prediction of the APY direction, for example Stable/Up or Down. |
predictedProbability | number | Confidence percent of the ML prediction. |
underlyingTokens | string[] | Contract addresses of the underlying tokens, or null. |
volumeUsd1d | number | Trading volume over the last 1 day in USD, where available. |
volumeUsd7d | number | Trading volume over the last 7 days in USD, where available. |
poolUrl | string | Link to the pool page on DefiLlama. |
historyPoints | number | Number of history data points returned (history add-on). |
historyStart | string | First timestamp of the history series (history add-on). |
historyEnd | string | Last timestamp of the history series (history add-on). |
apyAvgHist | number | Average APY over the full history (history add-on). |
apyVolatility | number | Standard deviation of APY over the history (history add-on). |
apyMinHist | number | Minimum APY over the history (history add-on). |
apyMaxHist | number | Maximum APY over the history (history add-on). |
tvlMinHist | number | Minimum TVL over the history in USD (history add-on). |
tvlMaxHist | number | Maximum TVL over the history in USD (history add-on). |
riskLevel | string | AI risk level, Low to Very High (AI add-on). |
sustainability | string | AI read on whether the APY looks sustainable (AI add-on). |
redFlags | string[] | AI-identified risk red flags (AI add-on), or null. |
opportunityNote | string | AI one-line opportunity note (AI add-on). |
source | string | Data source. |
observedAt | string | ISO 8601 timestamp when the record was collected. |
error | string | null on success. When no pool matches the filters, a single item with a populated error field is written and not charged. |
Example output record
Real stablecoin pool from a live run (input {"symbol":"USDC","stablecoinOnly":true,"maxResults":3}), add-ons off:
{"chain": "Avalanche","project": "blackhole-clmm","symbol": "REUSD-USDC","poolId": "8f169a34-dabc-46a3-b0fe-58e75a337611","poolMeta": "CL - 1","tvlUsd": 11067,"apy": 1563.4824,"apyBase": 0,"apyReward": 1563.4824,"apyMean30d": 80.0565,"apyPct7D": 1558.2495,"apyPct30D": 1558.6127,"rewardTokens": ["0xcd94a87696FAC69Edae3a70fE5725307Ae1c43f6"],"stablecoin": true,"ilRisk": "no","exposure": "multi","predictedClass": "Down","predictedProbability": 93,"poolUrl": "https://defillama.com/yields/pool/8f169a34-dabc-46a3-b0fe-58e75a337611","source": "defillama.com","observedAt": "2026-08-21T08:25:40.641Z","error": null}
Note how apyBase is 0 and all of the APY is apyReward, with a Down ML prediction: a reward-driven yield the deltas already flag as fading.
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~defi-yield-pools-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"chain":"Ethereum","minTvl":1000000,"sort":"apy","maxResults":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~defi-yield-pools-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"symbol":"USDC","stablecoinOnly":true,"sort":"tvl","maxResults":50}'
Apify CLI:
apify call scrapers_lat/defi-yield-pools-scraper \--input '{"project":"lido","includeHistory":true,"aiYieldRisk":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per pool returned (
resultevent), plus a small one-timeapify-actor-startevent per run. See the pricing tab for current prices. - Pool history add-on.
includeHistoryis off by default. It fetches the pool's APY and TVL time series and computes volatility and averages. Charged (pool_historyevent) only when a real series is returned. - AI yield-risk add-on.
aiYieldRiskis off by default. Charged (ai_yield_riskevent) only when the AI returns a usable risk analysis. - No charge on failure. When no pool matches your filters, a single item with a populated
errorfield is written and nothing is charged. Empty runs cost nothing. - Add-ons disabled on free plans. Both add-ons run only for paying users, since they add extra fetch and AI cost.
- Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxResults.
FAQ and troubleshooting
A run returned a single item with an error field. Why?
No pool matched your filters. Loosen the chain, protocol, symbol, or the TVL and APY bounds. That row is not charged.
Are percentages returned with a % sign?
No. APY and delta metrics are plain numbers, so 2.382% becomes 2.382. TVL is returned as a full USD number.
What is the difference between apyBase and apyReward?
apyBase is the organic yield from trading fees or lending interest. apyReward is yield paid in incentive tokens, which can stop at any time. A high apyReward with a falling apyPct7D is a classic sign of a fading emission.
What is predictedClass?
A machine-learning prediction of where the pool's APY is heading (for example Stable/Up or Down), with predictedProbability as the confidence percent.
What does the history add-on add? The full APY and TVL time series for the pool, plus the number of points, the start and end timestamps, the average APY, the APY volatility (standard deviation), and the minimum and maximum APY and TVL over the pool's life.
Does this need a login or an API key? No. You never provide any credentials. Proxy and retries are handled internally.
Is this an official DefiLlama tool? No. This actor is independent and has no affiliation with DefiLlama. It reads only data that is publicly available.
Related scrapers
- DefiLlama Protocols Scraper: protocol-level TVL, chains and category across DeFi.
- Finviz Stocks Scraper: stock fundamentals, screener, insider trades and news.
- FRED Economic Data Scraper: US and global economic time series.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, web3, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with DefiLlama. Accesses only publicly available data.
