Get fixed-term market

Get one Pendle PT market.

GEThttps://api-v2.syncrone.fi/api/catalog/fixed-term/detailed/{network}/{vaultId}

One Pendle PT market, active or expired. An expired market keeps its last TVL and liquidity, with fixedApy null and isExpired true.

← Vaults API overview

Try it#

GET/fixed-term/detailed/mainnet/0x9C560eBaF78e596cbcC27411d633a74D628dd7dC

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

Example vaults
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/detailed/mainnet/0x9C560eBaF78e596cbcC27411d633a74D628dd7dC" \
  -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/detailed/mainnet/0x9C560eBaF78e596cbcC27411d633a74D628dd7dC
{
  "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
}

Parameters#

NameTypeDescription
networkpathrequiredstring

Network name (mainnet, base, arbitrum…), CAIP-2 id (eip155:1) or chain id (1).

vaultIdpathrequiredstring

PendleMarket address (any case). The PT address or the market's slug also work.

Response#

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

FieldTypeDescription
vaultIdstring

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

addressstring

PendleMarket address, checksummed.

namestring

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

network.namestring

Network name.

network.chainIdinteger

EVM chain id.

network.networkCaipstring

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

protocol.protocolIdstring

Protocol id, used by protocol filters.

protocol.namestring

Same as protocolId.

protocol.displayNamestring

Protocol display name.

protocol.protocolUrlstring | null

Protocol website.

protocol.protocolLogostring | null

Protocol logo URL.

protocol.descriptionstring | null

What earns the yield.

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.

pt.addressstring | null

Principal token address, checksummed.

pt.assetCaipstring | null

CAIP-19 id of the token.

pt.namestring | null

Token name.

pt.symbolstring | null

Token symbol.

pt.decimalsinteger | null

Token decimals.

pt.assetLogostring | null

Logo URL.

pt.assetGroupstring

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

pt.assetPriceInUsdstring | null

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

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.

accountingAsset.addressstring | null

Accounting asset address, checksummed.

accountingAsset.assetCaipstring | null

CAIP-19 id of the token.

accountingAsset.namestring | null

Token name.

accountingAsset.symbolstring | null

Token symbol.

accountingAsset.decimalsinteger | null

Token decimals.

accountingAsset.assetLogostring | null

Logo URL.

accountingAsset.assetGroupstring

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

accountingAsset.assetPriceInUsdstring | null

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

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.

expiryinteger

Maturity, Unix seconds (UTC).

tvl.usdstring | null

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

liquidity.usdstring | null

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

benchmarkIdstring

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

slugstring

Syncrone benchmark slug.

lastUpdateTimestampinteger

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

isStaleboolean

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

isExpiredboolean

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

Errors#

StatusMeaning
400Invalid query or path parameter, or unknown network.
401Missing or rejected API key.
404No fixed-term market with this id on this network.
429Too many requests from the docs playground. Wait a minute.
500The service failed.

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