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.
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
neon snapshots restore <snapshot_id>Console path: Projects → Backup & restore
Parameters
Section titled “Parameters”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.
Request body
Section titled “Request body”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.
Response
Section titled “Response”200
Branch restored from snapshot and its operations.
Depth
Errors
Section titled “Errors”default
General error
This endpoint can return the standard Neon API error response.
Response fields
messageRequired. Human-readable error message.codeRequired. Machine-readable error code.request_idOptional. Request identifier for debugging. You can provide one with theX-Request-IDheader.
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.