Skip to content
  • Auto
  • Light
  • Dark

Create

Create a New Droplet
gpu_droplets.create(GPUDropletCreateParams**kwargs) -> GPUDropletCreateResponse
post/v2/droplets

To create a new Droplet, send a POST request to /v2/droplets setting the required attributes.

A Droplet will be created using the provided information. The response body will contain a JSON object with a key called droplet. The value will be an object containing the standard attributes for your new Droplet. The response code, 202 Accepted, does not indicate the success or failure of the operation, just that the request has been accepted for processing. The actions returned as part of the response's links object can be used to check the status of the Droplet create event.

Create Multiple Droplets

Creating multiple Droplets is very similar to creating a single Droplet. Instead of sending name as a string, send names as an array of strings. A Droplet will be created for each name you send using the associated information. Up to ten Droplets may be created this way at a time.

Rather than returning a single Droplet, the response body will contain a JSON array with a key called droplets. This will be set to an array of JSON objects, each of which will contain the standard Droplet attributes. The response code, 202 Accepted, does not indicate the success or failure of any operation, just that the request has been accepted for processing. The array of actions returned as part of the response's links object can be used to check the status of each individual Droplet create event.

Parameters
imageunion
Union[str, int]

The image ID of a public or private image or the slug identifier for a public image. This image will be the base image for your Droplet.
Requires image:read scope.

Hide ParametersShow Parameters
DropletSingleCreateImageUnionMember0type
str
DropletSingleCreateImageUnionMember1type
int
namestr

The human-readable string you wish to use when displaying the Droplet name. The name, if set to a domain name managed in the DigitalOcean DNS management system, will configure a PTR record for the Droplet. The name set during creation will also determine the hostname for the Droplet in its internal configuration.

maxLength255
sizestr

The slug identifier for the size that you wish to select for this Droplet.

backup_policyhourliteralplanliteralretention_period_daysintweekdayliteralwindow_length_hoursintDropletBackupPolicyParam
optional

An object specifying the backup policy for the Droplet. If omitted and backups is true, the backup plan will default to daily.

backupsbool
optional

A boolean indicating whether automated backups should be enabled for the Droplet.

ipv6bool
optional

A boolean indicating whether to enable IPv6 on the Droplet.

monitoringbool
optional

A boolean indicating whether to install the DigitalOcean agent for monitoring.

private_networkingbool
optional
deprecated

This parameter has been deprecated. Use vpc_uuid instead to specify a VPC network for the Droplet. If no vpc_uuid is provided, the Droplet will be placed in your account's default VPC for the region.

regionstr
optional

The slug identifier for the region that you wish to deploy the Droplet in. If the specific datacenter is not not important, a slug prefix (e.g. nyc) can be used to deploy the Droplet in any of the that region's locations (nyc1, nyc2, or nyc3). If the region is omitted from the create request completely, the Droplet may deploy in any region.

ssh_keyslist
optional
List[Union[str, int]]

An array containing the IDs or fingerprints of the SSH keys that you wish to embed in the Droplet's root account upon creation. You must add the keys to your team before they can be embedded on a Droplet.
Requires ssh_key:read scope.

Hide ParametersShow Parameters
DropletSingleCreateSSHKeyUnionMember0type
str
DropletSingleCreateSSHKeyUnionMember1type
int
tagslist
optional
Optional[List[str]]

A flat array of tag names as strings to apply to the Droplet after it is created. Tag names can either be existing or new tags.
Requires tag:create scope.

user_datastr
optional

A string containing 'user data' which may be used to configure the Droplet on first boot, often a 'cloud-config' file or Bash script. It must be plain text and may not exceed 64 KiB in size.

volumeslist
optional
List[str]

An array of IDs for block storage volumes that will be attached to the Droplet once created. The volumes must not already be attached to an existing Droplet.
Requires block_storage:read scpoe.

vpc_uuidstr
optional

A string specifying the UUID of the VPC to which the Droplet will be assigned. If excluded, the Droplet will be assigned to your account's default VPC for the region.
Requires vpc:read scope.

with_droplet_agentbool
optional

A boolean indicating whether to install the DigitalOcean agent used for providing access to the Droplet web console in the control panel. By default, the agent is installed on new Droplets but installation errors (i.e. OS not supported) are ignored. To prevent it from being installed, set to false. To make installation errors fatal, explicitly set it to true.

