# Restore database (destructive)

**POST** `/v1/databases/{targetDatabaseId}/restore`

⚠️ **Destructive operation** — this immediately and irreversibly overwrites all data in the target database with the contents of the specified backup. Any data written since the backup was taken will be lost. Ensure you have a recent backup of the target database before proceeding.

Replaces the data in an existing database from a backup. Connections and credentials are preserved — only the data layer is replaced.

Base URL: `https://api.prisma.io`

Tags: `Databases`

## Authorization

Any ONE of the following options authorizes this operation; every scheme listed within an option is required together.

| Option | Scheme | Type | Sent as | Scopes |
| --- | --- | --- | --- | --- |
| Option 1 | `OAuth2` | `oauth2` | `Authorization: Bearer <access token>` | `offline_access`, `workspace:admin` |
| Option 2 | `Bearer` | `http` | `Authorization: Bearer <token>` (JWT) | — |

### OAuth 2.0 flows

- **OAuth2 · authorizationCode**
  - Authorization URL: `https://auth.prisma.io/authorize`
  - Token URL: `https://auth.prisma.io/token`
  - Refresh URL: `https://auth.prisma.io/token`
  - Scope `offline_access` — Offline access
  - Scope `workspace:admin` — Full access to workspace resources

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `targetDatabaseId` | `string` | Yes | — |

## Request body

Optional. Media type: `application/json`

### Example request body

```json
{
  "source": {
    "backupId": "string",
    "databaseId": "string",
    "type": "backup"
  }
}
```

## Responses

| Status | Description | Media type |
| --- | --- | --- |
| `200` | Database restore initiated. The database status will be "recovering" until the restore completes. | `application/json` |
| `401` | Missing or invalid authorization token. | `application/json` |
| `404` | Target database, source database, or backup not found. | `application/json` |
| `409` | Target database is currently provisioning or recovering and cannot be restored. | `application/json` |
| `422` | Invalid source type or backup not usable. | `application/json` |

### Example response: 200 — Database restore initiated. The database status will be "recovering" until the restore completes.

```json
{
  "data": {
    "branchId": "string",
    "connections": [
      {
        "createdAt": "2026-06-09T00:00:00Z",
        "database": {
          "id": "string",
          "name": "string",
          "url": "https://example.com"
        },
        "directConnection": {
          "host": "string",
          "pass": "string",
          "user": "string"
        },
        "endpoints": {
          "accelerate": {
            "host": "string",
            "port": 0
          },
          "direct": {
            "host": "string",
            "port": 0
          },
          "pooled": {
            "host": "string",
            "port": 0
          }
        },
        "id": "string",
        "kind": "accelerate",
        "name": "string",
        "type": "connection",
        "url": "https://example.com"
      }
    ],
    "createdAt": "2026-06-09T00:00:00Z",
    "defaultConnectionId": "string",
    "id": "string",
    "isDefault": true,
    "logicalId": "string",
    "name": "string",
    "project": {
      "id": "string",
      "name": "string",
      "url": "https://example.com"
    },
    "region": {
      "id": "string",
      "name": "string"
    },
    "source": {
      "backupId": "string",
      "databaseId": "string",
      "type": "backup"
    },
    "status": "failure",
    "type": "database",
    "url": "https://example.com"
  }
}
```

### Example response: 401 — Missing or invalid authorization token.

```json
{
  "error": {
    "code": "string",
    "hint": "string",
    "message": "string"
  }
}
```

### Example response: 404 — Target database, source database, or backup not found.

```json
{
  "error": {
    "code": "string",
    "hint": "string",
    "message": "string"
  }
}
```

### Example response: 409 — Target database is currently provisioning or recovering and cannot be restored.

```json
{
  "error": {
    "code": "string",
    "hint": "string",
    "message": "string"
  }
}
```

### Example response: 422 — Invalid source type or backup not usable.

```json
{
  "error": {
    "code": "string",
    "hint": "string",
    "message": "string"
  }
}
```

## Related pages

- [[Experimental]](./tags/experimental.md)
- [Acquire Alchemy deploy lease](./postv1projectsbyprojectidbranchesbybranchidalchemy-statelease.md)
- [Agents](./tags/agents.md)
- [Alchemy state store version](./getv1projectsbyprojectidbranchesbybranchidalchemy-stateversion.md)
- [Buckets](./tags/buckets.md)
- [Connections](./tags/connections.md)
- [Create a branch](./postv1projectsbyprojectidbranches.md)
- [Create a custom domain](./postv1appsbyappiddomains.md)
- [Create a custom domain](./postv1servicesbyserviceiddomains.md)
- [Create a workspace](./postv1workspaces.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
