API Release Notes

May 2023

May 5

  • Released v1.94.0 of doctl, the official DigitalOcean CLI. This release updates the doctl auth init prompt and deprecates the --algorithm flag for load balancer sub-commands.

May 4

  • Fedora 38 (fedora-38-x64) base image is now available in the control panel and via the API.

January 2023

January 6

  • Released v1.92.0 of doctl, the official DigitalOcean CLI. This release updates the doctl auth init prompt and deprecates the --algorithm flag for load balancer sub-commands.

January 5

  • The Fedora 35 distribution has reached end of life and is deprecated as of 6 January 2023:

    The image will be removed from the control panel starting on 6 January 2023 but will remain accessible for Droplet creation via the API for 30 days after the initial deprecation. If you need to use Fedora 35 after the image has been fully deprecated, you can create Droplets from a snapshot of a Droplet with that version or from a custom image.

December 2022

December 16

  • Released v1.91.0 of doctl, the official DigitalOcean CLI. This release adds support for creating and updating firewall rules for load balancers.

December 15

  • RancherOS images are no longer available for creating new Droplets in the control panel and API. Per our image deprecation policy notice was given 30 days ago via email. Existing RancherOS Droplets will continue to function normally.

December 12

  • Released v1.89.0 of doctl, the official DigitalOcean CLI. This release adds support for creating serverless namespaces in the syd1 region and creating monitoring alert policies for load balancer metrics.

November 2022

November 22

  • Released v1.88.0 of doctl, the official DigitalOcean CLI. This release adds a flag to the load balancer create command that allows you to configure its HTTP idle timeout.

November 16

  • Released v1.87.0 of doctl, the official DigitalOcean CLI. This release promotes the option to enable high availability on existing Kubernetes clusters to General Availability. It also adds a flag that allows you to add a load balancer to a specified project upon its creation.

  • The Fedora 37 (fedora-37-x64) base image is now available in the control panel and via the API.

November 15

  • Released v1.86.0 of doctl, the official DigitalOcean CLI. This release includes new doctl apps list-buildpacks and doctl apps upgrade-buildpack subcommands allowing you to manually upgrade an app’s buildpacks to their latest major versions.

October 2022

October 24

  • Ubuntu 22.10 (ubuntu-22-10-x64) base image is now available in the control panel and via the API.

October 18

  • Released v1.84.0 of doctl, the official DigitalOcean CLI. This release adds a --wait flag to the doctl database create subcommand.

October 7

  • Released v1.83.0 of doctl, the official DigitalOcean CLI. This release adds updated confirmation dialogs and a --wait flag to the doctl compute load-balancer create subcommand.

September 2022

September 28

  • Released v1.82.0 of doctl, the official DigitalOcean CLI. This release upgrades godo to v1.86.0 and adds support for building App Platform apps locally.

September 20

  • Released v1.80.0 of doctl, the official DigitalOcean CLI. This release adds support for creating and managing multiple namespaces for serverless functions.

  • Released v1.81.0 of doctl, the official DigitalOcean CLI. This release adds two new pieces of functionality. When creating a reserved IP, you can now specify the project it should be placed in. It also makes the --region flag an optional argument for the compute droplet create sub-command.

  • When you create a Droplet using the API (POST /v2/droplets), you can now specify a region (like NYC) instead of a specific datacenter (like NYC3). The API then creates your Droplet in any available datacenter within your specified region. For example, if you want to create a Droplet in San Francisco, you can use the region sfo to guarantee that the Droplet will be in SFO1, SFO2, or SFO3. Additionally, you can omit the region entirely (or set it to an empty string) to create a Droplet in any available region.

September 9

  • Rocky 9 (rockylinux-9-x64) base image is now available in the control panel and via the API.

August 2022

August 15

  • Released v1.79.0 of doctl, the official DigitalOcean CLI. This release adds several databases options sub-commands you can use to look up create-time options for database clusters, such as supported engines and versions.

August 10

  • The following distributions have reached end of life and are deprecated as of 10 August 2022:

    • Debian 9
    • Ubuntu 21.10

    These images will be removed from the control panel starting on 10 August 2022 but will remain accessible for Droplet creation via the API for 30 days after the initial deprecation. If you need to use these distribution versions after the images have been fully deprecated, you can create Droplets from a snapshot of a Droplet with that version or from a custom image.

August 8

  • Rocky 8.6 (rockylinux-8-x64) base image is now available in the control panel and via the API.

July 2022

July 12

  • The DigitalOcean API now supports listing Droplets by name by using the name query parameter, as in GET /v2/droplets?name="your_droplet_name". Learn more in the API documentation.

July 7

  • Fedora 34 has reached its end of life. Per our image deprecation policy, you can now only deploy the Fedora 34 image via the API. We will remove the Fedora 34 image from the platform on 7 August 2022.

June 2022

June 30

  • Released v1.78.0 of doctl, the official DigitalOcean CLI. This release renames the sandbox commands to serverless. Aliases are provided for backwards compatibility. Additionally, the output of the account get command now includes the name of the active team.

June 27

  • In order to improve security, DigitalOcean no longer accepts TLS 1.0 and TLS 1.1 connections. This includes connections to www.digitalocean.com, cloud.digitalocean.com, and api.digitalocean.com.

June 16

  • Released v1.77.0 of doctl, the official DigitalOcean CLI. This release deprecates the floating-ip commands in favor of the new reserved-ip ones.

June 6

  • When creating a Droplet via the API, we now release the Droplet’s IP address when it is in the active state, instead of the new state.

May 2022

May 23

  • Released v1.76.0 of doctl, the official DigitalOcean CLI. This release adds support for our new serverless Functions product and updates godo to support new App Platform features.

May 10

  • Released v1.75.0 of doctl, the official DigitalOcean CLI. This release contains fixes and improvements for a beta product. If you are not a member of the beta group, the new features will not be available to you at this time.

May 3

  • Released v1.74.0 of doctl, the official DigitalOcean CLI. This release introduces new functionality for a beta product. If you are not a member of the beta group, the new features will not be available to you at this time.

April 2022

April 25

  • Ubuntu 22.04 LTS (ubuntu-22-04-x64) base image is now available in the control panel and via the API.

March 2022

March 31

  • Released v1.73.0 of doctl, the official DigitalOcean CLI. This release updates godo to support new App Platform features.

March 29

  • DigitalOcean API access tokens now begin with an identifiable prefix in order to distinguish them from other similar tokens. Tokens now use the following prefixes:

    • dop_v1_ for personal access tokens generated in the control panel
    • doo_v1_ for tokens generated by application using the OAuth flow
    • dor_v1_ for OAuth refresh tokens

  • v2.19.0 of the DigitalOcean Terraform Provider is now available. This release adds custom region support of the digitalocean_container_registry resource.

March 28

  • Released v1.72.0 of doctl, the official DigitalOcean CLI. This release introduces new doctl compute tag apply and doctl compute tag remove commands that support using tags with multiple resources in a single operation.

March 22

  • Centos Stream 9 (centos-stream-9-x64) base image is now available in the control panel and via the API.

March 17

  • The DigitalOcean OAuth API has been updated to include additional information when users authorize an application under a team context. The JSON bodies for both the access grant and refresh grant responses will now include team_uuid and team_name attributes inside of the info object.

March 15

  • Released v1.71.0 of doctl, the official DigitalOcean CLI. This release adds regions support to Container Registry commands including the introduction of the new doctl registry options available-regions command.

March 8

  • v2.18.0 of the DigitalOcean Terraform Provider is now available. This release adds a new digitalocean_spaces_bucket_policy resource as well as support for configuring log destinations and alert policies in the digitalocean_app resource.

March 4

  • You can now configure your MySQL, PostgreSQL, and Redis Managed Databases by making a PATCH request to /v2/databases/{database_cluster_uuid}/config. For example:

    {
      "config": {
        "sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES",
        "sql_require_primary_key": true
      }
    }
    

    For more details, see the full reference documentation for the managed databases API.

February 2022

February 9

  • You can now create personal access tokens with an expiry interval. After the interval passes, the token can no longer authenticate you to the API and it disappears from your account. To create tokens with expiry intervals, see How to Create a Personal Access Token.

January 2022

January 27

  • Released v1.70.0 of doctl, the official DigitalOcean CLI. This release adds support for App Platform features, such as AppDomainSpec.Certificate, MinimumTLSVersion, appServiceSpecHealthCheck.Port and more.

