Pools API

Solana LP pools as JSON.

Live pool snapshots across Solana AMMs, including quoted APY, APY basis, TVL, volume, fee tiers, token mints, source labels, and fallback status.

GET/api/pools

Access

Auth
No API key, public beta
CORS
Enabled
Rate limit
120 requests / minute / IP
Cache
60s server cache
Fallback
Stale or bundled snapshot if live sources fail

Useful fields

  • modelive, partial, snapshot, or fallback
  • pools[].apySource-reported annualized APY, not normalized to one interval
  • pools[].apyBasisYield source basis, like defillama-current or meteora-native
  • pools[].apyWindowSource window label, such as source-current or native-current
  • pools[].apySourceNoteHuman-readable note explaining the APY source and window limits
  • pools[].apyIsNormalizedCurrently false; compare source notes before assuming a common window
  • pools[].tvlUsdVisible pool liquidity in USD
  • pools[].feeTierFee or pool parameter label
  • pools[].sourceLabelDefiLlama, Meteora native, Omnipair native

Quick Start

curl
curl https://yields.gg/api/pools
JavaScript
const response = await fetch("https://yields.gg/api/pools?style=range&amm=Meteora&minTvl=1000&limit=25");const snapshot = await response.json(); console.log({  remaining: response.headers.get("X-RateLimit-Remaining"),  cache: response.headers.get("X-Data-Cache"),  returned: snapshot.totalPools,}); console.log(snapshot.pools.map(({ pair, amm, apy, apyBasis, apyWindow, tvlUsd }) => ({  pair,  amm,  apy,  apyBasis,  apyWindow,  tvlUsd,})));

Query params

  • styleall, shared, or range. Long forms still work.
  • ammComma-separated AMM names, like Meteora,Raydium
  • categoryStable, Majors, Alt, or Meme
  • minTvlMinimum visible pool liquidity in USD
  • pairOrder-insensitive pair lookup, like SOL-USDC
  • limitReturn up to 1,000 pools
filtered curl
curl "https://yields.gg/api/pools?style=range&amm=Meteora&minTvl=1000&limit=25"

Response

shape
{  "generatedAt": "2026-04-25T07:30:00.000Z",  "mode": "live",  "source": "DefiLlama Solana LP feed plus Meteora native DLMM pools plus Omnipair native indexer pools",  "totalPools": 25,  "unfilteredTotalPools": 3021,  "totalAmmCount": 1,  "appliedFilters": {    "style": "concentrated",    "amm": ["Meteora"],    "minTvl": 1000,    "limit": 25  },  "pools": [    {      "id": "pool-address-or-source-id",      "amm": "Meteora",      "project": "meteora",      "pair": "SOL-USDC",      "pairTokens": ["SOL", "USDC"],      "feeTier": "DLMM - 80 step - 0.80%",      "apy": 42.8,      "apyBase": 38.2,      "apyReward": 4.6,      "apyBasis": "meteora-native",      "apyWindow": "native-current",      "apyIsNormalized": false,      "apySourceNote": "Meteora native API quote using its APY/APR fields plus farm APY when supplied.",      "tvlUsd": 1200000,      "volumeUsd1d": 180000,      "tokenAddresses": ["...", "..."],      "sourceLabel": "Meteora native"    }  ]}