---
title: "Get public vaults"
method: GET
path: "/api/v1/vaults"
tags: ["Vaults"]
---

# Get public vaults

`GET /api/v1/vaults`

Retrieve paginated list of public vaults with optional status, vault type, vault address, and search filtering.
Use `vault_type` query parameter to filter by 'user' or 'protocol' vaults.
Use `vault_address` query parameter to fetch a specific vault by its address (exact match).
Use `search` query parameter to filter by vault address, vault name, or manager address (case-insensitive partial match).

## Query parameters

- `status` 'created' | 'active' | 'inactive'
- `vault_type` string
- `vault_address` string
- `search` string
- `limit` integer
- `offset` integer
- `sort_key` 'tvl' | 'age' | 'pnl' | 'sharpe_ratio' | 'weekly_win_rate' | 'max_drawdown' | 'apr' — Sort keys for vault listing Defines the available fields that can be used to sort vaults in the /vaults endpoint.
- `sort_dir` 'ASC' | 'DESC'

## Response `200`

Public vaults retrieved successfully

- PublicVaultsResponse
  - `items` PublicVaultDto[], required
    - `address` string, required
    - `all_time_pnl` number, double, nullable
    - `all_time_return` number, double, nullable
    - `apr` number, double, nullable — Annualized percentage return (avg daily share-price yield × 365). NULL if vault has < 14 days of snapshot data.
    - `average_leverage` number, double, nullable
    - `created_at` integer, required
    - `depositors` integer, nullable
    - `description` string, nullable
    - `lockdown_period_s` integer, nullable — Lockdown period in seconds. Contributors cannot redeem until this period elapses after deposit. Can be 0 (no lockdown) up to 7 days (604800 seconds).
    - `manager` string, required
    - `manager_cash_pct` number, double, nullable — Manager's current cash position as percentage of total account value (point-in-time, not average)
    - `max_drawdown` number, double, nullable
    - `name` string, required
    - `net_deposits` number, double, nullable — Net deposits (total contributions - total settled redemptions) in USDC. Used to verify all_time_return and display context (e.g., "X% return on $Y invested").
    - `past_month_return` number, double, nullable
    - `perp_equity` number, double, nullable
    - `pnl_90d` number, double, nullable
    - `profit_share` number, double, nullable
    - `sharpe_ratio` number, double, nullable
    - `social_links` string[], nullable
    - `status` string, required
    - `tvl` number, double, nullable
    - `vault_type` string, nullable
    - `volume` number, double, nullable
    - `volume_30d` number, double, nullable
    - `weekly_win_rate_12w` number, double, nullable
  - `total_count` integer, required
  - `total_value_locked` number, double, required — Total value locked across all filtered vaults
  - `total_volume` number, double, required — Total all-time trading volume across all filtered vaults

## Other responses

- `500` — Database error

---

[API](https://skmtc.net/decibel/apis/decibel-trading-api.md) · [All operations](https://skmtc.net/decibel/apis/decibel-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/decibel/decibel-trading-api/revisions/37a02083ff59/schema)