January 18

  • The following distributions have reached end of life and are now deprecated as of 18 January 2022:

    • FreeBSD 11.4 zfs
    • FreeBSD 11.4 ufs
    • Fedora 33
    • CentOS 8
    • Ubuntu 21.04

    These images will be removed from the control panel starting on 18 January 2022 but will remain accessible for Droplet creation via the API for 30 days after the initial deprecation. If you need to use these distribution versions after the images have been fully deprecated, you can create Droplets from a snapshot of a Droplet with that version or from a custom image.

January 14

  • Released v1.69.0 of doctl, the official DigitalOcean CLI. This release contains a number of bug fixes and adds support to the kubernetes cluster kubeconfig save sub-command for setting an alias for a cluster’s context name.

  • v2.17.0 of the DigitalOcean Terraform Provider is now available. This release adds support for:

    • Fetching load balancer resources by ID in a datasource.
    • Updating the name and description for default VPC networks.

    It also includes bug fixes.

December 2021

December 8

  • Rocky Linux 8.5 x64 (rockylinux-8-x64) base image is now available in the control panel and via the API.

December 7

  • Released v1.68.0 of doctl, the official DigitalOcean CLI. This release contains improvements to the registry subcommands including: revoking credentials on logout and a new list-manifests subcommand.

November 2021

November 10

  • Released v1.67.0 of doctl, the official DigitalOcean CLI. This release updates godo to support new App Platform features.

November 9

  • Fedora 35 base image is now available in the control panel and via the API.

November 8

  • v2.16.0 of the DigitalOcean Terraform Provider is now available. This release adds support for:

    • Scaling load balancers using the size_unit field.
    • source_kubernetes_ids and destination_kubernetes_ids attributes for Kubernetes firewall rules.

    It also includes bug fixes.

November 1

  • Released v1.66.0 of doctl, the official DigitalOcean CLI. This release includes a number of new features including support for PowerShell completion and a new --upsert flag for the doctl apps create command that updates the app in the given app spec if it already exists.

  • v2.15.0 of the DigitalOcean Terraform Provider is now available. This release adds support for:

    • Disabling automatic DNS record creation when using Let’s Encrypting certificates.
    • Revoking OAuth tokens when credentials are destroyed.

    It also includes bug fixes.

October 2021

October 25

  • Ubuntu 20.10 has reached its end of life. Per our image deprecation policy, you can now only deploy the Ubuntu 20.10 image via the API. We will remove the Ubuntu 20.10 image from the platform on 25 November 2021.

  • Ubuntu 21.10 base image is now available in the control panel and via the API.

October 12

  • Released v1.65.0 of doctl, the official DigitalOcean CLI. This release includes a number of new features:

    • The --ha flag was added to the kubernetes cluster create sub-command to optionally create a cluster configured with a highly-available control plane. This feature is in early availability
    • The kubernetes cluster sub-commands now include a “Support Features” field when displaying version options
    • The --disable-lets-encrypt-dns-records flag was added to the compute load-balancer create sub-command to optionally disable automatic DNS record creation for Let’s Encrypt certificates that are added to the load balancer

October 7

  • v2.14.0 of the DigitalOcean Terraform Provider is now available. This release adds support for the high availability (ha) attribute when creating Kubernetes clusters.

October 5

  • v2.13.0 of the DigitalOcean Terraform Provider is now available. This release adds support for retrieving the CA certificate for database clusters. It also includes bug fixes.

September 2021

September 27

  • Debian 11.0 base image is now available in the control panel and via the API.

September 24

  • v2.12.1 of the DigitalOcean Terraform Provider is now available. This release adds CORS support for apps on App Platform and the ability to create monitoring alerts.

August 2021

August 20

  • Released v1.64.0 of doctl, the official DigitalOcean CLI. This release includes support for managing App Platform alerts.

August 9

  • Released v1.63.0 of doctl, the official DigitalOcean CLI. This release includes a number of new features:

    • The database firewall sub-commands now support apps as trusted sources
    • New monitoring alert sub-commands for creating and managing alert policies
    • The --droplet-agent flag was added to the compute droplet create sub-command to optionally disable installing the agent for the Droplet web console

August 2

  • When updating an SSH key’s name using the API, if the request body does not contain a new name, the SSH key’s name will now retain its previous value. Previously, if the request body did not contain a new name, the SSH key’s name would update to a default value of either the comment field or the first 23 characters from the public key.

July 2021

July 9

  • Released v1.62.0 of doctl, the official DigitalOcean CLI. This release fixes a handful of bugs and introduces new flags on existing commands:

    • The apps logs command now supports tailing live logs with the --tail flag. This lets application owners select the most recent logs from their applications
    • The --wait flag was added to apps create and apps update to block these commands until an application is fully created or updated

June 2021

June 29

  • v2.10.0 of the DigitalOcean Terraform Provider is now available. This release adds support for Kubernetes maintenance policies.

  • v2.10.1 of the DigitalOcean Terraform Provider is now available. This release adds bug fixes and other improvements.

June 28

  • The Ubuntu 16.04 and Fedora 32 images have been removed from the API.

May 2021

May 27

  • v2.7.0 of the DigitalOcean Terraform Provider is now available. This release adds support for distributing images to multiple regions.

May 26

  • Fedora 32 has reached its end of life. Per our image deprecation policy, you can now only deploy the Fedora 32 image via the API. We will remove the Fedora 32 image from the platform on 26 June 2021.

  • Ubuntu 16.04 has reached its end of life. Per our image deprecation policy, you can now only deploy the Ubuntu 16.04 image via the API. We will remove the Ubuntu 16.04 image from the platform on 26 June 2021.

May 6

  • Released v1.60.0 of doctl, the official DigitalOcean CLI. This release introduces an auth remove sub-command to simplify removing an auth context when managing multiple accounts. The databases user reset sub-command now supports resetting the user password for all database engine types.

May 5

  • We have updated the Floating IP API responses to better align with our newer API models. The droplet and region fields now use the same response models used in the /v2/droplets and /v2/regions endpoints. Specifically:

    • The private_networking feature is now displayed under the features field under droplet instead of the features field under region.
    • The vpc_uuid field now populates with the correct values.
    • The Droplet’s type displays base when the Droplet uses a base image (i.e. Ubuntu, CentOS).
    • The Droplet’s networks field now includes private and floating IP addresses, if applicable.

April 2021

April 27

  • Fedora 34 base image is now available in the control panel and via the API.

April 26

  • Ubuntu 21.04 base image is now available in the control panel and via the API.

April 13

  • Released v1.59.0 of doctl, the official DigitalOcean CLI. This release includes a new apps propose sub-command and improvements to the apps spec validate sub-command.

March 2021

March 29

  • Released v1.58.0 of doctl, the official DigitalOcean CLI. This release adds a --wait flag to the apps create-deployment command which blocks until the deployment is complete. By default, the registry kubernetes-manifest now generates a manifest that applies the secret to all the namespaces in the Kubernetes cluster using the DOSecret operator.

  • v2.7.0 of the DigitalOcean Terraform Provider is now available. This release adds support for Kubernetes node pool taints and resizing load balancers.

March 10

  • v2.6.0 of the DigitalOcean Terraform Provider is now available. This release enables surge upgrades for Kubernetes clusters by default and adds a digitalocean_firewall data source.

February 2021

February 22

  • Released v1.57.0 of doctl, the official DigitalOcean CLI. This release enables surge upgrades by default for newly created Kubernetes clusters and important bugfixes for App Platform logs and Kubernetes cascading deletes.

February 11

  • FreeBSD 12.1 has reached its end of life. Per our image deprecation policy, you can now only deploy the FreeBSD UFS and ZFS image via the API. We will remove the images from the platform on 11 March 2021.

February 10

  • Released v1.56.0 of doctl, the official DigitalOcean CLI. This release includes support for database firewalls management, Kubernetes cascading deletes, and installing Kubernetes 1-Clicks to existing clusters.

February 3

  • v2.5.0 of the DigitalOcean Terraform Provider is now available. This release adds a number of improvements to the digitalocean_app resource including: support for images as a component source, support for job components, support for internal_ports for services, and support for wildcard domains.

January 2021

January 21

  • Released v1.55.0 of doctl, the official DigitalOcean CLI. This release adds Docker Hub and GitLab support to App Platform’s create and update commands.

