---
title: "POST /v1/{+parent}/databases:clone"
method: POST
path: "/v1/{+parent}/databases:clone"
tags: ["projects"]
---

# POST /v1/{+parent}/databases:clone

`POST /v1/{+parent}/databases:clone`

Creates a new database by cloning an existing one. The new database must be in the same cloud region or multi-region location as the existing database. 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 database. The long-running operation can be used to track the progress of the clone, with the Operation's metadata field type being the CloneDatabaseMetadata. The response type is the Database if the clone was successful. The new database is not readable or writeable until the LRO has completed.

## Path parameters

- `parent` string, required

## Request body

- GoogleFirestoreAdminV1CloneDatabaseRequest — The request message for FirestoreAdmin.CloneDatabase.
  - `pitrSnapshot` GoogleFirestoreAdminV1PitrSnapshot — A consistent snapshot of a database at a specific point in time. A PITR (Point-in-time recovery) snapshot with previous versions of a database's data is available for every minute up to the associated database's data retention period. If the PITR feature is enabled, the retention period is 7 days; otherwise, it is one hour.
    - `database` string — Required. The name of the database that this was a snapshot of. Format: `projects/{project}/databases/{database}`.
    - `databaseUid` string, byte — Output only. Public UUID of the database the snapshot was associated with.
    - `snapshotTime` string, google-datetime — Required. Snapshot time of the database.
  - `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-/ 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.
  - `encryptionConfig` GoogleFirestoreAdminV1EncryptionConfig — Encryption configuration for a new database being created from another source. The source could be a Backup or a PitrSnapshot.
    - `useSourceEncryption` GoogleFirestoreAdminV1SourceEncryptionOptions — The configuration options for using the same encryption method as the source.
    - `googleDefaultEncryption` GoogleFirestoreAdminV1GoogleDefaultEncryptionOptions — The configuration options for using Google default encryption.
    - `customerManagedEncryption` GoogleFirestoreAdminV1CustomerManagedEncryptionOptions — The configuration options for using CMEK (Customer Managed Encryption Key) encryption.
      - `kmsKeyName` string — Required. Only keys in the same location as the database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  - `tags` object — Optional. Immutable. Tags to be bound to the cloned database. The tags should be provided in the format of `tagKeys/{tag_key_id} -> tagValues/{tag_value_id}`.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/firestore.md) · [All operations](https://skmtc.net/google/apis/firestore/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/firestore/versions/11bc07a83431/schema)
