# Pendle Finance Yield API
> Live DeFi data from Pendle Finance — the protocol for yield tokenisation — served from its public API as clean JSON, no cache. Pendle splits a yield-bearing asset into a Principal Token (PT, redeemable 1:1 at maturity, a fixed-yield instrument) and a Yield Token (YT, the streaming yield), traded in an AMM market that expires on a fixed date. List the active markets on a chain with each market's liquidity, implied APY (the fixed rate a PT buyer locks in), aggregated and max-boosted APY, maturity date and PT/YT/SY token addresses (sorted by liquidity); fetch one market's full detail by address; rank the highest implied-APY markets with a liquidity floor; or list the chains Pendle runs on. Read live from Pendle, nothing cached. This is Pendle's own yield-tokenisation, fixed-yield and PT/YT-market layer — distinct from on-chain explorers, DEX-pool feeds, yield-vault and price APIs.

## 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/pendle-api/..."
```

## Pricing
- **Free** (Free) — 1,000 calls/Mo, 3 req/s
- **Starter** ($12/Mo) — 35,000 calls/Mo, 12 req/s
- **Pro** ($32/Mo) — 182,000 calls/Mo, 28 req/s
- **Business** ($75/Mo) — 910,000 calls/Mo, 55 req/s

## Endpoints

### Markets

#### `GET /v1/markets` — Active markets on a chain with liquidity, implied APY, maturity, PT/YT

**Parameters:**
- `chain` (query, optional, string) — Chain id (1=Ethereum) Example: `1`
- `limit` (query, optional, string) — Max markets (1-500) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pendle-api/v1/markets?chain=1&limit=50"
```

**Response:**
```json
{
    "data": {
        "chain": "Ethereum",
        "count": 50,
        "source": "Pendle Finance",
        "markets": [
            {
                "name": "SIERRA",
                "expiry": "2026-07-02T00:00:00.000Z",
                "is_new": false,
                "address": "0xa556b5327372ab8aaefda2b756eed0608afd6ca5",
                "fee_rate": 0.001996450590974641,
                "is_prime": false,
                "pt_address": "0x1a69154f6f6247e4457332860fb173251a36e03f",
                "sy_address": "0x399e426e6812943ac22976333698e16eaa80a209",
                "yt_address": "0x8a9e90fe18e9d243f804022224fbd8380d6b76f6",
                "implied_apy": 0.094882,
                "liquidity_usd": 13983315.69,
                "pendle_apy_pct": 0.0898,
                "implied_apy_pct": 9.4882,
                "days_to_maturity": 21,
                "underlying_asset": "0x6bf7788eaa948d9ffba7e9bb386e2d3c9810e0fc",
                "aggregated_apy_pct": 6.9186,
                "max_boosted_apy_pct": 9.2564
            },
            {
                "name": "USDat",
                "expiry": "2026-08-27T00:00:00.000Z",
                "is_new": false,
                "address": "0x9afe7a057a09cf5da748d952078c9c99938b4329",
                "fee_rate": 0.0015303192378361974,
                "is_prime": false,
                "pt_address": "0x1d69402390657308c91179aa184bf992908c1e08",
                "sy_address": "0x7a7de491e1be5287874904e2b7c8488249a4d0a9",
          
…(truncated, see openapi.json for full schema)
```

### Market

#### `GET /v1/market` — One market's full detail by address

