Short answer

Neon's instant restore returns a branch to any timestamp inside the history window. There's no pg_restore, no waiting for a backup to download, no replaying WAL by hand. The window is 6 hours on the Free plan, up to 7 days on Launch, and up to 30 days on Scale.

How it works

A traditional restore copies data from a backup file. For a 200 GB database, that can take hours, and you typically restore to a new instance, then swap connection strings.

Neon's storage already keeps the change history. Restoring to a timestamp is a metadata operation: the branch is reset to point at the right state, and writes resume from there. Two ways to do it:

Restore the branch in place.

neon branches restore main ^self@2026-04-25T14:32:00Z

The branch keeps its name and connection string. Any writes made after the target timestamp are discarded.

Branch from a timestamp.

neon branches create --name pre-incident \
  --parent 2026-04-25T14:32:00Z

This gives you a separate branch at the pre-bug state. Useful when you want to inspect the historical data without touching production.

History window per plan

PlanHistory windowCost
Free6 hours, capped at 1 GB of changesIncluded
LaunchUp to 7 days$0.20/GB-month
ScaleUp to 30 days$0.20/GB-month

You only pay for history on root branches; child branches don't add to the cost. See history window for how to configure it and reduce costs by shortening the window.

Restore in place is destructive

A restore in place drops writes that happened after the target timestamp. If you might need those rows for forensics or partial recovery, branch to a new name from the timestamp first, then merge what you need back.

What this replaces

Without instant restore, your options are: a daily pg_dump (you lose any data after the snapshot), continuous WAL archiving with manual point-in-time recovery (slow, error-prone), or a managed provider's PITR feature (usually requires a separate restore target). Neon collapses these into a single API call against the existing branch.

How other Postgres providers restore

ProviderRestore windowRestores toCost
Neon6 hours (Free), up to 30 days (Scale)Same branch (in place) or new branch$0.20/GB-month on paid plans
Amazon RDS for PostgreSQL0–35 daysNew DB instanceBackup storage above DB size is billed separately
Aurora PostgreSQLUp to 35 daysNew clusterBackup storage above cluster size is billed separately
Supabase7 days (Pro daily), or PITR add-on up to 28 daysSame project (in place)Daily included on Pro; PITR add-on from $100/mo

Neon's restore is an in-place metadata operation, so the connection string doesn't change. If you'd rather inspect history without touching the branch, create a new branch from the timestamp instead.

Try instant restore

Set up a Neon project and restore to any point in seconds.