# How to Add Droplet Snapshots to Other Regions Snapshots are on-demand disk images of DigitalOcean Droplets and volumes saved to your account. Use them to create new Droplets and volumes with the same contents. By default, a Droplet snapshot is only available in the region where it was created. If you want to use a snapshot to create Droplets in other regions, you need to add the snapshot to those regions first. It doesn’t cost more to add a snapshot to more regions. You cannot transfer volume snapshots to other regions. As an alternative, you can use you can use tools like [SnapShooter](https://docs.digitalocean.com/products/snapshooter/index.html.md), [rsync](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps) or [SFTP](https://www.digitalocean.com/community/tutorials/how-to-use-filezilla-to-transfer-and-manage-files-securely-on-your-vps) to transfer the data to a new volume created in the target region. ## Add a Droplet Snapshot to Other Regions using Automation ## How to Add an Image to a Region Using the DigitalOcean CLI 1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI. 2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`. 3. Use the token to grant `doctl` access to your DigitalOcean account. ```shell doctl auth init ``` 4. Finally, run `doctl compute image-action transfer`. Basic usage looks like this, but you can [read the usage docs](https://docs.digitalocean.com/reference/doctl/reference/compute/image-action/transfer/index.html.md) for more details: ```shell doctl compute image-action transfer [flags] ``` The following example transfers an image with the ID 386734086 to the region with the slug nyc3: ```shell doctl compute image-action transfer 386734086 --region nyc3 ``` ## How to Add an Image to a Region Using the DigitalOcean API 1. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with the API. 2. Send a POST request to [`https://api.digitalocean.com/v2/images/{image_id}/actions`](https://docs.digitalocean.com/reference/api/digitalocean//index.html.md#operation/imageActions_post). ### cURL Using cURL: ```shell # Transfer an Existing Image curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \ -d '{"type":"transfer","region":"nyc2"}' \ "https://api.digitalocean.com/v2/images/7938269/actions" # Convert an Image into a Snapshot curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \ -d '{"type":"convert"}' \ "https://api.digitalocean.com/v2/images/7938291/actions" ``` ### Go Using [Godo](https://github.com/digitalocean/godo), the official DigitalOcean API client for Go: ```go import ( "context" "os" "github.com/digitalocean/godo" ) func main() { token := os.Getenv("DIGITALOCEAN_TOKEN") client := godo.NewFromToken(token) ctx := context.TODO() // Transfer an existing image transferRequest := &godo.ActionRequest{ "type": "transfer", "region": "nyc2", } # Transfer an Image transfer, _, err := client.ImageActions.Transfer(ctx, 7938269, transferRequest) # Convert an Image to a Snapshot # client.image_actions.convert(image_id: 7938269) } ``` ### Ruby Using [DropletKit](https://github.com/digitalocean/droplet_kit), the official DigitalOcean API client for Ruby: ```ruby require 'droplet_kit' token = ENV['DIGITALOCEAN_TOKEN'] client = DropletKit::Client.new(access_token: token) # Transfer an Image client.image_actions.transfer(image_id: 7938269, region: 'nyc2') # Convert an Image to a Snapshot # client.image_actions.convert(image_id: 7938269) ``` ### Python Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python: ```python import os from pydo import Client client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN")) req = { "type": "convert" } resp = client.image_actions.post(image_id=342341, body=req) ``` ## Add a Droplet Snapshot to Other Regions using the Control Panel To add a Droplet snapshot to another region, click the source Droplet’s name. On the Droplet’s detail page, click **Snapshots** in the left menu. Open the snapshot’s **More** menu and click **Add to region** to open the **Snapshot availability** window. Click each region you want to make the snapshot available in. A spinner displays as the snapshot image is added, which may take several minutes. When the snapshot becomes available in a region, the spinner stops and the region is no longer selectable. Once the snapshot is added to the new region, you can [use it to create new Droplets](https://docs.digitalocean.com/products/snapshots/how-to/create-and-restore-droplets/index.html.md).