Skip to main content
Neon Postgres Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Restore snapshot

Restores the specified snapshot to a new branch,

POST /projects/{project_id}/snapshots/{snapshot_id}/restorebeta

Restores the specified snapshot to a new branch, and optionally finalizes the restore operation to replace the original branch.

Markdown for AI context

REST API - curl
curl "https://console.neon.tech/api/v2/projects/$PROJECT_ID/snapshots/$SNAPSHOT_ID/restore" \
  -X POST \
  -H "Authorization: Bearer $NEON_API_KEY"

Every field below is optional. An empty body works too.

Also available in

Bash
neon snapshots restore <snapshot_id>

Console path: Projects → Backup & restore

Project ID

project_id

string

The Neon project ID

Snapshot ID

snapshot_id

string

The snapshot ID

Name

name

string

Deprecated. Use the name field in the request body instead. Removal scheduled for November 29, 2025. A name for the newly restored branch. If omitted, a default name will be generated.

No field is required. Send an empty body to use sensible defaults.

Name

name

string

A name for the newly restored branch. If not provided, the server generates a unique name for the branch automatically.

Target branch ID

target_branch_id

string

ID of the branch to restore the snapshot into. Defaults to the snapshot's source branch (snapshot.source_branch_id); fails if that cannot be determined.

Finalize restore

finalize_restore

booleandefault: false

Set to true to finalize the restore operation immediately. This will complete the restore and move any associated computes to the new branch, similar to the finalizeRestoreBranch operation. Defaults to false to allow previewing the restored snapshot data first.

200

Branch restored from snapshot and its operations.

Depth

default

General error

This endpoint can return the standard Neon API error response.

Response fields

  • message Required. Human-readable error message.
  • code Required. Machine-readable error code.
  • request_id Optional. Request identifier for debugging. You can provide one with the X-Request-ID header.

Retry guidance

If no response is returned, the request may still have reached the server. This is why retry safety depends on the method and status code.

Idempotent methods (GET, HEAD, OPTIONS) are generally safe to retry after a network error or timeout. Non-idempotent methods (POST, PATCH, DELETE, PUT) can change state, so avoid automatic retries unless your workflow can tolerate duplicate effects.

Responses with 423 Locked or 503 Service Unavailable are safe to retry. 423 Locked means the resource is temporarily locked, usually because another operation is in progress.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu