List fixed-term Pendle markets

List active Pendle PT markets with fixed APY, expiry, TVL and liquidity.

GEThttps://api-v2.syncrone.fi/api/catalog/fixed-term

Every 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.

← Vaults API overview

Try it#

GET/fixed-term?perPage=2&allowedNetworks=mainnet&sortBy=tvl&sortOrder=desc

Kept in this browser tab only, and sent to Syncrone with each request. No key yet? Create one ↗

Parameters
Response
Paste an API key, then press Send. The parameters are pre-filled with a real example.
curl
curl "https://api-v2.syncrone.fi/api/catalog/fixed-term?perPage=2&allowedNetworks=mainnet&sortBy=tvl&sortOrder=desc" \
  -H "x-api-key: $SYNCRONE_API_KEY"

Example#

A real response to the pre-filled Try it request, recorded from Syncrone data. Values move with every indexing run.

200GET /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#

NameTypeDescription
pagequeryinteger

Page number, starting from 0.

default: 0
perPagequeryinteger

Items per page, 1 to 1000.

default: 50
allowedNetworksquerystring[]

Networks to include. Repeat the parameter or separate with commas.

disallowedNetworksquerystring[]

Networks to exclude. Ignored when allowedNetworks is set.

allowedAssetsquerystring[]

Symbols to include, case-insensitive. Matches the PT, the underlying or the accounting asset.

disallowedAssetsquerystring[]

Symbols to exclude. Ignored when allowedAssets is set.

allowedProtocolsquerystring[]

Protocols to include, by id or display name: pendle, or the underlying protocol (sky).

disallowedProtocolsquerystring[]

Protocols to exclude. Ignored when allowedProtocols is set.

minTvlquerynumber

Minimum TVL in USD. 0 also keeps markets whose TVL has no USD price.

default: 100000
searchquerystring

Case-insensitive text matched against the name, slug, address and token symbols.

sortByquerystringtvl | fixedApy | liquidity | expiry

Field to sort by. Markets without the value sort last.

default: tvl
sortOrderquerystringasc | desc

Sort direction.

default: desc

Response#

200 returns JSON with these fields. APY values are fractions (0.04 = 4%); timestamps are Unix seconds.

FieldTypeDescription
itemsOnPageinteger

Number of items in data.

nextPageinteger

Next page number. Absent on the last page.

data[].vaultIdstring

Id to use in {vaultId} paths: the PendleMarket address.

data[].addressstring

PendleMarket address, checksummed.

data[].namestring

Market name, e.g. Pendle PT-sUSDS-26NOV2026 (Ethereum).

data[].network.namestring

Network name.

data[].network.chainIdinteger

EVM chain id.

data[].network.networkCaipstring

CAIP-2 id, e.g. eip155:1.

data[].protocol.protocolIdstring

Protocol id, used by protocol filters.

data[].protocol.namestring

Same as protocolId.

data[].protocol.displayNamestring

Protocol display name.

data[].protocol.protocolUrlstring | null

Protocol website.

data[].protocol.protocolLogostring | null

Protocol logo URL.

data[].protocol.descriptionstring | null

What earns the yield.

data[].underlyingProtocolobject | null

Protocol of the underlying asset, same fields as protocol: the catalog vault the underlying is (sUSDS → Sky), the one its mainnet token is for a bridged copy (sUSDe on Monad → Ethena), else the one its accounting asset is (PT-stETH → Lido). Null when none is in the catalog.

data[].pt.addressstring | null

Principal token address, checksummed.

data[].pt.assetCaipstring | null

CAIP-19 id of the token.

data[].pt.namestring | null

Token name.

data[].pt.symbolstring | null

Token symbol.

data[].pt.decimalsinteger | null

Token decimals.

data[].pt.assetLogostring | null

Logo URL.

data[].pt.assetGroupstring

USD, ETH, BTC, EUR or OTHER: the currency of the accounting asset.

data[].pt.assetPriceInUsdstring | null

USD per PT: its price in the accounting asset (Pendle's PT oracle formula) times the asset's USD price.

data[].underlyingAssetobject | null

The yield-bearing token the market's SY wraps (sUSDe), same fields as pt. Its assetPriceInUsd is its on-chain redemption value: what one SY is worth in the accounting asset and in the underlying, times the accounting asset's price. Null when not read yet.

data[].accountingAsset.addressstring | null

Accounting asset address, checksummed.

data[].accountingAsset.assetCaipstring | null

CAIP-19 id of the token.

data[].accountingAsset.namestring | null

Token name.

data[].accountingAsset.symbolstring | null

Token symbol.

data[].accountingAsset.decimalsinteger | null

Token decimals.

data[].accountingAsset.assetLogostring | null

Logo URL.

data[].accountingAsset.assetGroupstring

USD, ETH, BTC, EUR or OTHER: the currency of the accounting asset.

data[].accountingAsset.assetPriceInUsdstring | null

USD price of what one PT redeems for at expiry (USDe), from the market's latest bar.

data[].fixedApynumber | 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[].expiryinteger

Maturity, Unix seconds (UTC).

data[].tvl.usdstring | null

Pendle TVL in USD, whole dollars: every PT outstanding at its price plus the SY in the pool.

data[].liquidity.usdstring | null

AMM liquidity in USD, whole dollars: the pool's PT and SY.

data[].benchmarkIdstring

Syncrone benchmark id, for the benchmark endpoints of the main API.

data[].slugstring

Syncrone benchmark slug.

data[].lastUpdateTimestampinteger

Time of the read the values come from, Unix seconds.

data[].isStaleboolean

True when the latest read is more than 30 hours old.

data[].isExpiredboolean

True at or after expiry. The list endpoint only returns active markets.

errors.unsupportedNetworksstring[]

Requested networks that are unknown or have no fixed-term market.

errors.unsupportedAssetsstring[]

Requested symbols no market has.

errors.unsupportedProtocolsstring[]

Requested protocols no market has.

Errors#

StatusMeaning
400Invalid query parameter.
401Missing or rejected API key.
429Too many requests from the docs playground. Wait a minute.
500The service failed.

Error bodies carry error and, for invalid parameters, details.