How can I perform Add to Region and Restore Droplet actions on a backup or snapshot?

November 6, 2019 234 views
DigitalOcean API and CLI (doctl)

The GUI offers “Add to Region” and “Restore Droplet” for a snapshot. How can I perform those actions on a backup or snapshot through the API?

1 Answer

After you take a snapshot of a Droplet, you can find the ID of that snapshot via the API by querying the /v2/images?private=true endpoint.

curl -X GET -H "Content-Type: application/json" \
   -H "Authorization: Bearer $DO_TOKEN" \
   "https://api.digitalocean.com/v2/images?private=true" 

You can also use doctl, the DigitalOcean command line client, to acomplish this:

doctl compute image list-user

Once you have found the ID of your snapshot, you can make a POST to the /v2/droplets/$DROPLET_ID/actions endpoint to restore the snapshot to an existing Droplet:

curl -X POST -H "Content-Type: application/json" \
    -H "Authorization: Bearer $DO_TOKEN" \
    -d '{"type":"restore", "image": $SNAPSHOT_ID }' \
    "https://api.digitalocean.com/v2/droplets/$DROPLET_ID/actions" 

Or with doctl:

doctl compute droplet-action restore $DROPLET_ID --image-id $SNAPSHOT_ID

You can also add snapshots to additional regions with the API:

curl -X POST -H "Content-Type: application/json" \
    -H "Authorization: Bearer $DO_TOKEN" \
    -d '{"type":"transfer","region":"nyc2"}' \
    "https://api.digitalocean.com/v2/images/$SNAPSHOT_ID/actions" 

And with doctl:

doctl compute image-action transfer $SNAPSHOT_ID --region nyc2
Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!