---
title: "One strategy by market id"
method: GET
path: "/v1/strategies/{id}"
---

# One strategy by market id

`GET /v1/strategies/{id}`

## Request

- Base URL: `https://api.spiralstake.xyz`
- URL: `https://api.spiralstake.xyz/v1/strategies/{id}`
- Auth: none declared

## Path parameters

- `id` string, required

## Response `200`

Strategy

- object: Frozen /strategies contract (v1). Raw facts; the only verdict is under spiralHints.
  - `id` string, required: Morpho market id (0x + 64 hex).
  - `chainId` integer, required
  - `correlated` boolean, required
  - `curator` string, nullable: Who curates the market the collateral is posted on. Present only on partner-curated markets (Longbow / NetNet Credit: the equity vaults' stock markets and Longbow's perp markets) — distinguishes two vaults on the same ticker. Absent on Spiral's own markets.
  - `collateral` object, required: Collateral token facts; `description` is the curated plain-English account of what it is and how it earns.
  - `loan` object, required
  - `collateralApyPct` string, required
  - `collateralApySource` 'pendle' | 'defillama' | 'royco' | 'stablewatch' | 'onchain' | 'none', required
  - `yieldSustainabilityPct` object
  - `pointsIncentive` object, nullable: Off-chain points program on the collateral (e.g. Tori Cores). Not a yield. Accrues to the position proxy on the leveraged balance: effective = perDayPerCollateralToken x leverage x tokens.
    - `program` string
    - `perDayPerCollateralToken` number
  - `borrowApyPct` string, required
  - `quarterlyBorrowApyPct` string
  - `borrowIncentive` object, nullable
  - `netBorrowApyPct` string, required
  - `supplyUsd` number
  - `liquidityUsd` number
  - `publicAllocatorLiquidityUsd` number
  - `maxLeverage` string, required
  - `utilizationPct` string
  - `leverageLadder` object[], required
    - `leverage` string, required
    - `ltvPct` string, required
    - `leverageApyPct` string, required
  - `defaultLeverage` object, required
    - `leverage` string, required
    - `ltvPct` string, required
    - `leverageApyPct` string, required
  - `historicalLeverageApyPct` object
  - `ltvPct` object, required
    - `liquidation` string
    - `max` string
  - `oracle` object
  - `exitLiquidity` object, required
  - `noSwapRoute` boolean, required
  - `spiralHints` object: Optional, namespaced Spiral opinion; carries its thresholds.
  - `freshness` object, required
    - `borrow` object
      - `asOf` string, date-time, required
      - `staleAfterSec` integer, required
      - `staleForSec` integer: Seconds past the freshness budget; present only when stale.
    - `collateralApy` object
      - `asOf` string, date-time, required
      - `staleAfterSec` integer, required
      - `staleForSec` integer: Seconds past the freshness budget; present only when stale.
    - `exitLiquidity` object
      - `asOf` string, date-time, required
      - `staleAfterSec` integer, required
      - `staleForSec` integer: Seconds past the freshness budget; present only when stale.
  - `links` object

## Other responses

- `400`: Invalid id
- `404`: Not found

---

[API](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1.md) · [All operations](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1/revisions/e58af20cd747?raw)
