# List snapshots of a virtual server

> The snapshots of one vServer, newest first, and how many it may have.

- Effect: Read - Changes nothing.
- Idempotent: yes
- Stability: beta
- MCP tool: `manitu_vserver_snapshot_list` on https://mcp.manitu.de/mcp
- REST: `POST https://api.manitu.de/v1/vserver/snapshot/list`
- Needs: `service_vserver`
- Page: /reference/vserver/snapshot/list/

## MCP tool

`manitu_vserver_snapshot_list`

### Description for the model

Lists the snapshots of a virtual server (vServer), by its vserver_id from manitu_vserver_list, newest first: when each was taken, when it expires and is deleted automatically, the note the customer gave it, whether the server was running at the time, and which one is the active base (the server runs on from it). snapshot_count_max is how many the server may have - at that count, one has to be deleted before another can be taken. Not a backup for a reinstall: manitu_vserver_reinstall deletes all snapshots of the server along with its data.

### Arguments

- `vserver_id` (integer | string, required) - The vserver_id from manitu_vserver_list - never guess one. (pattern `"^[1-9][0-9]*$"`; minimum `1`)

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "manitu_vserver_snapshot_list",
    "arguments": {
      "vserver_id": 12345
    }
  }
}
```

## REST

`POST https://api.manitu.de/v1/vserver/snapshot/list`

### Authentication

One of `X-API-Key`, `Authorization: Bearer …` - never more than one in a request.

### Request body

JSON; unknown fields are refused.

- `vserver_id` (integer | string, required) - The vserver_id from manitu_vserver_list - never guess one. (pattern `"^[1-9][0-9]*$"`; minimum `1`)

### Response

In `data`; the rest of the body as on every call.

- `snapshot_list` (array of object, required) - The snapshots, newest first.
  - `snapshot_list[].snapshot_id` (string, required) - The id of the snapshot - what manitu_vserver_snapshot_revert and _delete take.
  - `snapshot_list[].description` (string | null, required) - The note the customer gave it, if any.
  - `snapshot_list[].created_at` (string | null, required) - When it was taken. (format `date-time`)
  - `snapshot_list[].expires_at` (string | null, required) - When it is deleted automatically. (format `date-time`)
  - `snapshot_list[].is_active_base` (boolean, required) - The active base: the server runs on from this snapshot - everything changed since is its live state.
  - `snapshot_list[].power_state_at_creation` (string | null, required) - Whether the server was running when it was taken. (one of `"running"`, `"stopped"`, `null`)
- `snapshot_count_max` (integer, required) - How many snapshots the server may have.

### Statuses

- `200` Success.
- `400` The request does not match the declared input schema.
- `401` No credential was presented, or it was not recognised.
- `403` The credential is not permitted to use this operation.
- `500` The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.
- `503` The channel this operation forwards through is unavailable.

### Example

```sh
curl -X POST 'https://api.manitu.de/v1/vserver/snapshot/list' \
  -H 'X-API-Key: $API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"vserver_id":12345}'
```

## Example result

```json
{
  "snapshot_list": [
    {
      "snapshot_id": "string",
      "description": "Example",
      "created_at": "2026-10-23T12:00:00+02:00",
      "expires_at": "2026-10-23T12:00:00+02:00",
      "is_active_base": true,
      "power_state_at_creation": "running"
    }
  ],
  "snapshot_count_max": 1
}
```
