Skip to main content
POST
Restore From Snapshot

Authorizations

Authorization
string
header
required

Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.

Path Parameters

namespace_identifier
string
required

Namespace name or ID

snapshot_id
string
required

Snapshot ID to restore from

Body

application/json

Keys this body does not declare are refused with 422 extra_forbidden naming the accepted keys (since 2026-11-02).

target_namespace_name
string | null

Name for the restored namespace. If omitted, restores in-place (deletes current data and replaces with snapshot data), which requires confirm_in_place.

confirm_in_place
boolean
default:false

Required to restore in place (no target_namespace_name): the namespace's current data is deleted and replaced by the snapshot's. While the restore runs the namespace is read-only; writes are refused with a 409 to retry after it completes.

restore_point

Restore the namespace as it was at this point: an RFC 3339 instant (e.g. 2026-10-01T18:00:00Z) or a vector-store WAL seq. Requires target_namespace_name. The snapshot must have been taken at or before the point. For an instant, the configuration (the namespace, its buckets, collections and retrievers) is rebuilt as it was at the instant from the namespace's configuration history; for a WAL seq it is the snapshot's. An instant the history cannot rebuild exactly is refused, naming why. The vectors and payloads are the shard's state at the point, replayed from its retained WAL. A restore can reach any point from the vector store's most recent checkpoint up to its newest durable write. A point outside that range is refused, and the error names the oldest and newest instants you can restore to now. Omit to restore the snapshot as taken.

Example:

"2026-10-01T18:00:00Z"

isolated
boolean
default:false

Restore beside the source onto a temporary vector shard of its own instead of the plane's shared one. Requires target_namespace_name. The copy is for checking or measuring a restore: its shard stops after six hours, and deleting the copy's namespace stops it sooner. One isolated copy runs at a time; a second request while one is up is refused naming the namespace that holds it.

Response

Successful Response

task_id
string
required
snapshot_id
string
required
target_namespace_id
string
required
message
string
required
restore_point
string | null

The restore_point requested, normalized

fork_id
string | null

Identifies the point-in-time replica this restore reads from; the task's restore_report carries the same id

resolved_seq
integer | null

The WAL seq the restore targets. Known here when restore_point is a seq; for an instant the shard resolves it during the restore, and the task's restore_report records it.

isolated
boolean
default:false

True when the copy goes onto a temporary shard of its own; the task creates the namespace once that shard is up