Pendle Transactions API

The Transactions API from Pendle — 2 operation(s) for transactions.

Operations 2

GET /v5/{chainId}/transactions/{address} Get market transactions by address #
GET /v1/pnl/transactions Get user transaction history #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pendle-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pendle-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pendle V2 API Docs Transactions API
  description: '## Terms used in the documentation/API


    Below are some terms used in the documentation/API:


    - Pendle Assets/Tokens: PT, YT, LP, SY

    - Non-Pendle Assets: other tokens that are not Pendle assets, such as USDC, USDT, DAI, etc.'
  version: '1.0'
  contact: {}
servers:
- url: http://127.0.0.1:9000
tags:
- name: Transactions
paths:
  /v5/{chainId}/transactions/{address}:
    get:
      description: 'Return transactions with: user action (long or short yield, add or remove liquidity), valuation, implied apy.


        **Pagination**: This endpoint supports cursor-based pagination using `resumeToken`. The response includes a `resumeToken` field that can be used in the next request to fetch the next page of results. This is more efficient than using `skip` for large datasets.'
      operationId: TransactionsController_transactionsV5
      parameters:
      - name: chainId
        required: true
        in: path
        schema:
          type: number
      - name: address
        required: true
        in: path
        schema:
          type: string
      - name: type
        required: false
        in: query
        description: 'Transaction type to filter by. Valid values: `TRADES`, `LIQUIDITY`.'
        schema:
          $ref: '#/components/schemas/TransactionType'
      - name: minValue
        required: false
        in: query
        description: Minimum transaction value filter in USD
        schema:
          type: number
      - name: txOrigin
        required: false
        in: query
        description: Address of the transaction executor
        schema:
          type: string
      - name: action
        required: false
        in: query
        description: 'Specific transaction action to filter by. Valid values: `LONG_YIELD`, `SHORT_YIELD`, `ADD_LIQUIDITY`, `REMOVE_LIQUIDITY`.'
        schema:
          $ref: '#/components/schemas/TransactionAction'
      - name: resumeToken
        required: false
        in: query
        description: Resume token for pagination. Use this to continue a previous query.
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: Maximum number of results to return. The parameter is capped at 1000.
        schema:
          default: 10
          type: number
      - name: skip
        required: false
        in: query
        deprecated: true
        description: Use `resumeToken` instead.
        schema:
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsV5Response'
      summary: Get market transactions by address
      tags:
      - Transactions
      x-computing-unit: '5'
      x-retail-api-rank: 6969
  /v1/pnl/transactions:
    get:
      description: 'Returns the on-chain transaction history for a user address across all Pendle operations.


        Results are paginated. Use the `resumeToken` from the response to fetch the next page.


        Data may lag chain tip by a few minutes due to indexing.'
      operationId: TransactionsController_getTransactions
      parameters:
      - name: skip
        required: false
        in: query
        description: Number of results to skip. The parameter is capped at 1000.
        schema:
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        description: Maximum number of results to return. The parameter is capped at 1000.
        schema:
          default: 10
          type: number
      - name: chainId
        required: false
        in: query
        description: Chain ID
        schema:
          type: number
      - name: user
        required: true
        in: query
        schema:
          type: string
      - name: market
        required: false
        in: query
        description: Market address
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseEntity'
      summary: Get user transaction history
      tags:
      - Transactions
      x-computing-unit: '8'
      x-retail-api-rank: 6969
