> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exponent.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# PT and YT prices

> Retrieve current backing-adjusted PT and YT prices for multiple vaults.

export const ApiResponse = ({children, errors = {}}) => {
  const [status, setStatus] = useState("200");
  const statuses = ["200", ...Object.keys(errors)];
  return <section className="api-response" aria-label="Response">
      <div className="api-response-header not-prose">
        <h2>Response</h2>
        <div className="api-response-format">
          {statuses.length > 1 ? <select aria-label="Response status" value={status} onChange={event => setStatus(event.target.value)}>
              {statuses.map(code => <option key={code} value={code}>{code}</option>)}
            </select> : <span>200</span>}
          <span className="api-response-mime">application/json</span>
        </div>
      </div>
      <div hidden={status !== "200"}>{children}</div>
      {status !== "200" && <div aria-live="polite">
          {Object.entries(errors[status]).map(([name, value]) => <ResponseField key={name} name={name} type={value === null ? "null" : Array.isArray(value) ? "array" : typeof value}>
              {name === "error" ? "Error message describing why the request failed." : "Additional error details."}
            </ResponseField>)}
        </div>}
    </section>;
};

## Request body

<ParamField body="vaultAddresses" type="string[]" required>
  Non-empty array of vault addresses.
</ParamField>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl https://api.exponent.finance/py-prices \
    -H 'Content-Type: application/json' \
    -d '{"vaultAddresses": ["Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH"]}'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.exponent.finance/py-prices",
      json={'vaultAddresses': ['Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH']},
      timeout=30,
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/py-prices", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({"vaultAddresses": ["Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH"]}),
  });
  if (!response.ok) {
    throw new Error(`Request failed: ${response.status}`);
  }
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ApiResponse errors={{"400": {"error": "<message>"}, "500": {"error": "<message>"}}}>
  <ResponseField name="vaultAddress" type="string">
    Yield or strategy vault associated with this record.
  </ResponseField>

  <ResponseField name="ptPrice" type="number | null">
    Price of one PT in the vault’s base asset, or null when unavailable.
  </ResponseField>

  <ResponseField name="ytPrice" type="number | null">
    Price of one YT in the vault’s base asset, or null when unavailable.
  </ResponseField>

  <ResponseField name="impliedApy" type="number | null">
    Implied APY as a decimal; `0.1` means 10%.
  </ResponseField>

  <ResponseField name="impliedApr" type="number | null">
    Currently repeats `impliedApy`; it is not separately calculated as APR.
  </ResponseField>

  <ResponseField name="yearsToMaturity" type="number | null">
    Remaining time to maturity expressed in years.
  </ResponseField>

  <ResponseField name="clmm" type="object">
    CLMM markets and update time used to resolve the vault’s PT/YT prices.

    <Expandable title="child attributes">
      <ResponseField name="clmm.marketAddresses" type="string[]">
        Active CLMM market addresses included in the pricing result.
      </ResponseField>

      <ResponseField name="clmm.updatedAt" type="string | null">
        Last update time in Unix seconds.
      </ResponseField>
    </Expandable>
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "vaultAddress": "Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH",
      "ptPrice": 0.9585336359374135,
      "ytPrice": 0.041466364062586525,
      "impliedApy": 0.122512093520717,
      "impliedApr": 0.122512093520717,
      "yearsToMaturity": 0.36645279404490105,
      "clmm": {
        "marketAddresses": [
          "6CFxKYZkRUDBcJSHo3PBHJ7iBiCmEXePrCFT26mZx1id"
        ],
        "updatedAt": "2026-10-14T14:04:43.091+00:00"
      }
    }
  ]
  ```

  ```json 400 theme={null}
  {
    "error": "<message>"
  }
  ```

  ```json 500 theme={null}
  {
    "error": "<message>"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.