---
title: "Get Snapshot Status"
method: GET
path: "/volumes/{volume_id}/edges/{edge_id}/snapshots"
tags: ["Volumes"]
---

# Get Snapshot Status

`GET /volumes/{volume_id}/edges/{edge_id}/snapshots`

## Request

- Base URL: `https://am1.portal.api.nasuni.com`
- URL: `https://am1.portal.api.nasuni.com/volumes/{volume_id}/edges/{edge_id}/snapshots`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nasuni/apis/portal-api/docs/volumes/:volume_id/edges/:edge_id/snapshots/get.ts> (a function with typed inputs; its response is checked against the schema)

Snapshot status for one ``(volume, edge)`` pair.

Reads directly from the DB. Returns HTTP 404 when no
``VolumeConnection`` exists for the pair (the mount is unknown to
Portal — the repo raises :class:`ResourceNotFound` and the global
exception handler maps it). Returns ``current_snapshot_status=idle``
when the mount is known but the filer has not yet reported any
snapshot metrics for it.

## Path parameters

- `volume_id` string, required
- `edge_id` string, uuid, required

## Response `200`

Current snapshot status for the given (volume_id, edge_id) pair

- SnapshotStatusResponseDto: Per-edge snapshot status — ``VolumeEdgeState.current_snapshot_status`` for a single ``(volume_id, edge_id)``. Defaults to ``idle`` when no state row exists (no UI difference).
  - `volume_id` string, required
  - `edge_id` string, uuid, required
  - `current_snapshot_status` 'idle' | 'pending' | 'in_progress' | 'succeeded' | 'failed' | 'cancelling' | 'cancelled' | 'cancel_rejected' | 'up_to_date': Public snapshot lifecycle vocabulary surfaced by the snapshot APIs. The persisted column (``VolumeEdgeState.current_snapshot_status``) has a single writer: the EventHub ``VolumeSnapshotStatusProcessor``, which translates filer ``volume_snapshot_status`` events. No other code path — API request handlers, heartbeat upserts, background services — writes to that column. ``cancelling`` never reaches the DB: it exists as a FE-optimistic wire value only (clients render it between the cancel dispatch and the filer's ``cancelled`` / ``cancel_rejected`` ack). ``pending`` is a real filer-reported state.

## Other responses

- `401`: Not authenticated
- `403`: Insufficient permissions
- `404`: Resource not found
- `422`: Invalid input data
- `500`: Internal server error

---

[API](https://skmtc.dev/nasuni/apis/portal-api.md) - [All operations](https://skmtc.dev/nasuni/apis/portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nasuni/apis/portal-api/revisions/2a505bec6d14?raw)
