---
title: "List curated strategies"
method: GET
path: "/v1/strategies"
tags: ["Strategies"]
---

# List curated strategies

`GET /v1/strategies`

Returns one card per curated strategy (Earn, Prime Lending, …) with aggregate metrics across the strategy's visible vaults: total TVL in USD, the highest 7/30/90-day APY ("APY up to"), and the vault count. TVL sums only vaults whose numeraire has a USD price; unpriced vaults still count toward `vault_count` and the APY maxes. Strategy membership and visibility are curated by Gauntlet; metrics come from the indexer and are refreshed continuously. Ordered by curated display order.

## Response `200`

List of strategy cards

- StrategyListResponse
  - `data` StrategyCard[], required
    - `apy_30d_max` number, double, nullable — Highest 30-day APY across the strategy's vaults.
    - `apy_7d_max` number, double, nullable — Highest 7-day APY across the strategy's vaults ("APY Up To"), fraction (0.0953 = 9.53%). `null` while every vault's window is still warming up. Vaults with APY display disabled do not contribute to this aggregate.
    - `apy_90d_max` number, double, nullable — Highest 90-day APY across the strategy's vaults.
    - `description` string, nullable — Marketing description of the strategy.
    - `id` string, required — Strategy identifier from the admin vocabulary (e.g. `earn`, `prime_lending`).
    - `name` string, required — Display name (e.g. "Prime Lending").
    - `short_description` string, nullable — Card-length copy (e.g. "Conservative lending yield with low risk"). `null` when the curator hasn't written any; consumers decide whether to fall back to `description`.
    - `tvl` CuratedTvl, required — USD amount on curated aggregates: decimal string, `null` when the pricing service is not configured.
      - `usd` string, nullable
    - `updated_at` string, date-time, nullable — Most recent indexer snapshot among the strategy's vaults; `null` in the degenerate case where no matched row carried a timestamp.
    - `vault_count` integer, required — Visible curated vaults in this strategy that matched at least one indexed deployment.
  - `meta` ListMeta, required — Documented metadata for list endpoints; pagination fields are omitted by unpaginated responses.
    - `count` integer, required — Number of items in this response.
    - `limit` integer, nullable — Page-size cap actually applied to paginated lists.
    - `next_cursor` string, nullable — Set when more pages exist; pass back as `?next=`.
    - `partial_errors` PartialResponseError[], nullable — Item-scoped failures isolated from an aggregate response.
      - `code` string, required — Machine-readable error code for the isolated item failure.
      - `message` string, required — Human-readable error message.
      - `resource_id` string, nullable — Resource that failed inside the aggregate response, when known.
    - `refreshed_at` string, date-time, required
    - `request_id` string, required

## Other responses

- `401` — Missing or invalid auth
- `503` — Data source unavailable

## Changes

- **2026-08-27** `4452dcc4d7b3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/gauntlet/apis/gauntlet-api/changes/v1/strategies/get.md)

---

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