---
title: "List a volume's recovery points"
method: GET
path: "/api/recovery/storage/{storageId}/points"
tags: ["Recovery"]
---

# List a volume's recovery points

`GET /api/recovery/storage/{storageId}/points`

## Request

- Base URL: `https://localhost:1852`
- URL: `https://localhost:1852/api/recovery/storage/{storageId}/points`
- Auth: HTTP bearer

Returns the storage identity with every point recorded against its key, newest first, each with its verifications. A caller who may not read the storage is refused. The volume itself need not exist any more.

## Path parameters

- `storageId` string, required

## Headers

- `x-node-id` integer

## Response `200`

The storage identity and its points.

- object
  - `storage` object, required
    - `id` string, required
    - `locator` string, required: The volume name.
    - `generation` integer, required: Increments when the volume is recreated under the same name.
    - `state` 'current' | 'superseded', required
  - `points` object[], required
    - `point` RecoveryPoint, required
      - `id` string, uuid, required
      - `schemaVersion` integer, required
      - `storageId` string, required
      - `storageGeneration` integer, required: The volume generation this point captured. A recreated volume is a new generation.
      - `repositoryId` string, required
      - `trigger` 'manual' | 'policy' | 'pre_change' | 'pre_restore', required
      - `actor` string, required
      - `sourceOperationId` string, required
      - `sourceNodeKey` string, required
      - `engineId` string, required
      - `capabilityVersion` integer, required
      - `startedAt` integer, required
      - `kind` 'root' | 'path', required: Only a `root` point of the current generation can count toward Protected.
      - `pathScope` string, nullable, required: The path a `path` point covers, relative to the volume root.
      - `status` 'pending' | 'succeeded' | 'partial' | 'failed' | 'completion_unknown', required
      - `snapshotId` string, nullable, required
      - `consistency` 'crash_consistent_live' | 'crash_consistent_stopped' | 'unknown', required: An observation about the capture, not a claim about the application. `crash_consistent_live` means a container was using the volume while it was read; `crash_consistent_stopped` means nothing was observed using it and Sencho stopped nothing.
      - `capture` object, nullable, required
        - `fileCount` integer
        - `byteCount` integer
        - `skippedCount` integer: Non-zero means the point is `partial` and never counts toward Protected.
      - `exclusions` object[], required
        - `path` string, required
        - `reason` 'policy_excluded' | 'permission_denied' | 'unreadable' | 'vanished' | 'unsupported_type', required
      - `completedAt` integer, nullable, required
      - `failureClass` string, nullable, required: The error class a failed point ended with.
    - `verifications` RecoveryVerification[], required
      - `id` string, required
      - `pointId` string, required
      - `method` 'engine_check_metadata' | 'engine_check_read_data', required
      - `result` 'verified' | 'mismatch' | 'error', required: A check that could not run is `error`, which never counts as verified.
      - `verifiedAt` integer, required
      - `operationId` string, nullable, required

## Other responses

- `400`: The request is not valid for this storage.
- `401`: Authentication required. Provide a valid Bearer token.
- `403`: The caller lacks the access this recovery action needs. An API token whose scope does not allow the call is refused before the route runs, with `code: SCOPE_DENIED` and no `errorClass`.
- `409`: A live lock is held, an interrupted operation left a stale lock, the storage identity is unknown, a check found a mismatch, an operation was interrupted, or a remote node needs an update.
- `500`: The recovery operation failed.

## Changes

- **2026-11-02** `1f7572eb735f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/studio-saelix/apis/sencho-api/changes/api/recovery/storage/:storageId/points/get.md)

---

[API](https://skmtc.dev/studio-saelix/apis/sencho-api.md) - [All operations](https://skmtc.dev/studio-saelix/apis/sencho-api/llms.txt) - [OpenAPI document](https://skmtc.dev/studio-saelix/apis/sencho-api/revisions/bb1a37e1ed3b?raw)