January 19

  • v2.4.0 of the DigitalOcean Terraform Provider is now available. This release includes support for deployments from GitLab and app-wide environment variables for the digitalocean_app resource, bug fixes, and other improvements.

December 2020

December 7

  • CentOS 6 has reached its end of life. Per our image deprecation policy, you can now only deploy the CentOS 6 image via the API. We will remove CentOS 6 from the platform on 7 January 2021.

  • Load balancers now come in small, medium, and large sizes. The larger the load balancer, the more simultaneous connections and requests per second it can manage. Existing load balancers are now considered “small” load balancers and are unaffected by this change.

    You can specify the size of a load balancer during its creation using the size field. The available size values are lb-small, lb-medium, or lb-large.

    Example request body:

    {
      "name": "example-lb-01",
      "region": "nyc3",
      "size": "lb-small",
      "forwarding_rules": [
        {
          "entry_protocol": "https",
          "entry_port": 444,
          "target_protocol": "https",
          "target_port": 443,
          "tls_passthrough": true
        }
      ],
      "health_check": {
        "protocol": "http",
        "port": 80,
        "path": "/",
        "check_interval_seconds": 10,
        "response_timeout_seconds": 5,
        "healthy_threshold": 5,
        "unhealthy_threshold": 3
      },
      "sticky_sessions": {
        "type": "none"
      }
      ]
    }
    

    Once you have created a load balancer, you can’t change its size.

December 4

  • Released v1.54.0 of doctl, the official DigitalOcean CLI. This release user confirmation before container registry garbage collection is started.

December 3

  • v2.3.0 of the DigitalOcean Terraform Provider is now available. This release includes support for configuring the size of a digitalocean_loadbalancer resource. OpenBSD binaries are now built and available for download.

December 1

  • We recently replaced Standard Droplet plans with Basic Droplet plans. Today, we have deprecated Standard Droplet plans from the API for new users. Existing customers will retain grandfathered access to these plans. See the API changelog for a full list of deprecated plans.

    Starting today, new users will no longer have access to the deprecated Standard Droplet plans from the API as well. Existing customers will retain grandfathered access to these plans.

    This is the complete list of plans deprecated for new users:

    Class Slug vCPUs RAM Disk Transfer Monthly Price
    Standard 512mb 1 512 MB 20 GB 1 TB $5
    Standard 1gb 1 1 GB 30 GB 2 TB $10
    Standard 2gb 2 2 GB 40 GB 3 TB $20
    Standard 4gb 2 3 GB 60 GB 4 TB $40
    Standard 8gb 4 4 GB 80 GB 5 TB $80
    Standard 16gb 8 16 GB 160 GB 6 TB $160
    Standard 32gb 12 32 GB 320 GB 7 TB $320
    Standard 48gb 16 48 GB 480 GB 8 TB $480
    Standard 64gb 20 64 GB 640 GB 9 TB $640
    Standard 96gb 24 96 GB 960 GB 10 TB $960
    Standard s-1vcpu-3gb 1 3 GB 60 GB 3 TB $15
    Standard s-3vcpu-1gb 3 1 GB 60 GB 3 TB $15
    Standard s-6vcpu-16gb 6 16 GB 320 GB 6 TB $80
    Standard s-8vcpu-32gb 8 32 GB 640 GB 7 TB $160
    Standard s-12vcpu-48gb 12 48 GB 960 GB 8 TB $240
    Standard s-16vcpu-64gb 16 16 GB 1280 GB 9 TB $320
    Standard s-20vcpu-96gb 20 20 GB 1920 GB 10 TB $480
    Standard s-24vcpu-128gb 24 24 GB 2560 GB 11 TB $640
    Standard s-32vcpu-192gb 32 32 GB 3840 GB 12 TB $960
    High Memory m-16gb 2 16 GB 60 GB 5 TB $75
    High Memory m-32gb 4 32 GB 90 GB 5 TB $150
    High Memory m-64gb 8 64 GB 200 GB 5 TB $300
    High Memory m-128gb 16 128 GB 340 GB 5 TB $600
    High Memory m-224gb 32 224 GB 500 GB 5 TB $1100

    You can view Droplet plans, the resources they provide, and the size slug used to identify them programmatically by querying the /v2/sizes endpoint.

November 2020

November 24

  • Released v1.53.0 of doctl, the official DigitalOcean CLI. This release adds support for container registry garbage collection of untagged manifests.

  • Fedora 31 has reached its end of life. Per our image deprecation policy, you can now only deploy the Fedora 31 image via the API. We will remove the Fedora 31 image from the platform on 24 December 2020.

November 12

  • v2.2.0 of the DigitalOcean Terraform Provider is now available. This release adds a new digitalocean_ssh_keys data source and a digitalocean_custom_image resource.

November 10

  • Released v1.52.0 of doctl, the official DigitalOcean CLI. This release adds a --force-rebuild flag to doctl apps create-deployment.

November 6

  • v2.1.0 of the DigitalOcean Terraform Provider is now available. DigitalOcean Container Registry is now in general availability and requires a subscription plan. As a result, the digitalocean_container_registry resource now requires setting a subscription_tier_slug which is supported with this release.

November 4

  • FreeBSD 12.2 UFS and ZFS base images are now available in the control panel and via the API. The image slug for the UFS FreeBSD image freebsd-12-x64 has been replaced with freebsd-12-x64-ufs. We will support 12.1 for three months after the release date of 12.2, which is currently scheduled for January 31, 2021.

November 3

  • Released v1.51.0 of doctl, the official DigitalOcean CLI. This release add support for managing DigitalOcean Container Registry subscriptions.

November 2

  • You can now integrate your DOCR registry with a Kubernetes cluster. When a registry is integrated with a Kubernetes cluster, we create docker registry type secrets in all the namespaces in the cluster. These secrets can be used with the workloads or added to the default service account in the namespace.

    Additionally, we’ve added DOCR integration support for our official clients, godo and doctl. Only versions of doctl 1.49.0 and godo 1.48.0 and above support docr integration for clusters.

October 2020

October 30

  • Released v1.50.0 of doctl, the official DigitalOcean CLI. This release incudes a number for new features and improvements. It includes new doctl apps sub-commands to retrieve information about App Platform pricing plan tiers, instance sizes, and regions. The doctl registry sub-command now supports managing garbage collection for container registries.

October 28

  • Released v1.49.0 of doctl, the official DigitalOcean CLI. This release incudes the ability to update the default VPC for a region, the ability to set an expiration time when downloading kubeconfig files, and more.

October 27

  • Fedora 33 base image is now available in the control panel and via the API.

October 22

  • Ubuntu 20.10 base image is now available in the control panel and via the API.

October 20

  • v2.0.0 of the DigitalOcean Terraform Provider is now available. This release uses v2.0.3 of the Terraform Plugin SDK and now only supports Terraform v0.12 and higher. It also includes a new digitalocean_records data source.

October 19

  • You can now update a VPC network to be the default VPC network for a region using the PUT /v2/vpcs/$VPC_ID and PATCH /v2/vpcs/$VPC_ID endpoints.

    For example:

    {
      "name": "renamed-new-vpc",
      "description": "A new description",
      "default": "true"
    }
    

    When you change the default VPC network for a region, all applicable resources are placed into the default VPC network unless otherwise specified during their creation.

October 13

  • v1.23.0 of the DigitalOcean Terraform Provider is now available. This release introduces a new digitalocean_app resource with support for DigitalOcean App Platform.

October 6

  • Released v1.48.0 of doctl, the official DigitalOcean CLI. This release promotes doctl apps commands with support for DigitalOcean App Platform to General Availability.

  • You can now apply taints to Kubernetes node pools using the DigitalOcean API. When you configure taints for a node pool, the taint automatically applies to all current nodes and any subsequently created nodes in the pool. For more information, see Kubernetes’ documentation on taints and tolerations.

  • You can now apply taints to Kubernetes node pools. When you configure taints for a node pool, the taint automatically applies to all current nodes in the pool and any node you add to the pool thereafter. For more information about taints and tolerations, see Kubernetes’ documentation.

    Additionally, we’ve added node taint support for our official clients, godo and doctl. Only versions of doctl 1.47.0 and godo 1.45.0 and above support persistent node pool taints.

    You can define taints during a pool’s creation by submitting a POST request to the /v2/kubernetes/clusters/<cluster-id>/node_pools and the /v2/kubernetes/clusters endpoints, or you can update existing pools by submitting a PUT request to the /v2/kubernetes/clusters/<cluster-id>/node_pools/<node-pool-id> endpoint. For example, this request body defines two taints for a node pool.

    {
      "name": "frontend",
      "size": 10,
      [...]
      "taints": [
        {
          "key": "priority",
          "value": "high",
          "effect": "NoSchedule",
        },
        {
          "key": "workloadKind",
          "value": "database",
          "effect": "NoExecute",
        }
      ]
    }
    

