---
title: "List Secrets"
method: GET
path: "/api/v1/vault/secrets"
tags: ["vault"]
---

# List Secrets

`GET /api/v1/vault/secrets`

## Request

- Base URL: `https://core.mnemoverse.com`
- URL: `https://core.mnemoverse.com/api/v1/vault/secrets`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP bearer

Discovery: list the caller's ACTIVE secrets as VALUE-FREE metadata (alias, context,
created_at, concepts) so an agent can FIND a secret by alias WITHOUT ever seeing a
value. The tenant comes from the VERIFIED claims and scopes the query (org A can
never enumerate org B's secrets). A secret-atom with no reachable ``secret:{alias}``
external_ref (e.g. stored directly, not via this route) is SKIPPED — its alias could
not be used via the by-alias route anyway, so surfacing it would only mislead.

``include_retired=true`` adds the retired ones (step 5, 2026-10-10): value-free history
rows, told apart by the ``#retired-`` mark in their ref (server-controlled: no alias can
spell ``#``), whose alias is the name they had (``metadata.retired_alias``) and whose
``retired_at`` is set. Their stored value was overwritten and their ref is unreachable.

## Query parameters

- `include_retired` boolean

## Response `200`

Successful Response

- ListSecretsResponse
  - `secrets` SecretSummary[], required
    - `alias` string, required
    - `context` string, required
    - `created_at` string, date-time, required
    - `concepts` string[], required
    - `retired_at` string, date-time, nullable

## Other responses

- `400`: Validation error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Validation Error
- `429`: Rate limited
- `500`: Internal server error
- `503`: Service unavailable

---

[API](https://skmtc.dev/mnemoverse/apis/mnemoverse-core.md) · [All operations](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/revisions/1f5e0048f017?raw)
