---
title: "List Namespace Snapshots"
method: POST
path: "/v1/namespaces/{namespace_identifier}/snapshots/list"
tags: ["Namespace Snapshots"]
---

# List Namespace Snapshots

`POST /v1/namespaces/{namespace_identifier}/snapshots/list`

List all snapshots for a namespace, newest first.

## Path parameters

- `namespace_identifier` string, required — Namespace name or ID

## Request body

- ListSnapshotsRequest
  - `skip` integer
  - `limit` integer

## Response `200`

Successful Response

- ListSnapshotsResponse
  - `results` SnapshotModel[], required
    - `snapshot_id` string
    - `namespace_id` string, required
    - `namespace_name` string, required
    - `internal_id` string, required
    - `snapshot_type` 'daily' | 'pre_delete' | 'manual', required
    - `status` 'pending' | 'in_progress' | 'completed' | 'failed' | 'expired'
    - `created_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `expires_at` string, date-time, nullable
    - `schema_version` integer
    - `s3_prefix` string
    - `s3_objects_copied` boolean
    - `manifest` SnapshotManifest
      - `snapshot_id` string, required
      - `namespace_id` string, required
      - `namespace_name` string, required
      - `schema_version` integer
      - `created_at` string, date-time, required
      - `snapshot_type` string, required
      - `mongo_collections` object — Map of collection name to document count
      - `vector_point_count` integer
      - `s3_object_count` integer
      - `s3_total_bytes` integer
      - `s3_objects_copied` boolean
      - `include_vectors` boolean — Whether this snapshot exported its own vector points. Daily sweeps coalesce the (full-dataset) vector export to ONE snapshot per physical shard (MI-894); metadata-only snapshots set this False and rely on the shard representative's export (see vector_shard_key).
      - `vector_shard_key` string, nullable — Physical shard this namespace's vectors live on; the shard representative's snapshot holds the actual vector export.
    - `error` string, nullable
    - `task_id` string, nullable
    - `include_vectors` boolean — False for metadata-only daily snapshots whose vectors are covered by the shard representative's export (MI-894).
    - `vector_shard_key` string, nullable
    - `last_restore` RestoreReport — Outcome of a restore: exactly what was restored vs skipped. Restore is lenient (it warns + continues on a missing/corrupt dump), so a 'completed' restore can be silently incomplete. This report records the per-collection and vector outcomes and a single ``complete`` flag so a partial restore is never mistaken for a clean one (BACKE-804).
      - `snapshot_id` string, required
      - `target_namespace_id` string, required
      - `complete` boolean, required — True iff every non-empty collection AND the vectors were fully restored
      - `collections` RestoreCollectionOutcome[]
        - `collection` string, required
        - `expected` integer, required
        - `restored` integer, required
        - `status` string, required — 'restored' (full), 'partial' (restored < expected), or 'failed'
        - `reason` string, nullable
      - `vector_expected` integer
      - `vector_restored` integer
      - `vector_source` string, nullable
      - `vector_status` string — 'restored', 'partial', 'failed', or 'none' (snapshot carried no vectors)
      - `skipped_summary` string[] — Human-readable list of everything not fully restored (empty when complete)
  - `total_count` integer, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/5d4c905106b4/schema)