October 5

  • Released v1.47.0 of doctl, the official DigitalOcean CLI. This release adds support for setting Kubernetes node pool taints.

October 1

September 2020

September 8

  • Fedora 30 has reached its end of life. Per our image deprecation policy, you can now only deploy the Fedora 30 image via the API. We will remove the Fedora 30 image from the platform on 8 October 2020.

July 2020

July 28

July 23

  • FreeBSD 11.4 UFS and ZFS base images are now available in the control panel and via the API.

July 22

  • Released v1.46.0 of doctl, the official DigitalOcean CLI. This release includes support for install Kubernetes 1-Click Apps when creating a cluster, surge upgrade support for Kubernetes clusters, and more.

  • v1.22.0 of the DigitalOcean Terraform Provider is now available. This release includes auto_upgrade and surge_upgrade support for the digitalocean_kubernetes_cluster resource.

July 20

  • v1.21.0 of the DigitalOcean Terraform Provider is now available. This release includes the addition of https to the list of acceptable healthcheck protocols for the digitalocean_loadbalancer resource.

July 6

  • Load balancer health checks now support the HTTPS protocol. You can now configure load balancers to verify the health of your Droplets’ HTTPS endpoints.

June 2020

June 15

  • v1.20.0 of the DigitalOcean Terraform Provider is now available. This release includes the addition of a digitalocean_tags data source and improvements to other tag-related resources.

June 10

  • Released v1.45.1 of doctl, the official DigitalOcean CLI. This release updates doctl’s Snap packaging that allow Snap users to log in to DigitalOcean Container Registry using the doctl registry login command. To grant access doctl access to your Docker configuration, run snap connect doctl:dot-docker.

June 9

  • Listing records for a domain now supports filtering by both name and type using query parameters. For example, to only include A records for a domain, send a GET request to /v2/domains/$DOMAIN_NAME/records?type=ATo only include records matching sub.example.com, send a GET request to /v2/domains/$DOMAIN_NAME/records?name=sub.example.com. name must be a fully qualified record name. Both name and type may be used together to further filter the records returned.

  • The response body to POST requests creating multiple Droplets has been extended to include an actions link for each Droplet created. For example:

        "links": {
          "actions": [
            {
              "id": 24404896,
              "rel": "create",
              "href": "https://api.digitalocean.com/v2/actions/24404896"
            },
            {
              "id": 24404897,
              "rel": "create",
              "href": "https://api.digitalocean.com/v2/actions/24404897"
            }
          ]
        }
    

    These can be used to check the status of each individual Droplet create event rather than polling each Droplet.

June 3

  • v1.19.0 of the DigitalOcean Terraform Provider is now available. This release includes initial support the DigitalOcean Container Registry.

June 2

  • Released v1.44.0 of doctl, the official DigitalOcean CLI. This release includes support for specifying a non-default VPC when creating Droplets, load balancers, and Kubernetes clusters. It also adds the ability to set an expiration time for container registry credentials. This can be useful when calling doctl registry login as part of a CI/CD process. A new doctl 1-click list subcommand is now also available.

  • Released v1.45.0 of doctl, the official DigitalOcean CLI. This release includes new doctl kubernetes 1-click list and doctl compute droplet 1-click list subcommands.

May 2020

May 26

May 6

  • It is now possible to adjust the behavior of the OAuth authorization flow by specifying a prompt and/or max_auth_age query parameter:

    • The prompt query parameter can be used to specify how the authorizing user should be authenticated.
    • The max_auth_age query parameter can be used to determine a deadline (in seconds) after which a user must re-authenticate on the control panel.

    For more details, consult the OAuth documentation.

May 5

  • v1.18.0 of the DigitalOcean Terraform Provider is now available. This release includes support for the backend keepalive option for the load balancer resource and data source.

April 2020

April 29

April 28

  • Released v1.43.0 of doctl, the official DigitalOcean CLI. This release updates container registry features from beta to early access.

  • Fedora 32 base image is now available in the control panel and via the API.

  • v1.17.0 of the DigitalOcean Terraform Provider is now available. This release includes bug fixes and new Spaces data sources.

  • DigitalOcean Load balancers now allow you to set a keepalive option for forwarding rules. Enabling this option allows the load balancer to use fewer active TCP connections to send and receive HTTP requests between the load balancer and your target Droplets.

April 23

  • Released v1.42.0 of doctl, the official DigitalOcean CLI. This release includes a number of small UI improvements and support for additional container registry beta features.

  • Ubuntu 20.04 LTS base image is now available in the control panel and via the API.

April 14

  • v1.16.0 of the DigitalOcean Terraform Provider is now available. This release includes VPC support and expanded Spaces support.

April 10

  • Released v1.41.0 of doctl, the official DigitalOcean CLI. This release fixes the link to create a new API token when running doctl auth init.

April 7

  • Released v1.40.0 of doctl, the official DigitalOcean CLI. This release includes a support for VPCs and viewing billing history for an account.

  • Starting today, we have begun the incremental release of DigitalOcean VPC, including its API. VPCs (virtual private clouds) allow you to create virtual networks containing resources that can communicate with each other in full isolation using private IP addresses. The VPC service will be available for all customers soon. It replaces the existing private networking service.

    When enabled on your account, you will be able to create, configure, list, and delete custom VPCs as well as retrieve information about the resources assigned to them. For example, to create a new VPC, make a POST to the /v2/vpcs endpoint with a JSON body like:

    {
      "name": "staging-vpc",
      "description": "VPC for the staging environment"
      "region": "nyc1"
    }
    

    For the more details, see the full API reference documentation for DigitalOcean VPCs.

    Related Changes

    This release contains related functionality for a number of other DigitalOcean resources.

    When VPC is enabled on your account, the private_networking attribute previously used to enable private networking while creating a Droplet will now provision the Droplet inside of your account’s default VPC for the region. Use the new vpc_uuid attribute to specify a different VPC.

    Kubernetes clusters, load balancers, and database clusters will also be provisioned inside of your account’s default VPC for the region when enabled. To specify a non-default VPC, set the appropriate attribute in the JSON body of the create request:

    Resource Attribute
    Droplet vpc_uuid
    Kubernetes cluster vpc_uuid
    Load balancer vpc_uuid
    Database cluster private_networking_uuid

March 2020

March 18

  • Released v1.39.0 of doctl, the official DigitalOcean CLI. This release includes support for listing and retrieving invoices as well as expanded help output for all commands.

  • v1.15.0 of the DigitalOcean Terraform Provider is now available. This release includes new data sources for accessing information about DigitalOcean regions, images, and projects, a new resource for adding resources to projects not created via Terraform, and a number of other improvements.

March 11

  • Debian 10.3 and 9.12 base images are now available in the control panel and via the API.

March 4

  • The DigitalOcean managed databases API now supports configuring the user authentication plug-in for both new and existing MySQL users. This is useful when needing to connect to a MySQL 8.0 cluster using an application or older MySQL client that does not support the default caching_sha2_password authentication plug-in.

    For example, to create a new MySQL user using the mysql_native_password authentication plug-in, send a POST request to /v2/databases/$DATABASE_ID/users with a JSON body like:

    {
      "name": "php-app-01",
      "mysql_settings": {
        "auth_plugin": "mysql_native_password"
      }
    }
    

    For more details, see the full reference documentation for the managed databases API.

February 2020

February 6

  • To provide a better service for all customers we are introducing burst request rate limits to our public API. Now clients will be rate limited if they consume more than 5% of their total requests for an hour over a 1 minute period (going over 250 requests in a minute). This only affects clients making their requests in large bursts, clients that spread their requests over time will not be affected. Check the rate limits documentation for more information about it.

February 5

  • v1.14.0 of the DigitalOcean Terraform Provider is now available. This release includes a bug fix for projects containing many resources and exposes the Droplet IDs for individual nodes in Kubernetes clusters.

