> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Restore From Snapshot

> Restore a namespace from a snapshot. If target_namespace_name is provided, creates a new namespace with the restored data. Otherwise, restores in-place (replaces current namespace data).



## OpenAPI

````yaml post /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}/restore
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}/restore:
    post:
      tags:
        - Namespace Snapshots
      summary: Restore From Snapshot
      description: >-
        Restore a namespace from a snapshot. If target_namespace_name is
        provided, creates a new namespace with the restored data. Otherwise,
        restores in-place (replaces current namespace data).
      operationId: >-
        restore_snapshot_v1_namespaces__namespace_identifier__snapshots__snapshot_id__restore_post
      parameters:
        - name: namespace_identifier
          in: path
          required: true
          schema:
            type: string
            description: Namespace name or ID
            title: Namespace Identifier
          description: Namespace name or ID
        - name: snapshot_id
          in: path
          required: true
          schema:
            type: string
            description: Snapshot ID to restore from
            title: Snapshot Id
          description: Snapshot ID to restore from
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreSnapshotRequest'
        description: >-
          Keys this body does not declare are refused with 422 extra_forbidden
          naming the accepted keys (since 2026-11-02).
        x-unknown-keys:
          until: '2026-11-02'
          then: 422 extra_forbidden
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestoreSnapshotResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    RestoreSnapshotRequest:
      properties:
        target_namespace_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Namespace Name
          description: >-
            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:
          type: boolean
          title: Confirm In Place
          description: >-
            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.
          default: false
        restore_point:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Restore Point
          description: >-
            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.
          examples:
            - '2026-10-01T18:00:00Z'
            - 48210
        isolated:
          type: boolean
          title: Isolated
          description: >-
            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.
          default: false
      type: object
      title: RestoreSnapshotRequest
    RestoreSnapshotResponse:
      properties:
        task_id:
          type: string
          title: Task Id
        snapshot_id:
          type: string
          title: Snapshot Id
        target_namespace_id:
          type: string
          title: Target Namespace Id
        message:
          type: string
          title: Message
        restore_point:
          anyOf:
            - type: string
            - type: 'null'
          title: Restore Point
          description: The restore_point requested, normalized
        fork_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Fork Id
          description: >-
            Identifies the point-in-time replica this restore reads from; the
            task's restore_report carries the same id
        resolved_seq:
          anyOf:
            - type: integer
            - type: 'null'
          title: Resolved Seq
          description: >-
            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:
          type: boolean
          title: Isolated
          description: >-
            True when the copy goes onto a temporary shard of its own; the task
            creates the namespace once that shard is up
          default: false
      type: object
      required:
        - task_id
        - snapshot_id
        - target_namespace_id
        - message
      title: RestoreSnapshotResponse
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.