Returns
GPUDropletCreateResponsetype
Hide ParametersShow Parameters
SingleDropletResponseclass
Hide ParametersShow Parameters
dropletidintbackup_idslistcreated_atdatetimediskintfeatureslistimageImagelockedboolmemoryintnamestrnetworksNetworksnext_backup_windowDropletNextBackupWindowregionRegionsizeSizesize_slugstrsnapshot_idsliststatusliteraltagslistvcpusintvolume_idslistdisk_infolistgpu_infoGPUInfokernelKernelvpc_uuidstrDroplet
MultipleDropletResponseclass
Hide ParametersShow Parameters
dropletslist
List[idintbackup_idslistcreated_atdatetimediskintfeatureslistimageImagelockedboolmemoryintnamestrnetworksNetworksnext_backup_windowDropletNextBackupWindowregionRegionsizeSizesize_slugstrsnapshot_idsliststatusliteraltagslistvcpusintvolume_idslistdisk_infolistgpu_infoGPUInfokernelKernelvpc_uuidstrDroplet]
Hide ParametersShow Parameters
idint

A unique identifier for each Droplet instance. This is automatically generated upon Droplet creation.

backup_idslist
List[int]

An array of backup IDs of any backups that have been taken of the Droplet instance. Droplet backups are enabled at the time of the instance creation.
Requires image:read scope.

created_atdatetime

A time value given in ISO8601 combined date and time format that represents when the Droplet was created.

formatdate-time
diskint

The size of the Droplet's disk in gigabytes.

featureslist
List[str]

An array of features enabled on this Droplet.

imageidintcreated_atdatetimedescriptionstrdistributionliteralerror_messagestrmin_disk_sizeintnamestrpublicboolregionslistsize_gigabytesfloatslugstrstatusliteraltagslisttypeliteralImage

The Droplet's image.
Requires image:read scope.

lockedbool

A boolean value indicating whether the Droplet has been locked, preventing actions by users.

memoryint

Memory of the Droplet in megabytes.

multipleOf8
namestr

The human-readable name set for the Droplet instance.

networksv4listv6listNetworks

The details of the network that are configured for the Droplet instance. This is an object that contains keys for IPv4 and IPv6. The value of each of these is an array that contains objects describing an individual IP resource allocated to the Droplet. These will define attributes like the IP address, netmask, and gateway of the specific network depending on the type of network it is.

Hide ParametersShow Parameters
v4list
optional
Optional[List[gatewaystrip_addressstrnetmaskstrtypeliteralNetworkV4]]
Hide ParametersShow Parameters
gatewaystr
optional

The gateway of the specified IPv4 network interface.

For private interfaces, a gateway is not provided. This is denoted by returning nil as its value.

ip_addressstr
optional

The IP address of the IPv4 network interface.

formatipv4
netmaskstr
optional

The netmask of the IPv4 network interface.

formatipv4
typeliteral
optional
Optional[Literal["public", "private"]]

The type of the IPv4 network interface.

Hide ParametersShow Parameters
"public"
"private"
v6list
optional
Optional[List[gatewaystrip_addressstrnetmaskinttypeliteralNetworkV6]]
Hide ParametersShow Parameters
gatewaystr
optional

The gateway of the specified IPv6 network interface.

formatipv6
ip_addressstr
optional

The IP address of the IPv6 network interface.

formatipv6
netmaskint
optional

The netmask of the IPv6 network interface.

typeliteral
optional
Optional[Literal["public"]]

The type of the IPv6 network interface.

Note: IPv6 private networking is not currently supported.

Hide ParametersShow Parameters
"public"
next_backup_windowDropletNextBackupWindow

The details of the Droplet's backups feature, if backups are configured for the Droplet. This object contains keys for the start and end times of the window during which the backup will start.

regionavailableboolfeatureslistnamestrsizeslistslugstrRegion
sizeavailablebooldescriptionstrdiskintmemoryintprice_hourlyfloatprice_monthlyfloatregionslistslugstrtransferfloatvcpusintdisk_infolistgpu_infoGPUInfoSize
size_slugstr

The unique slug identifier for the size of this Droplet.

snapshot_idslist
List[int]

An array of snapshot IDs of any snapshots created from the Droplet instance.
Requires image:read scope.

statusliteral
Literal["new", "active", "off", "archive"]

A status string indicating the state of the Droplet instance. This may be "new", "active", "off", or "archive".

Hide ParametersShow Parameters
"new"
"active"
"off"
"archive"
tagslist
List[str]

An array of Tags the Droplet has been tagged with.
Requires tag:read scope.

vcpusint

The number of virtual CPUs.

volume_idslist
List[str]

A flat array including the unique identifier for each Block Storage volume attached to the Droplet.
Requires block_storage:read scope.

disk_infolist
optional
Optional[List[sizeSizetypeliteralDiskInfo]]

An array of objects containing information about the disks available to the Droplet.

