---
title: "Get Loopscale Strategies"
method: POST
path: "/markets/strategy/infos"
tags: ["strategy_data"]
---

# Get Loopscale Strategies

`POST /markets/strategy/infos`

Returns a list of strategy data matching the filters.

## Request body

- LendingStrategyFilter — lending strategy filter
  - `addresses` string[]
  - `collateralTermsAssetFilter` string[] — When non-empty on the summary endpoint, run a secondary query to fetch `terms.asset_terms` only for these collateral mints. Empty (default) = `terms.asset_terms` stays empty, no secondary query is run. Ignored by the full `/strategy/infos` endpoint.
  - `overridePageSize` boolean
  - `page` integer
  - `pageSize` integer
  - `principalMints` string[]
  - `showArchived` boolean
  - `sortDirection` integer
  - `sortType` integer
  - `userAddress` string, nullable

## Response `200`

List of strategies that match filter

- ApiStrategyInfoResponse
  - `aggregate` StrategiesAggregate, required — Filter-scoped aggregate over the full matched strategy set. USD fields use the request's pinned oracle snapshot. APYs are fractional (0.085 = 8.5%). `wAvgApy` and `expected24hInterestUsd` are **blended**: they include both deployed-side interest (from `ledgers.apy`) and external-yield-side yield (from `external_yield_vaults.apy`). Idle principal sitting in the strategy's token account contributes to `strategyBalanceUsd` and drags the weighted average with an implicit 0% APY, matching realized-yield semantics. Strategies are lender-side only — no role ambiguity; `expected24hInterestUsd` always represents accrual to the lender.
    - `count` integer, required — Number of strategies folded into this aggregate.
    - `expected24hInterestUsd` number, double, required — Projected 24h interest in USD — computed off the unrounded weighted APY numerator, so it reconciles with the displayed `wAvgApy` within a fraction of a bp. Lender-side accrual.
    - `interestAccruedUsd` number, double, required — Currently-outstanding deployed interest accrued by ledgers, in USD.
    - `interestEarnedAllTimeUsd` number, double, required — Lifetime interest earned by the lender, read directly from on-chain `strategy.cumulative_interest_accrued` summed across the group and priced at the snapshot. Independent of `interestAccruedUsd` (which is only the *currently outstanding* leg).
    - `principalDeployedUsd` number, double, required — Deployed-side principal in USD — `SUM(principal_due − principal_repaid)` across active ledgers, priced at the snapshot.
    - `strategyBalanceUsd` number, double, required — Idle-side principal in USD — strategy token-account balance plus external-yield-vault balance, priced at the snapshot.
    - `totalSupplyUsd` number, double, required — `principalDeployedUsd + strategyBalanceUsd` — total lender supply.
    - `wAvgApy` number, double, required — Blended USD-weighted APY: deployed-side (from `ledgers.apy`) plus external-yield-side (from `external_yield_vaults.apy`). Idle in the token account contributes at an implicit 0%. Weighting key is `totalSupplyUsd`.
  - `items` StrategyDetail[], required
    - `borrowCapMonitor` ParsedCapMonitor, required
      - `principal1hr` string, required
      - `principal24hr` string, required
      - `startTime1hr` string, required
      - `startTime24hr` string, required
    - `externalYieldInfo` ExternalYieldInfo
      - `apy` string, required
      - `balance` string, required
      - `externalYieldSource` integer, required
      - `lastUpdateTime` integer, required
      - `yieldAccount` string, required
    - `strategy` Strategy, required
      - `activeLoanCount` string, required
      - `address` string, required
      - `borrowCap1hrAmount` string, required
      - `borrowCap1hrPeriodStart` string, required
      - `borrowCap24hrAmount` string, required
      - `borrowCap24hrPeriodStart` string, required
      - `bump` integer, required
      - `closed` boolean, required
      - `createdAt` string, required
      - `cumulativeInterestAccrued` string, required
      - `cumulativeLoanCount` string, required
      - `cumulativePrincipalOriginated` string, required
      - `currentDeployedAmount` string, required
      - `externalYieldAmount` string, required
      - `externalYieldSource` integer, required
      - `feeClaimable` string, required
      - `id` integer
      - `interestFee` string, required
      - `interestPerSecond` number, double, required
      - `lastAccruedTimestamp` string, required
      - `lastInteractedTime` string, required
      - `lastInteractedTxn` string, required
      - `lender` string, required
      - `liquidityBuffer` string, required
      - `marketInformation` string, required
      - `nonce` string, required
      - `originationCap` string, required
      - `originationFee` string, required
      - `originationsEnabled` boolean, required
      - `outstandingInterestAmount` string, required
      - `principalFee` string, required
      - `principalMint` string, required
      - `supplyCap1hrAmount` string, required
      - `supplyCap1hrPeriodStart` string, required
      - `supplyCap24hrAmount` string, required
      - `supplyCap24hrPeriodStart` string, required
      - `tokenBalance` string, required
      - `version` integer, required
      - `withdrawCap1hrAmount` string, required
      - `withdrawCap1hrPeriodStart` string, required
      - `withdrawCap24hrAmount` string, required
      - `withdrawCap24hrPeriodStart` string, required
      - `writeVersion` string, required
    - `supplyCapMonitor` ParsedCapMonitor, required
      - `principal1hr` string, required
      - `principal24hr` string, required
      - `startTime1hr` string, required
      - `startTime24hr` string, required
    - `terms` StrategyTerms, required
      - `assetTerms` object, required
      - `borrowCaps` ParsedPrincipalCaps, required — Parsed principal supply/borrow/withdraw caps: rolling 1h and 24h ceilings plus the max concurrent outstanding, all in the principal mint's native units.
        - `max1hr` string, required
        - `max24hr` string, required
        - `maxOutstanding` string, required
      - `supplyCaps` ParsedPrincipalCaps, required — Parsed principal supply/borrow/withdraw caps: rolling 1h and 24h ceilings plus the max concurrent outstanding, all in the principal mint's native units.
        - `max1hr` string, required
        - `max24hr` string, required
        - `maxOutstanding` string, required
      - `withdrawCaps` ParsedPrincipalCaps, required — Parsed principal supply/borrow/withdraw caps: rolling 1h and 24h ceilings plus the max concurrent outstanding, all in the principal mint's native units.
        - `max1hr` string, required
        - `max24hr` string, required
        - `maxOutstanding` string, required
    - `withdrawCapMonitor` ParsedCapMonitor, required
      - `principal1hr` string, required
      - `principal24hr` string, required
      - `startTime1hr` string, required
      - `startTime24hr` string, required
    - `expected24hInterestUsd` number, double, required
    - `interestAccruedUsd` number, double, required
    - `interestEarnedAllTimeUsd` number, double, required
    - `principalDeployedUsd` number, double, required
    - `strategyBalanceUsd` number, double, required
    - `totalSupplyUsd` number, double, required
    - `wAvgApy` number, double, required
  - `pageInfo` PageInfo, required — Pagination envelope shared across paginated listing endpoints (`/loans/info`, `/strategy/infos`, `/loop/info/v2`, `/lending_vaults/user/v2`). `totalItems` / `totalPages` are filter-scoped, not page-scoped.
    - `page` integer, required — 0-indexed page number echoed back from the request.
    - `pageSize` integer, required — Maximum item count per page applied by the server (may differ from the request's `pageSize` if the request was 0 or above the cap).
    - `totalItems` integer, required — Total item count across the *filter* scope (not just this page). What "item" counts as depends on the endpoint — for grouped endpoints this is the count of distinct groups, not loans/rows.
    - `totalPages` integer, required — `ceil(totalItems / pageSize)`.
  - `snapshotTs` integer, required

## Other responses

- `400`
- `401`
- `500`

---

[API](https://skmtc.dev/loopscale/apis/loopscale-api.md) · [All operations](https://skmtc.dev/loopscale/apis/loopscale-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/loopscale/loopscale-api/revisions/531f64dbe09c/schema)
