After you upload a custom image to your account, you can create Droplets from that image as long as they are in the same datacenter. If you’d like to create a Droplet from a custom image in a different region, you need to add your custom image to that region first.
Add a Custom Image to a Region using Automation
    
        
    
    How to Add an Image to a Region Using the DigitalOcean CLI
- Install doctl, the official DigitalOcean CLI.
- Create a personal access token and save it for use with doctl.
- Use the token to grant doctlaccess to your DigitalOcean account.
- Finally, run doctl compute image-action transfer. Basic usage looks like this, but you can read the usage docs for more details:doctl compute image-action transfer <image-id> [flags]
 
doctl compute image-action transfer 386734086 --region nyc3
 
 
    How to Add an Image to a Region Using the DigitalOcean API
- Create a personal access token and save it for use with the API.
- Send a POST request to https://api.digitalocean.com/v2/images/{image_id}/actions.
cURL
    
        
    
Using cURL:
# 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, the official DigitalOcean API client for 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, the official DigitalOcean API client for 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, the official DigitalOcean API client for 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 Custom Image to a Region using the Control Panel
    
        
    
From the Backups & Snapshots section, click the Custom Images tab. From there, open the More menu of the custom image you want to add to a new region and choose Add to region.
 
In the Custom image availability window that opens, click the region or regions you want to add your custom image to.