---
title: "Restore a database from a snapshot"
method: POST
path: "/v2/databases/{databaseId}/snapshots/restore"
tags: ["Database Snapshots"]
---

# Restore a database from a snapshot

`POST /v2/databases/{databaseId}/snapshots/restore`

Restores the database from a previous snapshot identified by `snapshotId` and `versionId`. The snapshot's database type must match the target database type.

Rate limits: 1 restore per 60s per user (`snapshot:restore`) and 1 restore per 120s per database (`snapshot:restore:<databaseId>`).

## Path parameters

- `databaseId` string, required

## Request body

- object
  - `snapshotId` string, required — Snapshot identifier (UUID v4, optionally suffixed with `_<type>`).
  - `versionId` string, required

## Response `200`

Restore dispatched.

- object
  - `status` 'success', required

## Other responses

- `400` — Snapshot restore input validation failed or the snapshot type does not match the database.
- `401` — The Authorization header is missing, malformed, or the credentials are not valid.
- `404` — The snapshot does not exist, the database is not owned by the caller, or the restore was rejected.
- `413` — The request body is larger than the maximum allowed size (100MB).
- `429` — The endpoint enforces its own rate limit and the caller hit the cooldown.
- `500` — An unexpected error occurred while processing the request.

---

[API](https://skmtc.dev/squarecloud/apis/square-cloud-api.md) · [All operations](https://skmtc.dev/squarecloud/apis/square-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/squarecloud/square-cloud-api/revisions/54b7733a6b95/schema)
