/projects/{project_id}/snapshots/{snapshot_id}/restorebetaRestore snapshot
Restores the specified snapshot to a new branch, and optionally finalizes the restore operation to replace the original branch.
Note: This endpoint is currently in Beta.
Quick start
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.
import { createNeonClient, raw } from '@neon/sdk';
const neon = createNeonClient({ apiKey: process.env.NEON_API_KEY });
const { data } = await raw.restoreSnapshot({
client: neon.client,
path: {
project_id: process.env.PROJECT_ID,
snapshot_id: process.env.SNAPSHOT_ID
}
});Parameters
project_idThe Neon project ID
snapshot_idThe snapshot ID
nameDEPRECATED. Use the name field in the request body instead.
A name for the newly restored branch. If omitted, a default name will be generated.
Request body
No field is required. Send an empty body to use sensible defaults.
nameA name for the newly restored branch. If omitted, a default name will be generated.
target_branch_idThe ID of the branch to restore the snapshot into.
If not specified, the branch from which the snapshot was originally
created (snapshot.source_branch_id) will be used.
finalize_restoreSet 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
200Branch restored from snapshot and its operations.
Errors
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.