components:
  schemas:
    TransactionAction:
      type: string
      enum:
      - LONG_YIELD
      - SHORT_YIELD
      - ADD_LIQUIDITY
      - REMOVE_LIQUIDITY
    SpendUnitData:
      type: object
      properties:
        unit:
          type: number
          description: Balance of user in wei
        spent_v2:
          description: Total spent to purchase this asset
          allOf:
          - $ref: '#/components/schemas/ValuationEntity'
      required:
      - unit
      - spent_v2
    ValuationEntity:
      type: object
      properties:
        usd:
          type: number
        asset:
          type: number
        eth:
          type: number
      required:
      - usd
      - asset
      - eth
    TransactionsV5Response:
      type: object
      properties:
        total:
          type: number
          description: Total number of transactions available
        resumeToken:
          type: string
          description: Resume token for pagination. Use this to continue a previous query. Use this token in the next request. Can be undefined if the query is at the end of the results.
        limit:
          type: number
          description: Maximum number of results returned
        skip:
          type: number
          description: Number of results skipped for pagination
        results:
          description: List of transactions
          type: array
          items:
            $ref: '#/components/schemas/TransactionV5Response'
      required:
      - total
      - limit
      - skip
      - results
    PnLTransactionEntity:
      type: object
      properties:
        chainId:
          type: number
          description: Chain ID where the transaction occurred
        market:
          type: string
          description: LP market contract address
        user:
          type: string
          description: User wallet address
        timestamp:
          format: date-time
          type: string
          description: Block timestamp of the transaction
        action:
          type: string
          enum:
          - addLiquidityDualTokenAndPt
          - addLiquiditySinglePt
          - addLiquiditySingleToken
          - addLiquiditySingleTokenKeepYt
          - removeLiquidityDualTokenAndPt
          - removeLiquidityToPt
          - removeLiquiditySingleToken
          - mintPy
          - redeemPy
          - swapYtToPt
          - swapPtToYt
          - redeemYtRewards
          - redeemYtYield
          - redeemMarketRewards
          - buyPt
          - sellPt
          - transferPtIn
          - transferPtOut
          - buyYt
          - sellYt
          - transferYtIn
          - transferYtOut
          - transferLpIn
          - transferLpOut
          - sellYtLimitOrder
          - buyYtLimitOrder
          - sellPtLimitOrder
          - buyPtLimitOrder
          description: Type of Pendle operation performed (swap, liquidity, limit order, mint/redeem, transfer, or reward claim)
        ptData:
          description: PT token balance change and cost basis for this transaction
          allOf:
          - $ref: '#/components/schemas/SpendUnitData'
        ytData:
          description: YT token balance change and cost basis for this transaction
          allOf:
          - $ref: '#/components/schemas/SpendUnitData'
        lpData:
          description: LP token balance change and cost basis for this transaction
          allOf:
          - $ref: '#/components/schemas/SpendUnitData'
        priceInAsset:
          description: Prices of PT, YT, and LP in the market's accounting asset at the time of the transaction
          allOf:
          - $ref: '#/components/schemas/PriceAssetData'
        profit:
          description: Profit or loss of the transaction
          allOf:
          - $ref: '#/components/schemas/ValuationEntity'
        txValueAsset:
          type: number
          description: Total value of the transaction in asset
        assetUsd:
          type: number
          description: Market asset price in USD
        assetEth:
          type: number
          description: Market asset price in ETH
        ptExchangeRate:
          type: number
          description: PT exchange rate at the time of the transaction
        effectivePtExchangeRate:
          type: number
          description: Effective PT exchange rate of this transaction
        ptExchangeRateAfter:
          type: number
          description: PT exchange rate of market after the transaction
        txHash:
          type: string
          description: Transaction hash
      required:
      - chainId
      - market
      - user
      - timestamp
      - action
      - ptData
      - ytData
      - lpData
      - priceInAsset
      - profit
      - txValueAsset
      - assetUsd
      - assetEth
      - ptExchangeRate
    TransactionsResponseEntity:
      type: object
      properties:
        total:
          type: number
          description: Total number of matching transactions
        results:
          description: Paginated list of transactions
          type: array
          items:
            $ref: '#/components/schemas/PnLTransactionEntity'
      required:
      - total
      - results
    TransactionV5Response:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the transaction
        market:
          type: string
          description: Market address where the transaction occurred
        timestamp:
          format: date-time
          type: string
          description: Timestamp when the transaction occurred
        chainId:
          type: number
          description: Chain ID where the transaction occurred
        txHash:
          type: string
          description: Transaction hash on the blockchain
        value:
          type: number
          description: Transaction value in USD
        type:
          type: string
          description: Transaction type (e.g., TRADES, ADD_LIQUIDITY, REMOVE_LIQUIDITY)
        action:
          type: string
          description: Transaction action (e.g., BUY_PT, SELL_PT, ADD_LIQUIDITY_DUAL)
        txOrigin:
          type: string
          description: Original transaction sender address
        impliedApy:
          type: number
          description: Weighted average implied APY for this transaction
        notional:
          description: Notional amounts traded (only for TRADES type)
          allOf:
          - $ref: '#/components/schemas/NotionalV5'
      required:
      - id
      - market
      - timestamp
      - chainId
      - txHash
      - value
      - type
      - action
      - impliedApy
    NotionalV5:
      type: object
      properties:
        pt:
          type: number
          description: Notional amount of PT traded
      required:
      - pt
    TransactionType:
      type: string
      enum:
      - TRADES
      - LIQUIDITY
    PriceAssetData:
      type: object
      properties:
        pt:
          type: number
          description: PT price in the market's accounting asset at the time of the transaction
        yt:
          type: number
          description: YT price in the market's accounting asset at the time of the transaction
        lp:
          type: number
          description: LP price in the market's accounting asset at the time of the transaction
      required:
      - pt
      - yt
      - lp