February 4

  • Released v1.38.0 of doctl, the official DigitalOcean CLI. This release adds the ability to set Kubernetes node pool labels as well as support for deleting multiple Kubernetes clusters with a single command.

  • Our managed DigitalOcean Kubernetes product DOKS now supports setting Kubernetes labels on node pools. Once assigned, they will propagate to the associated pool nodes, both existing and new ones. This way, customers may reliably reference groups of nodes through label selectors that Kubernetes provides.

    Labels can be set on node pool API objects that are accessible on multiple endpoints. For instance, updating an existing node pool by the labels service=web and priority=high is done by submitting a PUT request to the /v2/kubernetes/clusters/<cluster ID>/node_pools/<node ID> endpoint with the following JSON body:

    {
      "name": "web",
      "count": 10,
      "labels": {
        "service": "web",
        "priority": "high"
      }
    }
    

    For details, see the available operations on the Kubernetes API.

January 2020

January 30

  • The following distributions have reached end of life. Their distribution images are now deprecated and will be removed from the control panel and API on 1 March 2020:

    • Ubuntu 19.04
    • FreeBSD 12.0
    • Fedora 28
    • Fedora 28 Atomic
    • Fedora 29

    If you need to use these distribution versions, you can create Droplets from a snapshot of a Droplet with that version or from a custom image.

January 27

  • v1.13.0 of the DigitalOcean Terraform Provider is now available. This release adds support for tagging Managed Databases clusters.

January 24

  • RancherOS 1.5.5 base image is now available in the control panel and via the API.

January 22

  • CentOS 8.1 base image is now available in the control panel and via the API.

January 14

  • Released v1.37.0 of doctl, the official DigitalOcean CLI. This release adds the ability to retrieve account balances.

January 13

  • Our API has been extended with a new endpoint enabling you to retrieve your account balance. For more information, see the balance endpoint in the API reference documentation.

  • Our API has been extended with a new endpoint enabling you to retrieve balance information for an account. To do so, make a GET request to /v2/customers/my/balance. The response will be a JSON body including your balance details. For example:

    {
      "month_to_date_balance": "23.44",
      "account_balance": "12.23",
      "month_to_date_usage": "11.21",
      "generated_at": "2019-07-09T15:01:12Z"
    }
    

    For all the details, see the balance endpoint in the full API reference documentation.

December 2019

December 18

  • Fedora 31 base image is now available in the control panel and via the API.

December 17

  • Debian 10.2 base image is now available in the control panel and via the API.

December 12

December 2

  • The DigitalOcean API currently offers the ability to retrieve a report of all Droplets co-located on the same physical hardware by sending a GET request to the /v2/reports/droplet_neighbors endpoint. This endpoint has been deprecated and will begin responding with an HTTP status of 410 (Gone) on December 17th, 2019.

    Today, in its place, a new endpoint is now available: /v2/reports/droplet_neighbors_ids. Rather than listing the full Droplet object, responses from this endpoint only contain sets of Droplet IDs co-located on the same physical hardware. For example:

    {
      "neighbor_ids": [
        [168671828,168663509,168671815],
        [168671883,168671750]
      ]
    }
    

    This implementation is more performant and better able to scale for users with many Droplets. For all the information, find the full API reference documentation here.

    The API also continues to offer the ability to list “neighbors” for a specific Droplet by sending a GET request to /v2/droplets/$DROPLET_ID/neighbors. This endpoint will continue to function without change.

    We apologize for the inconvenience. If you need guidance on this transition, reach out to the team by opening a support ticket.

November 2019

November 21

November 20

  • DigitalOcean’s API now supports managing a database cluster’s firewall rules (known as “trusted sources” in the control panel) as well as the ability to configure the SQL mode used by MySQL clusters.

    Using the /v2/databases/$DATABASE_ID/firewall endpoint, you can specify which resources should be able to open connections to your database. You may limit connections to specific Droplets, Kubernetes clusters, or external IP addresses. When a tag is provided, any Droplet or Kubernetes node with that tag applied to it will have access. For example, the body a PUT request might look like:

    {
      "rules": [
        {"type": "ip_addr", "value": "192.168.1.1"},
        {"type": "droplet", "value": "163973392"},
        {"type": "k8s", "value": "ff2a6c52-5a44-4b63-b99c-0e98e7a63d61"},
        {"type": "tag", "value": "backend"}
      ]
    }
    

    To configure the SQL modes for a MySQL cluster, use the /v2/databases/$DATABASE_ID/sql_mode endpoint. For example, the body a PUT request might look like:

    {
      "sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE"
    }
    

    For more information, see the full API reference documentation for managed databases.

October 2019

October 21

  • Ubuntu 19.10 base image is now available in the control panel and via the API.

August 2019

August 22

  • The /v2/volumes?name=$VOLUME_NAME endpoint now lists all volumes that match the specified name as a query parameter. For more information, see the API v2 reference documentation on list volumes filtered by name.

August 20

  • Today DigitalOcean’s Managed Database service launched support for two new database engines, MySQL and Redis. Both are currently in Limited Availability and can initially be used in the NYC1, FRA1, and SFO2 regions.

    When creating a new database cluster using the API, you must specify the engine attribute to select which type of database to use (mysql for MySQL or redis for Redis). For example, to create a new Redis cluster, make a POST to the /v2/databases endpoint with a JSON body like:

    {
      "name": "cache-01",
      "engine": "redis",
      "version": "5",
      "region": "nyc1",
      "size": "db-s-1vcpu-2gb",
      "num_nodes": 2
    }
    

    See the full API reference documentation for all the details. For more information about DigitalOcean Managed Databases including the roll-out plan for additional regions, check out the blog post announcing the release.

August 19

July 2019

July 12

  • FreeBSD 11.3 base image is now available in the control panel and via the API.

July 8

June 2019

June 25

  • The ttl of a domain record now has a minimum value of 30 seconds, and if not set, the default value has changed from 1800 to the ttl of the SOA record.

June 3

  • RancherOS v1.5.2 base images have replaced RancherOS v1.5.1 base images in the control panel and API.

May 2019

May 30

  • DigitalOcean Managed Databases now provide support for private networking. All new database clusters will be provisioned with private networking enabled. Existing clusters will require an update to connect over the private network. This can be triggered in the control panel.

    Databases, read-only replicas, and connection pools will now contain a new private_connection object holding the information needed to access the resource via the private network. Its attributes are identical to the existing connection object, but the values for private_connection.uri and private_connection.host will contain FQDNs only accessible from resources (e.g. Droplets or Kubernetes clusters) within your account and in the same region.

    For more information, see the full Managed Databases API documentation.

May 22

  • FreeBSD 12.0 (ufs & zfs) base images are now available in the control panel and via the API.

May 21

  • SOA records are now returned in record results, and you can update the TTL on a SOA record as you would with other records. This allows you to control the negative caching of your domain. SOA records cannot be manually deleted or created on a domain, they are created when the domain is created, and cleaned up on the domain deletion.

  • Today, we are promoting the Kubernetes API to General Availability. As part of this release, we have also extended the API with additional functionality:

    • When creating or updating a cluster, you may now configure a maintenance window policy specifying the day of the week and time of day that updates should take place for the cluster. Additionally, setting a cluster’s auto_upgrade attribute to true will specify that the cluster can be automatically upgraded to new Kubernetes patch releases (e.g. 1.13.1 to 1.13.2) during its maintenance window.

    • An upgrade endpoint is now available to imminently trigger an upgrade to a newer patch release of Kubernetes at your own convienience. You may list available upgrades for your cluster using the upgrades endpoint.

    • In order to give users finer control over individual nodes, the recycle endpoint has been deprecated. Instead, we now offer the ability to delete or replace specific nodes in a node pool. By default, workloads will be drained from the node before deletion. Appending the skip_drain=1 query parameter to the request will cause the node to be imminently deleted. Appending the replace=1 query parameter to the request will cause the node to be replaced by a new one after it has been deleted.

    For the full details, see the API reference documentation for Kubernetes.

    Thank you to everyone who took the time to provide us with feedback.

May 1

  • Fedora 30 base images are now available in the control panel and via the API using the slug fedora-30-x64.

April 2019

April 18

April 16

  • The /v2/volumes/$volume_id/snapshots endpoint now accepts tags at creation time, and these are reflected on the /v2/snapshots endpoint. Volume snapshot tags may now be managed with the /v2/tags endpoint as well. For more information, see the API reference documentation for both volumes and tags.

