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

# Tranche price and yield history

> Retrieve historical tranche prices, APYs, coverage, and utilization.

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>;
};

## Path parameters

<ParamField path="address" type="string" required>
  Solana account address.
</ParamField>

## Query parameters

<ParamField query="timeframeSeconds" type="number">
  Lookback in seconds. Default: `86400`.
</ParamField>

<ParamField query="intervalSeconds" type="number">
  Sampling interval in seconds. Omit to derive it from the timeframe.
</ParamField>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl https://api.exponent.finance/tranching-markets/HM8iLNE2WEN6J1AuwSSCoM37wgeLQFwYZ4ymYLqAoapN/chart-data
  ```

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

  response = requests.get("https://api.exponent.finance/tranching-markets/HM8iLNE2WEN6J1AuwSSCoM37wgeLQFwYZ4ymYLqAoapN/chart-data", timeout=30)
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/tranching-markets/HM8iLNE2WEN6J1AuwSSCoM37wgeLQFwYZ4ymYLqAoapN/chart-data");
  if (!response.ok) {
    throw new Error(`Request failed: ${response.status}`);
  }
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ApiResponse errors={{"404": {"error": "<message>"}, "500": {"error": "<message>"}}}>
  <ResponseField name="address" type="string">
    Tranching market account address.
  </ResponseField>

  <ResponseField name="data" type="object[]">
    Chronological market observations, including tranche values, APYs, and risk metrics.

    <Expandable title="child attributes">
      <ResponseField name="data[].timestamp" type="string">
        Observation time in ISO 8601 format.
      </ResponseField>

      <ResponseField name="data[].exchange_rate" type="number">
        Underlying asset value represented by one SY token at the observation.
      </ResponseField>

      <ResponseField name="data[].underlying_apy" type="number | null">
        Underlying asset APY as a decimal.
      </ResponseField>

      <ResponseField name="data[].underlying_price_usd" type="number | null">
        USD price of one underlying asset token.
      </ResponseField>

      <ResponseField name="data[].junior_aum_usd" type="number | null">
        Junior-tranche assets under management in USD.
      </ResponseField>

      <ResponseField name="data[].junior_lp_price" type="number">
        Net asset price of one junior LP token.
      </ResponseField>

      <ResponseField name="data[].junior_lp_price_usd" type="number | null">
        USD price of one junior LP token.
      </ResponseField>

      <ResponseField name="data[].senior_aum_usd" type="number | null">
        Senior-tranche assets under management in USD.
      </ResponseField>

      <ResponseField name="data[].senior_lp_price" type="number">
        Net asset price of one senior LP token.
      </ResponseField>

      <ResponseField name="data[].senior_lp_price_usd" type="number | null">
        USD price of one senior LP token.
      </ResponseField>

      <ResponseField name="data[].junior_apy" type="number | null">
        Junior-tranche APY as a decimal; null when unavailable.
      </ResponseField>

      <ResponseField name="data[].senior_apy" type="number | null">
        Senior-tranche APY as a decimal; null when unavailable.
      </ResponseField>

      <ResponseField name="data[].coverage_ratio" type="number | null">
        Junior effective NAV divided by protected exposure: senior raw NAV plus beta-weighted junior raw NAV.
      </ResponseField>

      <ResponseField name="data[].min_coverage_ratio" type="number | null">
        Minimum permitted junior coverage fraction.
      </ResponseField>

      <ResponseField name="data[].utilization_pct" type="number">
        Utilization value at this observation or curve point.
      </ResponseField>

      <ResponseField name="data[].loss_absorbed_pct" type="number | null">
        Historical loss absorbed by the junior tranche, expressed as a percentage.
      </ResponseField>

      <ResponseField name="data[].risk_premium_jr_pct" type="number | null">
        Junior-tranche risk-premium rate for the observation.
      </ResponseField>

      <ResponseField name="data[].risk_premium_sr_pct" type="number | null">
        Senior-tranche risk-premium rate for the observation.
      </ResponseField>
    </Expandable>
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  {
    "address": "HM8iLNE2WEN6J1AuwSSCoM37wgeLQFwYZ4ymYLqAoapN",
    "data": [
      {
        "timestamp": "2026-10-13T15:25:00.176+00:00",
        "exchange_rate": 1.155177212,
        "underlying_apy": 0.11020621366250283,
        "underlying_price_usd": 1.155177212,
        "junior_aum_usd": 2055608.0283593491,
        "junior_lp_price": 1.058520145414249,
        "junior_lp_price_usd": 1.058520145414249,
        "senior_aum_usd": 5440863.517319625,
        "senior_lp_price": 1.0244670405141134,
        "senior_lp_price_usd": 1.0244670405141134,
        "junior_apy": 0.19390562853426885,
        "senior_apy": 0.07295431220470523,
        "coverage_ratio": 0.2742100754780051,
        "min_coverage_ratio": 0.2,
        "utilization_pct": 72.9367801863,
        "loss_absorbed_pct": 0,
        "risk_premium_jr_pct": 8.369941487176602,
        "risk_premium_sr_pct": 3.7251901457797594
      },
      {
        "timestamp": "2026-10-13T16:25:00.237+00:00",
        "exchange_rate": 1.155177212,
        "underlying_apy": 0.11020621366250283,
        "underlying_price_usd": 1.155177212,
        "junior_aum_usd": 2055608.0283593491,
        "junior_lp_price": 1.058520145414249,
        "junior_lp_price_usd": 1.058520145414249,
        "senior_aum_usd": 5440863.517319625,
        "senior_lp_price": 1.0244670405141134,
        "senior_lp_price_usd": 1.0244670405141134,
        "junior_apy": 0.19390562853426885,
        "senior_apy": 0.07295431220470523,
        "coverage_ratio": 0.2742100754780051,
        "min_coverage_ratio": 0.2,
        "utilization_pct": 72.9367801863,
        "loss_absorbed_pct": 0,
        "risk_premium_jr_pct": 8.369941487176602,
        "risk_premium_sr_pct": 3.7251901457797594
      }
    ]
  }
  ```

  ```json 404 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.