List fixed-term Pendle markets
List active Pendle PT markets with fixed APY, expiry, TVL and liquidity.
https://api-v2.syncrone.fi/api/catalog/fixed-termEvery active Pendle PT market that passes the filters. A list filter that names something no market has is reported in errors instead of failing the request. When both an allow-list and a deny-list are given for the same field, the allow-list wins.
Try it#
Example#
A real response to the pre-filled Try it request, recorded from Syncrone data. Values move with every indexing run.
GET /fixed-term?allowedNetworks=mainnet&sortBy=tvl&sortOrder=desc&perPage=2{
"itemsOnPage": 2,
"nextPage": 1,
"data": [
{
"vaultId": "0x13285bCbc27F92b47B4EDB99D744C07B48C977c0",
"address": "0x13285bCbc27F92b47B4EDB99D744C07B48C977c0",
"name": "Pendle PT-reUSD-10DEC2026 (Ethereum)",
"network": {
"name": "mainnet",
"chainId": 1,
"networkCaip": "eip155:1"
},
"protocol": {
"protocolId": "pendle",
"name": "pendle",
"displayName": "Pendle",
"protocolUrl": "https://pendle.finance",
"protocolLogo": "https://icons.llamao.fi/icons/protocols/pendle-v2",
"description": "Principal tokens: the fixed rate locked in by buying a PT until maturity."
},
"underlyingProtocol": null,
"pt": {
"address": "0xeCfaFdC7741323a945A163ed068B5a3C43483957",
"assetCaip": "eip155:1/erc20:0xeCfaFdC7741323a945A163ed068B5a3C43483957",
"name": "PT reUSD 10DEC2026",
"symbol": "PT-reUSD-10DEC2026",
"decimals": 6,
"assetLogo": null,
"assetPriceInUsd": "0.9821743",
"assetGroup": "USD"
},
"underlyingAsset": null,
"accountingAsset": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"assetCaip": "eip155:1/erc20:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"assetLogo": "https://static.debank.com/image/eth_token/logo_url/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/fffcd27b9efff5a86ab942084c05924d.png",
"assetPriceInUsd": "0.9999",
"assetGroup": "USD"
},
"fixedApy": 0.119141117252,
"expiry": 1796860800,
"tvl": {
"usd": "244812723"
},
"liquidity": {
"usd": "12415306"
},
"benchmarkId": "76972384-a288-4667-a714-163848b84c7a",
"slug": "pendle-eth-pt-reusd-10dec2026",
"lastUpdateTimestamp": 1791849600,
"isStale": true,
"isExpired": false
},
{
"vaultId": "0x9C560eBaF78e596cbcC27411d633a74D628dd7dC",
"address": "0x9C560eBaF78e596cbcC27411d633a74D628dd7dC",
"name": "Pendle PT-sUSDS-26NOV2026 (Ethereum)",
"network": {
"name": "mainnet",
"chainId": 1,
"networkCaip": "eip155:1"
},
"protocol": {
"protocolId": "pendle",
"name": "pendle",
"displayName": "Pendle",
"protocolUrl": "https://pendle.finance",
"protocolLogo": "https://icons.llamao.fi/icons/protocols/pendle-v2",
"description": "Principal tokens: the fixed rate locked in by buying a PT until maturity."
},
"underlyingProtocol": null,
"pt": {
"address": "0xdC169AbE56461A2E0c034Da431Ac2a3ebf596094",
"assetCaip": "eip155:1/erc20:0xdC169AbE56461A2E0c034Da431Ac2a3ebf596094",
"name": "PT Savings USDS 26NOV2026",
"symbol": "PT-sUSDS-26NOV2026",
"decimals": 18,
"assetLogo": null,
"assetPriceInUsd": "0.99418746",
"assetGroup": "USD"
},
"underlyingAsset": null,
"accountingAsset": {
"address": "0xdC035D45d973E3EC169d2276DDab16f1e407384F",
"assetCaip": "eip155:1/erc20:0xdC035D45d973E3EC169d2276DDab16f1e407384F",
"name": "USDS Stablecoin",
"symbol": "USDS",
"decimals": 18,
"assetLogo": "https://static.debank.com/image/eth_token/logo_url/0xdc035d45d973e3ec169d2276ddab16f1e407384f/78fbc2e73e33fa80fcecfaafa2074887.png",
"assetPriceInUsd": "1.0001",
"assetGroup": "USD"
},
"fixedApy": 0.050417618829,
"expiry": 1795651200,
"tvl": {
"usd": "90281682"
},
"liquidity": {
"usd": "4771657"
},
"benchmarkId": "f9a520f6-cceb-4e5f-b7ec-a95838d380c6",
"slug": "pendle-eth-pt-susds-26nov2026",
"lastUpdateTimestamp": 1791849600,
"isStale": true,
"isExpired": false
}
],
"errors": {
"unsupportedNetworks": [],
"unsupportedAssets": [],
"unsupportedProtocols": []
}
}Parameters#
| Name | Type | Description |
|---|---|---|
| pagequery | integer | Page number, starting from 0. |
| perPagequery | integer | Items per page, 1 to 1000. |
| allowedNetworksquery | string[] | Networks to include. Repeat the parameter or separate with commas. |
| disallowedNetworksquery | string[] | Networks to exclude. Ignored when |
| allowedAssetsquery | string[] | Symbols to include, case-insensitive. Matches the PT, the underlying or the accounting asset. |
| disallowedAssetsquery | string[] | Symbols to exclude. Ignored when |
| allowedProtocolsquery | string[] | Protocols to include, by id or display name: |
| disallowedProtocolsquery | string[] | Protocols to exclude. Ignored when |
| minTvlquery | number | Minimum TVL in USD. |
| searchquery | string | Case-insensitive text matched against the name, slug, address and token symbols. |
| sortByquery | stringtvl | fixedApy | liquidity | expiry | Field to sort by. Markets without the value sort last. |
| sortOrderquery | stringasc | desc | Sort direction. |
Response#
200 returns JSON with these fields. APY values are fractions (0.04 = 4%); timestamps are Unix seconds.
| Field | Type | Description |
|---|---|---|
| itemsOnPage | integer | Number of items in |
| nextPage | integer | Next page number. Absent on the last page. |
| data[].vaultId | string | Id to use in |
| data[].address | string | PendleMarket address, checksummed. |
| data[].name | string | Market name, e.g. |
| data[].network.name | string | Network name. |
| data[].network.chainId | integer | EVM chain id. |
| data[].network.networkCaip | string | CAIP-2 id, e.g. |
| data[].protocol.protocolId | string | Protocol id, used by protocol filters. |
| data[].protocol.name | string | Same as |
| data[].protocol.displayName | string | Protocol display name. |
| data[].protocol.protocolUrl | string | null | Protocol website. |
| data[].protocol.protocolLogo | string | null | Protocol logo URL. |
| data[].protocol.description | string | null | What earns the yield. |
| data[].underlyingProtocol | object | null | Protocol of the underlying asset, same fields as |
| data[].pt.address | string | null | Principal token address, checksummed. |
| data[].pt.assetCaip | string | null | CAIP-19 id of the token. |
| data[].pt.name | string | null | Token name. |
| data[].pt.symbol | string | null | Token symbol. |
| data[].pt.decimals | integer | null | Token decimals. |
| data[].pt.assetLogo | string | null | Logo URL. |
| data[].pt.assetGroup | string |
|
| data[].pt.assetPriceInUsd | string | null | USD per PT: its price in the accounting asset (Pendle's PT oracle formula) times the asset's USD price. |
| data[].underlyingAsset | object | null | The yield-bearing token the market's SY wraps (sUSDe), same fields as |
| data[].accountingAsset.address | string | null | Accounting asset address, checksummed. |
| data[].accountingAsset.assetCaip | string | null | CAIP-19 id of the token. |
| data[].accountingAsset.name | string | null | Token name. |
| data[].accountingAsset.symbol | string | null | Token symbol. |
| data[].accountingAsset.decimals | integer | null | Token decimals. |
| data[].accountingAsset.assetLogo | string | null | Logo URL. |
| data[].accountingAsset.assetGroup | string |
|
| data[].accountingAsset.assetPriceInUsd | string | null | USD price of what one PT redeems for at expiry (USDe), from the market's latest bar. |
| data[].fixedApy | number | null | Fixed APY a PT buyer locks in, as a fraction: Pendle's implied APY, exp(lnImpliedRate) − 1, at the latest daily read. Null once the market has expired. |
| data[].expiry | integer | Maturity, Unix seconds (UTC). |
| data[].tvl.usd | string | null | Pendle TVL in USD, whole dollars: every PT outstanding at its price plus the SY in the pool. |
| data[].liquidity.usd | string | null | AMM liquidity in USD, whole dollars: the pool's PT and SY. |
| data[].benchmarkId | string | Syncrone benchmark id, for the benchmark endpoints of the main API. |
| data[].slug | string | Syncrone benchmark slug. |
| data[].lastUpdateTimestamp | integer | Time of the read the values come from, Unix seconds. |
| data[].isStale | boolean | True when the latest read is more than 30 hours old. |
| data[].isExpired | boolean | True at or after expiry. The list endpoint only returns active markets. |
| errors.unsupportedNetworks | string[] | Requested networks that are unknown or have no fixed-term market. |
| errors.unsupportedAssets | string[] | Requested symbols no market has. |
| errors.unsupportedProtocols | string[] | Requested protocols no market has. |
Errors#
| Status | Meaning |
|---|---|
| 400 | Invalid query parameter. |
| 401 | Missing or rejected API key. |
| 429 | Too many requests from the docs playground. Wait a minute. |
| 500 | The service failed. |
Error bodies carry error and, for invalid parameters, details.