April 9

  • Spaces, DigitalOcean’s object storage solution, includes a built-in CDN. Today we’ve added the ability to use custom subdomains with your CDN endpoints. When configuring your CDN via the API, you can now set the custom_domain attribute to use a subdomain with the endpoint. When a custom subdomain is in use, the certificate_id attribute is also required. Its value must be the ID of a DigitalOcean managed SSL certificate. For example, the body of your request to enable a CDN might look like:

    {
      "origin": "static-images.nyc3.digitaloceanspaces.com",
      "certificate_id": "892071a0-bb95-49bc-8021-3afd67a210bf",
      "custom_domain": "static.example.com"
    }
    

    See here for more information about using the API to configure Spaces CDN endpoints.

March 2019

March 30

March 19

  • DigitalOcean Load Balancers now support using PROXY Protocol to pass information like origin IP addresses and port numbers from connecting client requests along to the backend service. This can be configured using the API by setting the new enable_proxy_protocol attribute to true when creating a new Load Balancer or updating an existing one.

    See here for more information about using PROXY Protocol with DigitalOcean Load Balancers.

February 2019

February 26

  • The GitLab One-Click application maintained by DigitalOcean was replaced in the control panel by a GitLab Enterprise Edition maintained by GitLab. The corresponding API slug, gitlab-18-04, is deprecated and will be removed in 90 days. The new slug, gitlab-ee-18-04 is available now.

February 15

  • As announced on September 5, 2018, the last_tagged attribute returned in response to GET requests to the /v2/tags or /v2/tags/$TAG_NAME endpoints has been deprecated. Beginning March 1st, 2019, last_tagged will no longer be populated in favor of the last_tagged_uri attribute.

    For example, a GET request to /v2/tags/frontend currently might return:

    {
      "tag": {
        "name": "frontend",
        "resources": {
          "count": 3,
          "last_tagged_uri": "https://api.digitalocean.com/v2/droplets/132000916",
          "droplets": {
            "count": 3,
            "last_tagged": {
              "id": 132000916,
              "name": "suspicious-bhabha-u8zq",
              "memory": 2048,
              "vcpus": 2,
              "disk": 60,
              "locked": false,
              "status": "active",
              "kernel": null,
              "created_at": "2019-02-13T05:29:52Z",
              "features": [
                "private_networking"
              ],
              "backup_ids": [],
              "next_backup_window": null,
              "snapshot_ids": [],
              "image": {
                "id": 43509743,
                "name": "do-kube-1.12.3",
                "distribution": "Debian",
                "slug": null,
                "public": false,
                "regions": [
                  "ams2",
                  "ams3",
                  "blr1",
                  "fra1",
                  "lon1",
                  "nyc1",
                  "nyc2",
                  "nyc3",
                  "sfo1",
                  "sfo2",
                  "sgp1",
                  "tor1"
                ],
                "created_at": "2019-02-11T20:38:04Z",
                "min_disk_size": 20,
                "type": "snapshot",
                "size_gigabytes": 2.99
              },
              "volume_ids": [],
              "size": {
                "slug": "s-2vcpu-2gb",
                "memory": 2048,
                "vcpus": 2,
                "disk": 60,
                "transfer": 3,
                "price_monthly": 15,
                "price_hourly": 0.02232,
                "regions": [
                  "ams2",
                  "ams3",
                  "blr1",
                  "fra1",
                  "lon1",
                  "nyc1",
                  "nyc2",
                  "nyc3",
                  "sfo1",
                  "sfo2",
                  "sgp1",
                  "tor1"
                ],
                "available": true
              },
              "size_slug": "s-2vcpu-2gb",
              "networks": {
                "v4": [
                  {
                    "ip_address": "192.0.2.255",
                    "netmask": "255.255.240.0",
                    "gateway": "192.0.2.1",
                    "type": "public"
                  },
                  {
                    "ip_address": "10.136.121.81",
                    "netmask": "255.255.0.0",
                    "gateway": "10.136.0.1",
                    "type": "private"
                  }
                ],
                "v6": []
              },
              "region": {
                "name": "New York 1",
                "slug": "nyc1",
                "sizes": [
                  "s-1vcpu-3gb",
                  "s-1vcpu-1gb",
                  "s-3vcpu-1gb",
                  "s-1vcpu-2gb",
                  "s-2vcpu-2gb",
                  "s-2vcpu-4gb",
                  "s-4vcpu-8gb",
                  "s-16vcpu-64gb",
                  "s-6vcpu-16gb",
                  "s-8vcpu-32gb",
                  "s-12vcpu-48gb",
                  "s-20vcpu-96gb",
                  "s-24vcpu-128gb",
                  "s-32vcpu-192gb"
                ],
                "features": [
                  "private_networking",
                  "backups",
                  "ipv6",
                  "metadata",
                  "install_agent",
                  "server_id",
                  "management_networking"
                ],
                "available": true
              },
              "tags": [
                "frontend"
              ]
            },
            "last_tagged_uri": "https://api.digitalocean.com/v2/droplets/132000916"
          },
          "images": {
            "count": 1,
            "last_tagged_uri": "https://api.digitalocean.com/v2/images/42991114"
          },
          "volumes": {
            "count": 0
          }
        }
      }
    }
    

    Following this change, the new response would look like:

    {
      "tag": {
        "name": "frontend",
        "resources": {
          "count": 3,
          "last_tagged_uri": "https://api.digitalocean.com/v2/droplets/132000916",
          "droplets": {
            "count": 3,
            "last_tagged_uri": "https://api.digitalocean.com/v2/droplets/132000916"
          },
          "images": {
            "count": 1,
            "last_tagged_uri": "https://api.digitalocean.com/v2/images/42991114"
          },
          "volumes": {
            "count": 0
          }
        }
      }
    }
    

    For additional information, see the full API reference documentation for tags.

February 14

  • Today DigitalOcean’s Managed Database service, including its API, has entered Limited Availability. In order to access these new endpoints, you must first enable Managed Databases on your account by opting-in via the cloud control panel. Once enabled, you will be able to create, scale, and manage your database clusters via the API. For example, to create a new database cluster, make a POST to the /v2/databases endpoint with a JSON body like:

    {
      "name": "backend",
      "engine": "pg",
      "version": "10",
      "region": "nyc3",
      "size": "db-s-1vcpu-2gb",
      "num_nodes": 2
    }
    

    The response will include a full JSON representation of the database cluster. The initial value of the cluster’s status attribute will be “creating.” When the cluster is ready for use, this will transition to “online.”

    For the all the details, see the full API reference documentation for DigitalOcean Managed Databases.

February 5

  • The /v2/volumes endpoint now displays tags and supports adding them to volumes at creation time. Volume tags may now be managed with the /v2/tags endpoint as well. For more information, see the API reference documentation for both volumes and tags.

January 2019

January 16

  • The deprecated 16.04 One-Click LAMP slug, lamp-16-04, was removed from the API.

December 2018

December 11

  • Today we opened up access to the DigitalOcean Kubernetes service for all users. As part of this release, the API is now also available to all. While still in Limited Availability, you must first enable Kubernetes on your account by opting-in via the cloud control panel to access these endpoints.

    Once enabled, you will be able to list, create, or delete clusters as well as scale node pools up and down, recycle individual nodes, and retrieve the kubeconfig file for use with a cluster via the API. For example, to create a new cluster with a node pool using three s-2vcpu-2gb Droplets, make a POST to the /v2/kubernetes/clusters endpoint with a JSON body like:

    {
      "name": "prod-cluster-01",
      "region": "nyc1",
      "version": "1.12.1-do.2",
      "tags": ["production"],
      "node_pools": [
        {
          "size": "s-2vcpu-2gb",
          "count": 3,
          "name": "woker-pool"
        }
      ]
    }
    

    The response will include a full JSON representation of the cluster. The initial value of the cluster’s status.state attribute will be “provisioning.” When the cluster is ready for use, this will transition to “running.” You can use the /v2/kubernetes/options endpoint to find the available versions of Kubernetes as well as the supported regions and Droplet sizes.

    Once ready, you can retrieve the credentials for use with the cluster by sending a GET request to /v2/kubernetes/clusters/$K8S_CLUSTER_ID/kubeconfig. The response will be a kubeconfig file in yaml format. This file can be used to connect to and administer the cluster using the Kubernetes command line tool, kubectl. For more information, see “How to Connect to a DigitalOcean Kubernetes Cluster with kubectl.”

    For the all the details, see the full API reference documentation for DigitalOcean Kubernetes.

November 2018

