# DeFi Yield Pool API
> Live detail and full APY/TVL history for any DeFi yield pool, keyless. Unlike current-yield screeners, this is the per-pool time dimension: look up a pool by its id for its current APY (base + reward), TVL, risk flags and forecast, then pull its APY and TVL over time to judge whether a headline yield is sustainable or a fading incentive. Search 15,000+ pools by token, project or chain to find a pool id. Live, nothing stored. The yield-history layer for farming, allocation, backtesting and risk apps — distinct from current-yield lists, this tracks a single pool yield through time.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/yieldpool-api/..."
```

## Pricing
- **Free** (Free) — 2,700 calls/Mo, 3 req/s
- **Starter** ($13/Mo) — 68,000 calls/Mo, 8 req/s
- **Pro** ($45/Mo) — 440,000 calls/Mo, 20 req/s
- **Business** ($136/Mo) — 2,900,000 calls/Mo, 50 req/s

## Endpoints

### Pools

#### `GET /v1/history` — A pool APY and TVL over time

**Parameters:**
- `id` (query, required, string) — Pool id (uuid) Example: `747c1d2a-c668-4682-b9f9-296708a3dd90`
- `limit` (query, optional, string) — Days of history (1-730, default 90) Example: `90`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/yieldpool-api/v1/history?id=747c1d2a-c668-4682-b9f9-296708a3dd90&limit=90"
```

**Response:**
```json
{
    "data": {
        "note": "APY (base + reward) and TVL for this pool over time, daily. timestamp is ISO-8601.",
        "pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
        "count": 90,
        "source": "DeFiLlama",
        "history": [
            {
                "apy": 2.41,
                "tvl_usd": 21352820748,
                "apy_base": 2.41,
                "timestamp": "2026-03-17T23:02:15.891Z",
                "apy_reward": null
            },
            {
                "apy": 2.39,
                "tvl_usd": 20199105328,
                "apy_base": 2.39,
                "timestamp": "2026-03-18T23:01:36.014Z",
                "apy_reward": null
            },
            {
                "apy": 2.46,
                "tvl_usd": 19786603356,
                "apy_base": 2.46,
                "timestamp": "2026-03-19T23:01:39.838Z",
                "apy_reward": null
            },
            {
                "apy": 2.45,
                "tvl_usd": 19852582547,
                "apy_base": 2.45,
                "timestamp": "2026-03-20T23:01:46.905Z",
                "apy_reward": null
            },
            {
                "apy": 2.38,
                "tvl_usd": 19743823926,
                "apy_base": 2.38,
                "timestamp": "2026-03-21T23:01:52.679Z",
                "apy_reward": null
            },
            {
                "apy": 2.93,
                "tvl_usd": 18763094759,
                "apy_base": 2.93,
                
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/pool` — Current detail for one pool by id

**Parameters:**
- `id` (query, required, string) — Pool id (uuid, from /v1/search) Example: `747c1d2a-c668-4682-b9f9-296708a3dd90`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/yieldpool-api/v1/pool?id=747c1d2a-c668-4682-b9f9-296708a3dd90"
```

**Response:**
```json
{
    "data": {
        "apy": 2.35,
        "pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
        "chain": "Ethereum",
        "source": "DeFiLlama",
        "symbol": "STETH",
        "il_risk": "no",
        "outlook": "Stable/Up",
        "project": "lido",
        "tvl_usd": 14973235926,
        "apy_base": 2.35,
        "exposure": "single",
        "apy_7d_avg": 2.45,
        "apy_reward": null,
        "stablecoin": false,
        "reward_tokens": [],
        "outlook_confidence": 2
    },
    "meta": {
        "timestamp": "2026-06-14T08:04:17.110Z",
        "request_id": "f2a02cdd-71ac-43f9-be65-d848aa099a9e"
    },
    "status": "ok",
    "message": "Pool retrieved successfully",
    "success": true
}
```

#### `GET /v1/search` — Find pools by token, project or chain

**Parameters:**
- `q` (query, required, string) — Token, project or chain text Example: `steth`
- `chain` (query, optional, string) — Filter by chain (e.g. Ethereum)
- `project` (query, optional, string) — Filter by project (e.g. lido)
- `limit` (query, optional, string) — Results (1-100, default 25) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/yieldpool-api/v1/search?q=steth&limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "Pools matching the query, by TVL. Use a pool id with /v1/pool and /v1/history.",
        "count": 25,
        "pools": [
            {
                "apy": 2.35,
                "pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
                "chain": "Ethereum",
                "symbol": "STETH",
                "project": "lido",
                "tvl_usd": 14973235926
            },
            {
                "apy": 0,
                "pool": "3b45941c-16cb-48c5-a490-16c6c4f1d86a",
                "chain": "Ethereum",
                "symbol": "WSTETH",
                "project": "sparklend",
                "tvl_usd": 2195005787
            },
            {
                "apy": 0,
                "pool": "e6435aae-cbe9-4d26-ab2c-a4d533db9972",
                "chain": "Ethereum",
                "symbol": "WSTETH",
                "project": "aave-v3",
                "tvl_usd": 1453330347
            },
            {
                "apy": 0,
                "pool": "4ce0c458-2171-463b-92ce-458afe367a4e",
                "chain": "Ethereum",
                "symbol": "WSTETH",
                "project": "morpho-blue",
                "tvl_usd": 431800906
            },
            {
                "apy": 0.05,
                "pool": "69b12bf9-edb6-46d9-b5bc-761cf9efe137",
                "chain": "Ethereum",
                "symbol": "WSTETH",
                "project": "fluid-lending",
                "tvl_usd": 128104333
        
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata & live sample

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/yieldpool-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "search takes q (e.g. steth, usdc) plus optional chain, project and limit; it returns pool ids. pool and history take a required pool id (uuid). history takes optional limit (1-730 days). APYs are percentages; TVL is USD.",
        "sample": {
            "apy": 2.35,
            "pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
            "chain": "Ethereum",
            "symbol": "STETH",
            "project": "lido",
            "tvl_usd": 14973235926
        },
        "source": "DeFiLlama open yields API (yields.llama.fi), live",
        "service": "yieldpool-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/pool": "Current detail for one pool by id (apy, tvl, risk, outlook).",
            "GET /v1/search": "Find pools by token / project / chain (q=steth).",
            "GET /v1/history": "A pool's APY and TVL over time (id, limit)."
        },
        "description": "Live detail and full APY/TVL history for any DeFi yield pool, keyless. Unlike current-yield screeners, this is the per-pool time dimension: look up a pool by id for its current APY (base + reward), TVL, risk flags and forecast, then pull its APY and TVL over time to judge whether a yield is sustainable or a fading incentive. Search 15,000+ pools by token, project or chain to find a pool id. Live, nothing stored beyond a short cache. The yield-history layer for farming, allocation, backtesting and risk apps. Distinct from current-y
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/yieldpool-api
OpenAPI spec: https://www.oanor.com/api/yieldpool-api/openapi.json
