Neon is expanding into a backend: Object Storage, Functions, and AI Gateway now in beta
/APIs & SDKs/Snapshots/Restore snapshot
POST/projects/{project_id}/snapshots/{snapshot_id}/restorebeta

Restore 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.

Markdown for AI context

Quick start

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
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 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. 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.

Name
name
string

A name for the newly restored branch. If omitted, a default name will be generated.

Target branch ID
target_branch_id
string

The 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 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

200

Branch restored from snapshot and its operations.

Depth

Errors

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.

Was this page helpful?

On this page

Copy neon init command