Method: projects.databases.restore
Stay organized with collections
Save and categorize content based on your preferences.
Creates a new database by restoring from an existing backup.
The new database must be in the same cloud region or multi-region location as the existing backup. This behaves similar to FirestoreAdmin.CreateDatabase
except instead of creating a new empty database, a new database is created with the database type, index configuration, and documents from an existing backup.
The long-running operation
can be used to track the progress of the restore, with the Operation's metadata
field type being the RestoreDatabaseMetadata
. The response
type is the Database
if the restore was successful. The new database is not readable or writeable until the LRO has completed.
HTTP request
POST https://firestore.googleapis.com/v1/{parent=projects/*}/databases:restore
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters |
parent |
string
Required. The project to restore the database in. Format is projects/{projectId} .
|
Request body
The request body contains data with the following structure:
JSON representation |
{
"databaseId": string,
"backup": string,
"encryptionConfig": {
object (EncryptionConfig )
},
"tags": {
string: string,
...
}
} |
Fields |
databaseId |
string
Required. The ID to use for the database, which will become the final component of the database's resource name. This database ID must not be associated with an existing database. This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ with first character a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. "(default)" database ID is also valid if the database is Standard edition.
|
backup |
string
Required. Backup to restore from. Must be from the same project as the parent. The restored database will be created in the same location as the source backup. Format is: projects/{projectId}/locations/{location}/backups/{backup}
|
encryptionConfig |
object (EncryptionConfig )
Optional. Encryption configuration for the restored database. If this field is not specified, the restored database will use the same encryption configuration as the backup, namely useSourceEncryption .
|
tags |
map (key: string, value: string)
Optional. Immutable. Tags to be bound to the restored database. The tags should be provided in the format of tagKeys/{tag_key_id} -> tagValues/{tag_value_id} . An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
Response body
If successful, the response body contains an instance of Operation
.
Authorization scopes
Requires one of the following OAuth scopes:
https://www.googleapis.com/auth/datastore
https://www.googleapis.com/auth/cloud-platform
For more information, see the OAuth 2.0 Overview.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[null,null,["Last updated 2025-08-26 UTC."],[],[],null,["# Method: projects.databases.restore\n\nCreates a new database by restoring from an existing backup.\n\nThe new database must be in the same cloud region or multi-region location as the existing backup. This behaves similar to [FirestoreAdmin.CreateDatabase](/docs/firestore/reference/rest/v1/projects.databases/create#google.firestore.admin.v1.FirestoreAdmin.CreateDatabase) except instead of creating a new empty database, a new database is created with the database type, index configuration, and documents from an existing backup.\n\nThe [long-running operation](/docs/firestore/reference/rest/Shared.Types/Operation) can be used to track the progress of the restore, with the Operation's [metadata](/docs/firestore/reference/rest/Shared.Types/Operation#FIELDS.metadata) field type being the [RestoreDatabaseMetadata](/docs/firestore/reference/rest/Shared.Types/RestoreDatabaseMetadata). The [response](/docs/firestore/reference/rest/Shared.Types/Operation#FIELDS.response) type is the [Database](/docs/firestore/reference/rest/v1/projects.databases#Database) if the restore was successful. The new database is not readable or writeable until the LRO has completed.\n\n### HTTP request\n\n`POST https://firestore.googleapis.com/v1/{parent=projects/*}/databases:restore`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------|----------------------------------------------------------------------------------------------|\n| `parent` | `string` Required. The project to restore the database in. Format is `projects/{projectId}`. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"databaseId\": string, \"backup\": string, \"encryptionConfig\": { object (/docs/firestore/reference/rest/v1/EncryptionConfig) }, \"tags\": { string: string, ... } } ``` |\n\n| Fields ||\n|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `databaseId` | `string` Required. The ID to use for the database, which will become the final component of the database's resource name. This database ID must not be associated with an existing database. This value should be 4-63 characters. Valid characters are /\\[a-z\\]\\[0-9\\]-/ with first character a letter and the last a letter or a number. Must not be UUID-like /\\[0-9a-f\\]{8}(-\\[0-9a-f\\]{4}){3}-\\[0-9a-f\\]{12}/. \"(default)\" database ID is also valid. |\n| `backup` | `string` Required. Backup to restore from. Must be from the same project as the parent. The restored database will be created in the same location as the source backup. Format is: `projects/{projectId}/locations/{location}/backups/{backup}` |\n| `encryptionConfig` | `object (`[EncryptionConfig](/docs/firestore/reference/rest/v1/EncryptionConfig)`)` Optional. Encryption configuration for the restored database. If this field is not specified, the restored database will use the same encryption configuration as the backup, namely [useSourceEncryption](/docs/firestore/reference/rest/v1/EncryptionConfig#FIELDS.use_source_encryption). |\n| `tags` | `map (key: string, value: string)` Optional. Immutable. Tags to be bound to the restored database. The tags should be provided in the format of `tagKeys/{tag_key_id} -\u003e tagValues/{tag_value_id}`. An object containing a list of `\"key\": value` pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`. |\n\n### Response body\n\nIf successful, the response body contains an instance of [Operation](/docs/firestore/reference/rest/Shared.Types/Operation).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/datastore`\n- `https://www.googleapis.com/auth/cloud-platform`\n\nFor more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2)."]]