How to create an Image that works with API to create a new Droplet

March 26, 2018 297 views
API Ubuntu 16.04

I created a Snapshot of a Droplet thinking that it would be the Image I can use in the API to create a new Droplet, but this does not seem to be the case.

So my question is, how do I create an Image I can use to create a Droplet from the API.

If I try to use the Snapshot it gives me this error:

{"id":"unprocessable_entity","message":"You specified an invalid image for Droplet creation."}

The snapshot exists on the same region as where I am trying to create the new Droplet.

3 Answers
asb MOD March 26, 2018
Accepted Answer

You should be able to create a new Droplet via the API using a Snapshot as the base image. A minimal example would look like:

curl -X POST -H "Content-Type: application/json" \
    -H "Authorization: Bearer $DO_TOKEN" \
    -d '{"name":"example.com","region":"nyc3","size":"s-1vcpu-1gb","image":123456}' \ 
    "https://api.digitalocean.com/v2/droplets" 

One thing that sometimes trips people up is that the Snapshot's unique ID, not its name, must be used in for the image attribute. You can find that ID by querying the API or from the command line:

  • doctl compute image list-user

If you're still running into problems, can you share a snippet of the code you are using to create the Droplet?

Thanks for the assistance. The strange thing is if I query the API for a Snapshot I get no results

{"snapshots":[],"links":{},"meta":{"total":0}}

https://api.digitalocean.com/v2/snapshots

But under my profile I definitely have a Snapshot, so I am a bit confused.

Where do I get the command line? It is not on a droplet console right?

I made a mistake in my request to this API. Thanks for the help.

Have another answer? Share your knowledge.