---
title: "Trigger point-in-time recovery"
method: POST
path: "/postgres/{postgresId}/recovery"
tags: ["Postgres"]
---

# Trigger point-in-time recovery

`POST /postgres/{postgresId}/recovery`

Trigger [point-in-time recovery](https://render.com/docs/postgresql-backups) on the Postgres instance with the provided ID.

## Path parameters

- `postgresId` string, required

## Request body

- object
  - `restoreName` string — Name of the new database.
  - `restoreTime` string, date-time, required — The point in time to restore the database to. See `/recovery-info` for restore availability
  - `datadogApiKey` string — Datadog API key to use for monitoring the new database. Defaults to the API key of the original database. Use an empty string to prevent copying of the API key to the new database.
  - `datadogSite` string — Datadog region code to use for monitoring the new database. Defaults to the region code of the original database. Use an empty string to prevent copying of the region code to the new database.
  - `plan` string — The plan to use for the new database. Defaults to the same plan as the original database. Cannot be a lower tier plan than the original database.
  - `environmentId` string — The environment to create the new database in. Defaults to the environment of the original database.

## Response `200`

Recovery initiated

- PostgresDetail
  - `id` string, required
  - `ipAllowList` CidrBlockAndDescription[], required
    - `cidrBlock` string, required
    - `description` string, required — User-provided description of the CIDR block
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `expiresAt` string, date-time — The time at which the database will be expire. Applies to free tier databases only.
  - `dashboardUrl` string, required — The URL to view the Postgres instance in the Render Dashboard
  - `databaseName` string, required
  - `databaseUser` string, required
  - `environmentId` string
  - `highAvailabilityEnabled` boolean, required
  - `maintenance` Maintenance — unresolved $ref
  - `name` string, required
  - `owner` Owner, required
    - `id` string, required
    - `name` string, required
    - `email` string, required
    - `ipAllowList` CidrBlockAndDescription[]
      - `cidrBlock` string, required
      - `description` string, required — User-provided description of the CIDR block
    - `twoFactorAuthEnabled` boolean — Whether two-factor authentication is enabled for the owner. Only present if `type` is `user`.
    - `type` 'user' | 'team', required
  - `plan` Plan, required — unresolved $ref
  - `diskSizeGB` integer
  - `parameterOverrides` PostgresParameterOverrides
  - `primaryPostgresID` string
  - `region` 'frankfurt' | 'oregon' | 'ohio' | 'singapore' | 'virginia', required — Defaults to "oregon"
  - `readReplicas` ReadReplica[], required
    - `id` string, required — The replica instance identifier.
    - `name` string, required — The display name of the replica instance.
    - `parameterOverrides` PostgresParameterOverrides
  - `role` 'primary' | 'replica', required
  - `status` 'creating' | 'available' | 'unavailable' | 'config_restart' | 'suspended' | 'maintenance_scheduled' | 'maintenance_in_progress' | 'recovery_failed' | 'recovery_in_progress' | 'unknown' | 'updating_instance', required
  - `version` '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18', required — The PostgreSQL version
  - `suspended` 'suspended' | 'not_suspended', required
  - `suspenders` SuspenderType[], required
  - `diskAutoscalingEnabled` boolean, required
  - `connectionPool` string, required — What connection pool to use (if any) out of 'pgbouncer' and 'none'

## Other responses

- `400` — The request could not be understood by the server.
- `401` — Authorization information is missing or invalid.
- `403` — You do not have permissions for the requested resource.
- `404` — Unable to find the requested resource.
- `406` — Unable to generate preferred media types as specified by Accept request header.
- `410` — The requested resource is no longer available.
- `429` — Rate limit has been surpassed.
- `500` — An unexpected server error has occurred.
- `503` — Server currently unavailable.

---

[API](https://skmtc.dev/render/apis/render-public-api.md) · [All operations](https://skmtc.dev/render/apis/render-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/render/render-public-api/revisions/80e0ff74d033/schema)