Hide ParametersShow Parameters
sizeamountintunitstrSize
optional
Hide ParametersShow Parameters
amountint
optional

The amount of space allocated to the disk.

unitstr
optional

The unit of measure for the disk size.

typeliteral
optional
Optional[Literal["local", "scratch"]]

The type of disk. All Droplets contain a local disk. Additionally, GPU Droplets can also have a scratch disk for non-persistent data.

Hide ParametersShow Parameters
"local"
"scratch"
gpu_infoGPUInfo
optional

An object containing information about the GPU capabilities of Droplets created with this size.

kernelKernel
optional
deprecated

Note: All Droplets created after March 2017 use internal kernels by default. These Droplets will have this attribute set to null.

The current kernel for Droplets with externally managed kernels. This will initially be set to the kernel of the base image when the Droplet is created.

vpc_uuidstr
optional

A string specifying the UUID of the VPC to which the Droplet is assigned.
Requires vpc:read scope.

from do_gradientai import GradientAI

client = GradientAI()
gpu_droplet = client.gpu_droplets.create(
    image="ubuntu-20-04-x64",
    name="example.com",
    size="s-1vcpu-1gb",
    backups=True,
    ipv6=True,
    monitoring=True,
    region="nyc3",
    ssh_keys=[289794, "3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"],
    tags=["env:prod", "web"],
    user_data="#cloud-config\nruncmd:\n  - touch /test.txt\n",
    vpc_uuid="760e09ef-dc84-11e8-981e-3cfdfeaae000",
)
print(gpu_droplet)
200 Example
{
  "droplet": {
    "id": 3164444,
    "name": "example.com",
    "memory": 1024,
    "vcpus": 1,
    "disk": 25,
    "disk_info": [
      {
        "type": "local",
        "size": {
          "amount": 25,
          "unit": "gib"
        }
      }
    ],
    "locked": false,
    "status": "new",
    "kernel": null,
    "created_at": "2020-07-21T18:37:44Z",
    "features": [
      "backups",
      "private_networking",
      "ipv6",
      "monitoring"
    ],
    "backup_ids": [],
    "next_backup_window": null,
    "snapshot_ids": [],
    "image": {
      "id": 63663980,
      "name": "20.04 (LTS) x64",
      "distribution": "Ubuntu",
      "slug": "ubuntu-20-04-x64",
      "public": true,
      "regions": [
        "ams2",
        "ams3",
        "blr1",
        "fra1",
        "lon1",
        "nyc1",
        "nyc2",
        "nyc3",
        "sfo1",
        "sfo2",
        "sfo3",
        "sgp1",
        "tor1"
      ],
      "created_at": "2020-05-15T05:47:50Z",
      "type": "snapshot",
      "min_disk_size": 20,
      "size_gigabytes": 2.36,
      "description": "",
      "tags": [],
      "status": "available",
      "error_message": ""
    },
    "volume_ids": [],
    "size": {
      "slug": "s-1vcpu-1gb",
      "memory": 1024,
      "vcpus": 1,
      "disk": 25,
      "transfer": 1,
      "price_monthly": 5,
      "price_hourly": 0.00743999984115362,
      "regions": [
        "ams2",
        "ams3",
        "blr1",
        "fra1",
        "lon1",
        "nyc1",
        "nyc2",
        "nyc3",
        "sfo1",
        "sfo2",
        "sfo3",
        "sgp1",
        "tor1"
      ],
      "available": true,
      "description": "Basic"
    },
    "size_slug": "s-1vcpu-1gb",
    "networks": {
      "v4": [],
      "v6": []
    },
    "region": {
      "name": "New York 3",
      "slug": "nyc3",
      "features": [
        "private_networking",
        "backups",
        "ipv6",
        "metadata",
        "install_agent",
        "storage",
        "image_transfer"
      ],
      "available": true,
      "sizes": [
        "s-1vcpu-1gb",
        "s-1vcpu-2gb",
        "s-1vcpu-3gb",
        "s-2vcpu-2gb",
        "s-3vcpu-1gb",
        "s-2vcpu-4gb",
        "s-4vcpu-8gb",
        "s-6vcpu-16gb",
        "s-8vcpu-32gb",
        "s-12vcpu-48gb",
        "s-16vcpu-64gb",
        "s-20vcpu-96gb",
        "s-24vcpu-128gb",
        "s-32vcpu-192g"
      ]
    },
    "tags": [
      "web",
      "env:prod"
    ]
  },
  "links": {
    "actions": [
      {
        "id": 7515,
        "rel": "create",
        "href": "https://api.digitalocean.com/v2/actions/7515"
      }
    ]
  }
}