**Parameters:**
- `address` (query, required, string) — Market contract address Example: `0x34280882267ffa6383b363e278b027be083bbe3b`
- `chain` (query, optional, string) — Chain id Example: `1`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pendle-api/v1/market?address=0x34280882267ffa6383b363e278b027be083bbe3b&chain=1"
```

**Response:**
```json
{
    "data": {
        "name": "wstETH",
        "chain": "Ethereum",
        "expiry": "2027-12-30T00:00:00.000Z",
        "is_new": false,
        "source": "Pendle Finance",
        "address": "0x34280882267ffa6383b363e278b027be083bbe3b",
        "fee_rate": 0.0004999999993486881,
        "is_prime": true,
        "pt_address": "0xb253eff1104802b97ac7e3ac9fdd73aece295a2c",
        "sy_address": "0xcbc72d92b2dc8187414f6734718563898740c0bc",
        "yt_address": "0x04b7fa1e727d7290d6e24fa9b426d0c940283a95",
        "implied_apy": 0.026073,
        "liquidity_usd": 2624214.19,
        "pendle_apy_pct": 0,
        "implied_apy_pct": 2.6073,
        "days_to_maturity": 567,
        "underlying_asset": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
        "aggregated_apy_pct": 2.7371,
        "max_boosted_apy_pct": 2.7371
    },
    "meta": {
        "timestamp": "2026-06-10T22:58:09.439Z",
        "request_id": "0910d811-cce8-4e08-8445-c6b31ae807e9"
    },
    "status": "ok",
    "message": "Market retrieved successfully",
    "success": true
}
```

### Top

#### `GET /v1/top` — Highest implied-APY markets with a liquidity floor

**Parameters:**
- `chain` (query, optional, string) — Chain id Example: `1`
- `limit` (query, optional, string) — Max markets (1-50) Example: `10`
- `min_liquidity` (query, optional, string) — Minimum liquidity in USD Example: `100000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pendle-api/v1/top?chain=1&limit=10&min_liquidity=100000"
```

**Response:**
```json
{
    "data": {
        "chain": "Ethereum",
        "count": 10,
        "source": "Pendle Finance",
        "markets": [
            {
                "name": "apyUSD",
                "expiry": "2026-06-18T00:00:00.000Z",
                "is_new": false,
                "address": "0x3c53fae231ad3c0408a8b6d33138bbff1caec330",
                "fee_rate": 0.006088967095663644,
                "is_prime": false,
                "pt_address": "0x3365554a61ceff74a76528f9e86c1e87946d16a5",
                "sy_address": "0x04f8dca7bccd8997ac57ca6fef7c705e17d6bcb6",
                "yt_address": "0x4864dcfa317b29e13e6caa04b5c37f24c79a465e",
                "implied_apy": 0.313298,
                "liquidity_usd": 8928697.03,
                "pendle_apy_pct": 1.0303,
                "implied_apy_pct": 31.3298,
                "days_to_maturity": 7,
                "underlying_asset": "0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a",
                "aggregated_apy_pct": 31.2322,
                "max_boosted_apy_pct": 32.7775
            },
            {
                "name": "asdCRV",
                "expiry": "2026-06-25T00:00:00.000Z",
                "is_new": false,
                "address": "0x2ec28d05d86a1fc4de199726f7ddc8f83d23b5a5",
                "fee_rate": 0.0053425926182766315,
                "is_prime": false,
                "pt_address": "0x4f3f6283abf1253baab099c94fe13ae1ce8194f1",
                "sy_address": "0x18c11b1dc74cab82ad18d5034fde93fe90a41d99",
        
…(truncated, see openapi.json for full schema)
```

### Chains

#### `GET /v1/chains` — Chains Pendle runs on

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

**Response:**
```json
{
    "data": {
        "count": 7,
        "chains": [
            {
                "name": "Ethereum",
                "chain_id": 1
            },
            {
                "name": "Optimism",
                "chain_id": 10
            },
            {
                "name": "BNB Chain",
                "chain_id": 56
            },
            {
                "name": "Sonic",
                "chain_id": 146
            },
            {
                "name": "Mantle",
                "chain_id": 5000
            },
            {
                "name": "Base",
                "chain_id": 8453
            },
            {
                "name": "Arbitrum",
                "chain_id": 42161
            }
        ],
        "source": "Pendle Finance"
    },
    "meta": {
        "timestamp": "2026-06-10T22:58:09.654Z",
        "request_id": "642c3647-36e5-41d0-bbc4-028b87088c8e"
    },
    "status": "ok",
    "message": "Chains retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

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

**Response:**
```json
{
    "data": {
        "note": "APYs are fractions (0.05 = 5%), also given as *_pct; liquidity is in USD; markets shown are active (not yet matured).",
        "source": "Pendle Finance API (api-v2.pendle.finance, live)",
        "service": "pendle-api",
        "endpoints": {
            "GET /v1/top": "Highest implied-APY markets with a liquidity floor (chain=1, limit=10, min_liquidity=100000).",
            "GET /v1/meta": "This document.",
            "GET /v1/chains": "Chains Pendle runs on.",
            "GET /v1/market": "One market's full detail by address (chain=1, address=0x...).",
            "GET /v1/markets": "Active markets on a chain with liquidity, implied APY, maturity, PT/YT (chain=1, limit=50)."
        },
        "description": "Live DeFi data from Pendle Finance, the yield-tokenisation protocol, via its public API. Pendle splits a yield-bearing asset into a Principal Token (PT, a fixed-yield instrument redeemable 1:1 at maturity) and a Yield Token (YT, the streaming yield), traded in an AMM market with a fixed expiry. The markets endpoint returns the active markets on a chain with liquidity, implied APY (the fixed rate a PT buyer locks), aggregated and max-boosted APY, maturity and PT/YT/SY addresses, sorted by liquidity; the market endpoint returns one market's detail by address; the top endpoint ranks the highest implied-APY markets with a liquidity floor; the chains endpoint lists the chains Pendle runs on. Live, no key, nothing stored. Distinct from 
…(truncated, see openapi.json for full schema)
```


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