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