November 26

  • The Projects API was released to general availability.

  • Today, we are promoting the Projects API to General Availability. For the full details, see the API reference documentation for both Projects and Project Resources.

    Thank you to everyone who took the time to provide us with feedback.

November 13

October 2018

October 16

  • Today, we are launching a beta of our new Projects API. Projects enable you to group your resources in ways that align with the applications you host on DigitalOcean, and now you can do so via our API as well. This initial release includes the ability to:

    • Create, list, retrieve, update, and delete Projects
    • Assign existing resources to a Project
    • List resources in a Project

    Additionally, we’ve added beta support for Projects to our official clients (Droplet Kit, godo, and doctl).

    You can create a new project by sending a POST request to the /v2/projects endpoint including a body like:

    {
      "name": "my-web-api",
      "description": "My website API",
      "purpose": "Service or API",
      "environment": "Production"
    }
    

    To assign resources to a project, send a POST request to /v2/projects/$PROJECT_ID/resources including a list of those resources in the body:

    {
      "resources": [
        "do:droplet:123456",
        "do:floatingip:192.168.99.100",
        "do:space:static-assets",
        "do:volume:0e250b2a-8a01-11e8-96ae-0242ad114410"
       ]
    }
    

    Resources are identified by uniform resource names or URNs, a string consisting of the type of resource and its unique identifier. A valid URN has the following format: do:resource_type:resource_id. For the full details, see the API reference documentation for both Projects and Project Resources.

    Note that as this is a beta release, we may make additional changes based on your feedback. So let us know how you’re using projects, and follow along with the API changelog for updates.

September 2018

September 27

  • Today’s release brings Content Delivery Network (CDN) support to Spaces, DigitalOcean’s object storage solution. This can be configured and managed using our API. By sending requests to /v2/cdn/endpoints, you can list, create, or delete CDN endpoints as well as purge cached content.

    To enable the CDN for your Space, send a POST request to /v2/cdn/endpoints. In the JSON body of your request, specify the origin of your content and the desired TTL. For example:

    {
      "origin": "static-images.nyc3.digitaloceanspaces.com",
      "ttl": 3600
    }
    

    Currently, the origin must be a DigitalOcean Space.

    To purge cached content from a CDN endpoint, send a DELETE request to /v2/cdn/endpoints/$ENDPOINT_ID/cache. The body of the request should include a files attribute containing a list of cached file paths to be purged. A path may be for a single file or may contain a wildcard (*) to recursively purge all files under a directory. When only a wildcard is provided, all cached files will be purged. For example, the body of your request might look like:

    {
      "files": [
        "assets/img/hero.png",
        "assets/css/*"
      ]
    }
    

    For additional details, see the API reference documentation for managing CDN endpoints.

September 25

  • Today DigitalOcean released support for uploading custom images, enabling you to create Droplets based on your own Linux virtual machine images. Our image management API has been extended with support as well. By sending a POST to the /v2/images endpoint, you can create a new custom image. The request must contain a url attribute pointing to where the image can be downloaded. The image itself may be in the raw, qcow2, vhdx, vdi, or vmdk format. It can be compressed using gzip or bzip2 but must be smaller that 100 GB after being decompressed. For example, the body of you request might look like:

    {
      "name": "ubuntu-18.04-minimal",
      "url": "http://cloud-images.ubuntu.com/minimal/releases/bionic/release/ubuntu-18.04-minimal-cloudimg-amd64.img",
      "distribution": "Ubuntu",
      "region": "nyc3",
      "description": "Cloud-optimized image w/ small footprint",
      "tags": [
        "base-image",
        "prod"
      ]
    }
    

    To make organizing your images easier, we’ve also extended tagging support to custom images as well as Droplet snapshots. For additional details, see the API reference documentation for creating custom images and tagging resources.

September 5

  • When listing or getting tags by sending a GET request to /v2/tags or /v2/tags/$TAG_NAME, the response payload currently includes a last_tagged value inside the tag’s resources.droplets containing a full representation of the resource. This payload is considerably nested and adds additional overhead to the request. In order to improve performance as well as lay the groundwork for bring tagging support to additional resources, this attribute is being deprecated. Beginning March 1st, 2019 last_tagged will no longer be populated in favor of the new last_tagged_uri attribute introduced today.

    For all resources (and each resource type supported), the last_tagged_uri attribute contains a string indicating the URI which can be used to retrieve details about that specific resource. If you need information about the last tagged resource specifically, issuing another call to that URI will provide you with all the data for that resource.

    Additionally, a count attribute describing how many resources overall have been tagged with the tag in question has been added. Each individual resource type will continue providing a count attribute.

    If you need guidance on transitioning from using last_tagged to using of the new last_tagged_uri attribute, reach out to the team by opening a support ticket.

July 2018

July 16

July 3

June 2018

June 22

  • New Domain resources can now be created via the DigitalOcean v2 API without providing an IP address. The previous behavior, which would automatically create an A record pointing to the apex domain, will be retained for backwards-compatibility when an IP address is provided.

    This example demonstrates how to create a new domain without providing an IP address:

    curl -X POST -H "Content-Type: application/json" \
        -H "Authorization: Bearer $DIGITALOCEAN_API_TOKEN" \
        -d '{"name":"example.com"}' \
        "https://api.digitalocean.com/v2/domains"
    

    For more information, see the full Domains API documentation.

May 2018

May 22

  • The /v2/volumes endpoint has been updated to support automatically formatting the filesystem of newly created volumes. Volume resources now expose two new attributes: filesystem_type and filesystem_label. They can be used to specify the filesystem and the label to be applied. Currently, the available filesytem types are ext4 and xfs.

    For example, here is a request creating a new volume formatted with an EXT4 filesystem:

      curl -X POST \
      -d '{"name":"volume-nyc3-01","region":"nyc3","filesystem_type":"ext4","filesystem_label":"example","size_gigabytes": 100}' \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
      https://api.digitalocean.com/v2/volumes
    

    Additionally, Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018 will now automatically mount volumes with pre-formatted filesystems when attached. Attaching pre-formatted volumes to other Droplets is not recommended. When the filesystem_type attribute is not provided, volumes will continue to be presented as raw block devices and require additional configuration.

    When retrieving an existing volume, filesystem_type and filesystem_label will reflect the current filesystem and label used on the volume even if these were applied manually.

    For more information, see the full API documentation for Volumes.

May 8

  • Today, DigitalOcean released a number of Load Balancer improvements including support for using SSL/TLS certificates automatically generated by Let’s Encrypt. Our Certificate management API has been updated to support automatically generating Let’s Encrypt certificates in addition to uploading custom, user-generated certificates.

    A request to generate a new SSL/TLS certificate using Let’s Encrypt would look like:

        curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $DO_TOKEN" \
        -d '{"name": "le-cert-01", "type": "lets_encrypt", "dns_names": ["www.example.com","example.com"]}' \
        "https://api.digitalocean.com/v2/certificates"```
    

    The new type attribute must be set to lets_encrypt when using Let’s Encrypt. If omitted, it will default to custom in order to maintain backwards compatibility. For additional details, see the Certificate management API reference documentation.

    For more information on how to use Let’s Encrypt with DigitalOcean Load Balancers, see this tutorial on our community site.

April 2018

April 27

January 2018

January 29

  • Spaces now support:

    • Version 4 of pre-signed URLs, allowing for easier use of 3rd party S3 compatible libraries.
    • Scheduled deletion of objects via bucket lifecycle methods in the Spaces API.
    • Previews of image, audio, and video files that are moused over in the control panel file browser.

