> ## Documentation Index
> Fetch the complete documentation index at: https://docs.b3os.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Pool Yields

Look up real LP-pool APYs from DefiLlama Yields, filtered by chain, protocol, and tokens. Returns each pool's fee APR (apyBase), incentive APR (apyReward), total apy, 7-day APY change, TVL, and 24h volume — sorted and limited in memory; APY fields are passed through untouched (may be null). Ideal for: finding the highest-yielding pools for a token pair, comparing fee vs incentive APR across protocols, spotting pools whose APY dropped over the last week.

Catalog action Blockchain Data

Look up real LP-pool APYs from DefiLlama Yields, filtered by chain, protocol, and tokens. Returns each pool's fee APR (apyBase), incentive APR (apyReward), total apy, 7-day APY change, TVL, and 24h volume — sorted and limited in memory; APY fields are passed through untouched (may be null). Ideal for: finding the highest-yielding pools for a token pair, comparing fee vs incentive APR across protocols, spotting pools whose APY dropped over the last week.


## At a Glance

| Field | Value |
| --- | --- |
| Action ID | `defillama-get-pool-yields` |
| Category | Blockchain Data |
| Connector | Not required |
| Requires gas | No |
| Funds movement | None declared |
| Tags | `defi`, `yield`, `apy`, `pool`, `liquidity`, `read` |

## Payload Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `chains` | `array` | No | Filter by chain. Case-insensitive names + aliases \(eth/ethereum→Ethereum, arb→Arbitrum, base, rh/robinhood→Robinhood Chain, op/optimism→OP Mainnet, polygon/matic, bsc/bnb, avax\). Unrecognized values match pool.chain case-insensitively. |
| `projects` | `array` | No | Filter by protocol. A pool matches if its project equals OR starts with the value \(uni/uniswap matches all uniswap versions; aerodrome matches aerodrome-v1 and aerodrome-slipstream\). |
| `tokens` | `array` | No | Filter by tokens in the pool symbol \(order-independent\). A pool matches if its symbol contains ALL provided tokens, e.g. \['WETH','USDC'\] matches 'USDC-WETH'. |
| `minTvlUsd` | `number` | No | Drop pools below this TVL in USD \(default: 10000\). |
| `minApy` | `number` | No | Keep only pools with total apy &gt;= this value \(percent\). |
| `stablecoinOnly` | `boolean` | No | Keep only pools flagged as stablecoin pools. |
| `sortBy` | `string` | No | Field to sort pools by, descending. Nulls sink to the bottom \(default: apy\). |
| `limit` | `number` | No | Maximum number of pools to return \(default: 20, min: 1, max: 100\). |

## Result Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `pools` | `array` | Yes | Matching pools after sort + limit. |
| `count` | `number` | Yes | Number of pools returned \(after limit\) |
| `totalMatched` | `number` | Yes | Number of pools matching filters \(before limit\) |

## Examples

**Workflow node**

```json
{
  "type": "defillama-get-pool-yields",
  "payload": {
    "chains": [],
    "projects": [],
    "tokens": [
      "ETH"
    ],
    "minTvlUsd": 10000,
    "minApy": 1
  },
  "children": []
}
```
  **Test with API**

```bash
curl -X POST "https://api.b3os.org/v1/actions/defillama-get-pool-yields/test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "chains": [],
    "projects": [],
    "tokens": [
      "ETH"
    ],
    "minTvlUsd": 10000,
    "minApy": 1
  }
}'
```

**Use expressions for dynamic values**

Payload fields can use workflow expressions such as `{{$trigger.body.amount}}`, `{{$nodes.fetch.result.price}}`, and `{{$props.asset}}` when the value should come from a trigger, prior node, or reusable workflow prop.