---
title: "Get current savings data"
method: GET
path: "/v1/savings/{protocol}/{chain}/{token}"
tags: ["Savings"]
---

# Get current savings data

`GET /v1/savings/{protocol}/{chain}/{token}`

Returns the current APY, TVL, deposit cap, liquidity, and collateral composition for a savings vault, along with the vault share token and underlying asset token details (address, decimals, symbol, name).

## Path parameters

- `protocol` string, required — Savings protocol. Supported: `spark`, `sky` (case-insensitive).
- `chain` string, required — Chain name. Supported: `mainnet` (case-insensitive).
- `token` string, required — Underlying asset symbol. Supported: `usdc`, `usdt` (case-insensitive). Not every protocol/chain/token combination exists — see the API description for the available vaults.

## Response `200`

Current savings data for the requested vault.

- object
  - `data` SavingsResponse, required
    - `vault` VaultTokenInfo, required — The savings vault share token (e.g. `spUSDC`) that depositors receive.
      - `address` string, required — Token contract address (checksummed).
      - `decimals` integer, required — Number of decimals the token uses.
      - `symbol` string, required — Token symbol.
      - `name` string, required — Token name.
    - `asset` AssetTokenInfo, required — The underlying token (e.g. `USDC`) deposited into the vault.
      - `address` string, required — Token contract address (checksummed).
      - `decimals` integer, required — Number of decimals the token uses.
      - `symbol` string, required — Token symbol.
      - `name` string, required — Token name.
    - `apy` string, required — Current annual percentage yield as a decimal fraction (e.g. `0.0365` = 3.65%).
    - `tvl` string, required — Total value locked, in units of the underlying asset (decimal string).
    - `users` number, required — Number of unique depositors. May lag on-chain state by ~5–10 minutes.
    - `depositCap` string, required — Maximum total deposits allowed, in units of the underlying asset (decimal string).
    - `liquidity` LiquidityEntry[], required — Available liquidity broken down by the source it is deployed to. May lag on-chain state by ~5–10 minutes.
      - `protocol` string, required — Liquidity source the funds are deployed to (e.g. `psm`, `morpho`, `sparklend`).
      - `value` string, required — Amount available at this source, in units of the underlying asset (decimal string).
    - `collateralComposition` object, required — Breakdown of the collateral backing the savings, keyed by token symbol (e.g. `usds`, `usdc`). Each entry is the estimated value held in a given collateral category. May lag on-chain state by ~5–10 minutes.

## Other responses

- `404` — No savings vault matches the given protocol/chain/token.
- `500` — Unexpected server error.

---

[API](https://skmtc.dev/spark/apis/spark-savings-data-api.md) · [All operations](https://skmtc.dev/spark/apis/spark-savings-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/spark/spark-savings-data-api/revisions/42edd3c83939/schema)