January 16

  • Today, we announced wide-ranging changes to our Droplet plans, bringing improved resources across the board. These new plans are now available via the API and can be referenced using their respective size slugs.

    Size slugs are human-readable strings used to specify the type of Droplet in certain API requests. In the past, size slugs were typically based on the amount of RAM provided with the plan (e.g. 1gb). Moving forward, we are standardizing on a format comprised of the identifier for the Droplet’s class, the vCPU count, and the amount of RAM in order to provide more flexibility in the plans we are able to offer you. For example, our new $5 per month Standard Droplet comes with 1 vCPU and 1 GB of RAM. So its size slug is. s-1vcpu-1gb.

    Applications and scripts with hard-coded size slugs must be updated to take advantage of these new plans. In order to provide a transition period, 1st Generation Droplet plans will continue to be available via the API using the legacy size slugs. We will provide additional notice before their removal.

    The table below shows the new 2nd Generation Standard Droplet plans along with their corresponding size slug. For always up-to-date information on available plans and pricing, see our pricing page.

    Class Slug vCPUs RAM Disk Transfer Monthly Price
    Standard s-1vcpu-1gb 1 1 GB 25 GB 1 TB $5
    Standard s-1vcpu-2gb 1 2 GB 50 GB 2 TB $10
    Standard s-1vcpu-3gb 1 3 GB 60 GB 3 TB $15
    Standard s-2vcpu-2gb 2 2 GB 60 GB 3 TB $15
    Standard s-3vcpu-1gb 3 1 GB 60 GB 3 TB $15
    Standard s-2vcpu-4gb 2 4 GB 80 GB 4 TB $20
    Standard s-4vcpu-8gb 4 8 GB 160 GB 5 TB $40
    Standard s-6vcpu-16gb 6 16 GB 320 GB 6 TB $80
    Standard s-8vcpu-32gb 8 32 GB 640 GB 7 TB $160
    Standard s-12vcpu-48gb 12 48 GB 960 GB 8 TB $240
    Standard s-16vcpu-64gb 16 64 GB 1,280 GB 9 TB $320
    Standard s-20vcpu-96gb 20 96 GB 1,920 GB 10 TB $480
    Standard s-24vcpu-128gb 24 128 GB 2,560 GB 11 TB $640
    Standard s-32vcpu-192gb 32 192 GB 3,840 GB 12 TB $960

    Available Droplet plans, the resources they provide, and the size slug used to identify them can be accessed programmatically by querying the /v2/sizes endpoint.

September 2017

September 13

  • Domain Record resources have been updated to add support for CAA records. As specified in RFC-6844, this record type can be used to specify which certificate authorities (CAs) are permitted to issue certificates for a domain.

    For example, in order to restrict TLS/SSL certificate creation for example.com to letsencrypt.org, you would use a request like:

      curl -X POST \
      -d '{"type":"CAA","name":"@","data":"letsencrypt.org.","priority":null,"port":null,"ttl":1800,"flags":0,"tag":"issue"}' \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
      https://api.digitalocean.com/v2/domains/example.com/records
    

    For more information on how to use CAA records, see this tutorial on our community site.

April 2017

April 14

  • Our API has been extended to support configuring the TTL value for individual domain records. This can be done when creating a new record as well as when updating an existing one via a PUT request. See the domain record documentation for further information.

March 2017

March 28

  • Our API currently offers the ability to “rename” a tag by sending a PUT request to /v2/tags/$TAG_NAME. Due to low usage and operational complexities involved with its maintenance, we are deprecating this functionality. Beginning April 26th, 2017 all requests to this endpoint will respond with an HTTP status of 410 (Gone). A tag’s name also serves as its unique identifier. We’ve found that the ability to change a tag’s name introduces unneeded complexity. If you need guidance on this transition, reach out to the team by opening a support ticket.

November 2016

November 10

  • You may now pass tags as an attribute when creating one or more new Droplets. This optional parameter will create and apply the specified tag(s) to the newly created Droplet(s). For more information see create Droplet documentation.

October 2016

October 5

April 2016

April 13

  • Size objects now contain a size\_gigabytes attribute which represents the physical size of the image in gigabytes. For more information see the images documentation.

March 2016

March 22

December 2015

December 14

November 2015

November 24

  • Account objects now contain a floating\_ip\_limit attribute which provides the maximum number of floating IPs that may be provisioned by the account. For more information, see the account documentation.

November 5

July 2015

July 20

  • Account objects now contain status and status_message attributes, describing whether an account is locked, active or has a pending warning. For more information, see the account documentation.

July 14

  • We’ve deprecated final (temporary) snapshots and therefore temporary is no longer an acceptable value for type for a snapshot.

May 2015

May 20

May 1

  • Since releasing version 2 of our API nearly a year ago and officially bringing it out of beta last month, we’ve seen a tremendous uptake of usage by our community. As the ecosystem of tools and libraries continues to grow, we’ve decided that it is time to sunset version 1 of the API.

    Don’t worry! We’re not going to pull the rug out from under you. In order to give everyone time to port their tools, version 1 will not be turned off until Monday, November 9, 2015.

    With its (more) RESTful interface and features like OAuth support, v2 is both powerful and easy to use. Our developer documentation should give you all the information you need to begin the transition. If you have questions, you can always ask on our Community site or on Twitter.

April 2015

April 2

March 2015

March 25

  • The Image action endpoint now responds to a convert attribute, that allows backups and temporary snapshots to be saved permanently as snapshots. For more information, see the image actions documentation.

March 11

  • Images objects now return a type attribute, describing whether they are snapshots, backups or temporary images. For more information, see the images documentation.

March 4

  • Size objects now expose an available boolean attribute, which represents whether new Droplets can be created with the size.

February 2015

February 20

  • All action objects, i.e. those returned by the /v2/actions, /v2/droplets/$ID/actions and /v2/images/$ID/actions endpoint now return a region_slug attribute, in addition to a region attribute. At 00:01 March 20, 2015 UTC, API v2 will start returning an embedded region object at the region attribute, not a slug.

    For example, the API request:

    curl -X GET -H 'Content-Type: application/json' \
        -H 'Authorization: Bearer $DIGITALOCEAN_TOKEN' \
        "https://api.digitalocean.com/v2/actions?page=1&per_page=1"
    

    would return:

    {
      "actions": [
        {
          "id": 36804636,
          "status": "completed",
          "type": "create",
          "started_at": "2014-11-14T16:29:21Z",
          "completed_at": "2014-11-14T16:30:06Z",
          "resource_id": 3164444,
          "resource_type": "droplet",
          "region": {
            "name": "New York 3",
            "slug": "nyc3",
            "sizes": [
              "32gb",
              "16gb",
              "2gb",
              "1gb",
              "4gb",
              "8gb",
              "512mb",
              "64gb",
              "48gb"
            ],
            "features": [
              "virtio",
              "private_networking",
              "backups",
              "ipv6",
              "metadata"
            ],
            "available": true
          },
          "region_slug": "nyc3"
        }
      ],
      "links": {
        "pages": {
          "last": "https://api.digitalocean.com/v2/actions?page=159&per_page=1",
          "next": "https://api.digitalocean.com/v2/actions?page=2&per_page=1"
        }
      },
      "meta": {
        "total": 159
      }
    }
    

February 10

February 8

  • The maximum allowed rate limit per O-Auth token has been increased to 5,000 requests/hour.

January 2015

January 22

  • The images now supports a private filter which will allow you to retrieve all images that are specific to your account (IE: backups and snapshots).

    For more information, you can view the documentation for this endpoint here.

January 20

  • API V2 now validates SSH key IDs and identifiers passed into the Droplet create call. In addition, API V2 now validates that requested features are available for a Droplet (backups, private networking, IPv6 and user data).

November 2014

November 6

  • The API v2 now supports retrieving images by type, to retrieve an image by type, simply append:

    GET /v2/images?type={distribution,application}
    

    Change type to what you would like to retrieve and voilĂ !

    DropletKit (The Ruby API Client) also supports this functionality as well in Version 1.1.0

    You can view the documentation for this feature here.

October 2014

October 27

  • The JSON object for a droplet no longer contains a nested Size object, but rather a slug called size_slug that references a Size object. See the droplet docs for the updated structure.

    The Image JSON object now includes a min_disk_size attribute that contains the slug of the minimum size droplet required for that image. For example a snapshot of a 1 Gig droplet will have “1gb” as it’s min_disk_size.

August 2014

August 20

  • Remove embedded action_ids from Droplet and Image.

July 2014

July 25

  • Both price\_monthly and price\_hourly were previously strings. This made them harder to work with so we have gone ahead and turned them into floats.

July 2

  • We have tweaked the per_page limits to default to 20 and be a maximum of 200. We have found in our testing, so far, for this to be a good balance of requests versus results. Head on over and read up on pagination.

June 2014

June 25

  • API V2 now supports disabling backups on a Droplet.

  • API V2 now supports expanding a droplet’s disk size, along with other resources.

  • Want to know which regions support IPv6 or Private Networking? It is now possible to check which features are enabled in each region.

June 24

  • It seems adding X- to custom HTTP headers is going out of style.

    So we gone ahead and changed our RateLimit headers to no longer include the X.

    They now look like this:

    RateLimit-Limit:
    RateLimit-Remaining:
    RateLimit-Reset: