---
title: "Get Snapshot"
method: GET
path: "/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}"
tags: ["Namespace Snapshots"]
---

# Get Snapshot

`GET /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}`

Get details of a specific snapshot.

## Path parameters

- `namespace_identifier` string, required — Namespace name or ID
- `snapshot_id` string, required — Snapshot ID (e.g. snap_xxxxxxxxxxxx)

## Response `200`

Successful Response

- SnapshotModel
  - `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)

## 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)
