API Release Notes
Validated on 3 Apr 2025 • Last edited on 28 Mar 2024
April 2025
3 April
-
We previously announced an upcoming breaking change to the DigitalOcean API to fix an incomplete resource authorization issue. We have changed our approach so that this is no longer a breaking change.
Originally, some users would need to recreate API tokens with additional scopes to retain the same functionality. Now, API tokens created before we deploy the fix retain the same functionality and access to the API. No action is required to continue using these tokens as before.
Learn more on Breaking Change to Fix DigitalOcean API Incomplete Resource Authorization Issue.
February 2025
28 February
-
All managed databases except MongoDB now support up to 2,000 IP addresses as trusted sources. To add trusted sources, see our guides for MySQL, PostgreSQL, Caching, MongoDB, OpenSearch, and Kafka.
20 February
-
In April 2025, we are implementing a breaking change to the DigitalOcean API that fixes an incomplete resource authorization issue. You may need to recreate API tokens with additional scopes to retain the same functionality, depending on your use cases.
April 2024
22 April
-
We’ve corrected a bug where image types other than snapshots could be listed using the
GET /v2/snapshotsendpoint. This behavior was strictly limited to image types that the user was properly authorized to access, such as backups and custom images.
17 April
-
Custom scopes for personal access tokens (PATs) are now generally available.
Previously, DigitalOcean PATs had only two scopes: read access to all team resources or full (read and write) access to all team resources. Custom scopes introduce more specific permissions, like creating Droplets or updating cloud firewalls, which lets you secure your workflows by granting only the permissions the token needs and restricting access to other resources and actions.
12 April
-
Team members with the biller role can no longer access information about shared resources. Previously, billers could access this information via the API, but not the control panel.
8 April
-
Tokens returned by the
/kubeconfigand/credentialsendpoints now have custom scopes to provide read-only access to Kubernetes resources. Within DOKS clusters, operations to access Kubernetes objects are still available based on team role (owner, biller, or member) as before.
March 2024
15 March
-
The custom scopes for personal access tokens beta is now available via feature preview.
January 2024
16 January
-
We’ve corrected a bug where image types other than snapshots could be retrieved using the
GET /v2/snapshots/$SNAPSHOT_IDandDELETE /v2/snapshots/$SNAPSHOT_IDendpoints. This behavior was strictly limited to image types that the user was properly authorized to access, such as backups and custom images.
December 2023
8 December
-
Released v1.101.0 of doctl, the official DigitalOcean CLI. This release adds support for scalable storage for PostgreSQL and MySQL databases and Kafka topic management.
October 2023
17 October
-
Released v1.100.0 of doctl, the official DigitalOcean CLI. This release adds new commands for managing uptime alerts and retrieving advanced database configuration options.
-
The Kubernetes API endpoints
/v2/kubernetes/clusters/<cluster ID>/kubeconfigand/v2/kubernetes/clusters/<cluster ID>/credentialsnow require API tokens to have write scope.
September 2023
27 September
-
We have added Swagger functionality to the API documentation. Using an API key, you can now use the Swagger’s “Try it out” feature to interact with the API from the documentation.
August 2023
24 August
-
The 429 error response to reaching our API’s burst rate limit now includes a Retry-After header to indicate how long to wait (in seconds) before retrying a request. This additional header enables the configuration of automatic retries and exponential backoffs in DigitalOcean clients such as doctl, Terraform, and Godo. Learn more about our API burst limit structure in our API Documentation.
18 August
-
Released v1.98.0 of doctl, the official DigitalOcean CLI. This release adds support for automatically retrying API requests that fail with a 429 or 500-level error. The number of attempts can be configured using the
--http-retry-maxflag orDIGITALOCEAN_HTTP_RETRY_MAXenvironment variable. To disable retries altogether, set to0.
July 2023
10 July
-
Released v1.97.0 of doctl, the official DigitalOcean CLI. This release updates the default behavior of the
doctl registry logincommand to set a 30-day expiry for the registry API token that is created when logging in. The previous default behavior was to create a registry API token that did not expire.To create a registry API token that does not expire, you can set the new
--never-expireflag totrue. To set a different expiry time than the default 30 days, you can set the--expiry-secondsflag to an integer representing the number of seconds until the token should expire.This also adds support for interacting with uptime checks via
doctl. Please see thedoctl monitoring uptimecommand reference for more information.
May 2023
5 May
-
Released v1.94.0 of doctl, the official DigitalOcean CLI. This release updates the
doctl auth initprompt and deprecates the--algorithmflag for load balancer sub-commands.
January 2023
6 January
-
Released v1.92.0 of doctl, the official DigitalOcean CLI. This release updates the
doctl auth initprompt and deprecates the--algorithmflag for load balancer sub-commands.
December 2022
16 December
-
Released v1.91.0 of doctl, the official DigitalOcean CLI. This release adds support for creating and updating firewall rules for load balancers.
12 December
-
Released v1.89.0 of doctl, the official DigitalOcean CLI. This release adds support for creating serverless namespaces in the
syd1region and creating monitoring alert policies for load balancer metrics.
November 2022
22 November
-
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.
16 November
-
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.
15 November
-
Released v1.86.0 of doctl, the official DigitalOcean CLI. This release includes new
doctl apps list-buildpacksanddoctl apps upgrade-buildpacksubcommands allowing you to manually upgrade an app’s buildpacks to their latest major versions.
October 2022
18 October
-
Released v1.84.0 of doctl, the official DigitalOcean CLI. This release adds a
--waitflag to thedoctl database createsubcommand.
7 October
-
Released v1.83.0 of doctl, the official DigitalOcean CLI. This release adds updated confirmation dialogs and a
--waitflag to thedoctl compute load-balancer createsubcommand.
September 2022
28 September
-
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.
20 September
-
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
--regionflag an optional argument for thecompute droplet createsub-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 regionsfoto 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.
9 September
-
The Rocky 9 (
rockylinux-9-x64) base image is now available in the control panel and via the API.
August 2022
15 August
-
Released v1.79.0 of doctl, the official DigitalOcean CLI. This release adds several
databases optionssub-commands you can use to look up create-time options for database clusters, such as supported engines and versions.
10 August
-
Debian 9 has reached end of life. Per our image deprecation policy, this image is now only available via the API. We will remove the Debian 9 image from our platform in 30 days.
8 August
-
The Rocky 8.6 (
rockylinux-8-x64) base image is now available in the control panel and via the API.
July 2022
12 July
-
The DigitalOcean API now supports listing Droplets by name by using the
namequery parameter, as inGET /v2/droplets?name="your_droplet_name". Learn more in the API documentation.
June 2022
30 June
-
Released v1.78.0 of doctl, the official DigitalOcean CLI. This release renames the
sandboxcommands toserverless. Aliases are provided for backwards compatibility. Additionally, the output of theaccount getcommand now includes the name of the active team.
27 June
-
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, andapi.digitalocean.com.
16 June
-
Released v1.77.0 of doctl, the official DigitalOcean CLI. This release deprecates the
floating-ipcommands in favor of the newreserved-ipones.
6 June
-
When creating a Droplet via the API, we now release the Droplet’s IP address when it is in the
activestate, instead of thenewstate.
May 2022
23 May
-
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.
10 May
-
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.
3 May
-
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.
March 2022
31 March
-
Released v1.73.0 of doctl, the official DigitalOcean CLI. This release updates godo to support new App Platform features.
29 March
-
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 paneldoo_v1_for tokens generated by application using the OAuth flowdor_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_registryresource.
28 March
-
Released v1.72.0 of doctl, the official DigitalOcean CLI. This release introduces new
doctl compute tag applyanddoctl compute tag removecommands that support using tags with multiple resources in a single operation.
17 March
-
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_uuidandteam_nameattributes inside of theinfoobject.
15 March
-
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-regionscommand.
8 March
-
v2.18.0 of the DigitalOcean Terraform Provider is now available. This release adds a new
digitalocean_spaces_bucket_policyresource as well as support for configuring log destinations and alert policies in thedigitalocean_appresource.
4 March
-
You can now configure your MySQL, PostgreSQL, and Redis managed databases by making a
PATCHrequest 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
9 February
-
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
27 January
-
Released v1.70.0 of doctl, the official DigitalOcean CLI. This release adds support for App Platform features, such as
AppDomainSpec.Certificate,MinimumTLSVersion,appServiceSpecHealthCheck.Portand more.
14 January
-
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 savesub-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
7 December
-
Released v1.68.0 of doctl, the official DigitalOcean CLI. This release contains improvements to the
registrysubcommands including: revoking credentials onlogoutand a newlist-manifestssubcommand.
November 2021
10 November
-
Released v1.67.0 of doctl, the official DigitalOcean CLI. This release updates godo to support new App Platform features.
8 November
-
v2.16.0 of the DigitalOcean Terraform Provider is now available. This release adds support for:
- Scaling load balancers using the
size_unitfield. source_kubernetes_idsanddestination_kubernetes_idsattributes for Kubernetes firewall rules.
It also includes bug fixes.
- Scaling load balancers using the
1 November
-
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
--upsertflag for thedoctl apps createcommand 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
12 October
-
Released v1.65.0 of doctl, the official DigitalOcean CLI. This release includes a number of new features:
- The
--haflag was added to thekubernetes cluster createsub-command to optionally create a cluster configured with a highly-available control plane. This feature is in early availability - The
kubernetes clustersub-commands now include a “Support Features” field when displaying version options - The
--disable-lets-encrypt-dns-recordsflag was added to thecompute load-balancer createsub-command to optionally disable automatic DNS record creation for Let’s Encrypt certificates that are added to the load balancer
- The
7 October
-
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.
5 October
-
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
24 September
-
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
20 August
-
Released v1.64.0 of doctl, the official DigitalOcean CLI. This release includes support for managing App Platform alerts.
9 August
-
Released v1.63.0 of doctl, the official DigitalOcean CLI. This release includes a number of new features:
- The
database firewallsub-commands now support apps as trusted sources - New
monitoring alertsub-commands for creating and managing alert policies - The
--droplet-agentflag was added to thecompute droplet createsub-command to optionally disable installing the agent for the Droplet web console
- The
2 August
-
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
9 July
-
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 logscommand now supports tailing live logs with the--tailflag. This lets application owners select the most recent logs from their applications - The
--waitflag was added toapps createandapps updateto block these commands until an application is fully created or updated
- The
June 2021
29 June
-
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.
May 2021
27 May
-
v2.7.0 of the DigitalOcean Terraform Provider is now available. This release adds support for distributing images to multiple regions.
6 May
-
Released v1.60.0 of doctl, the official DigitalOcean CLI. This release introduces an
auth removesub-command to simplify removing an auth context when managing multiple accounts. Thedatabases user resetsub-command now supports resetting the user password for all database engine types.
5 May
-
We have updated the Floating IP API responses to better align with our newer API models. The
dropletandregionfields now use the same response models used in the/v2/dropletsand/v2/regionsendpoints. Specifically:- The
private_networkingfeature is now displayed under thefeaturesfield underdropletinstead of thefeaturesfield underregion. - The
vpc_uuidfield now populates with the correct values. - The Droplet’s
typedisplaysbasewhen the Droplet uses a base image (i.e. Ubuntu, CentOS). - The Droplet’s
networksfield now includes private and floating IP addresses, if applicable.
- The
April 2021
13 April
-
Released v1.59.0 of doctl, the official DigitalOcean CLI. This release includes a new
apps proposesub-command and improvements to theapps spec validatesub-command.
March 2021
29 March
-
Released v1.58.0 of doctl, the official DigitalOcean CLI. This release adds a
--waitflag to theapps create-deploymentcommand which blocks until the deployment is complete. By default, theregistry kubernetes-manifestnow 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.
10 March
-
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_firewalldata source.
February 2021
22 February
-
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.
10 February
-
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-Click Apps to existing clusters.
3 February
-
v2.5.0 of the DigitalOcean Terraform Provider is now available. This release adds a number of improvements to the
digitalocean_appresource including: support for images as a component source, support for job components, support forinternal_portsfor services, and support for wildcard domains.
January 2021
21 January
-
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.
19 January
-
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_appresource, bug fixes, and other improvements.
December 2020
7 December
-
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
sizefield. The available size values arelb-small,lb-medium, orlb-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.
4 December
-
Released v1.54.0 of doctl, the official DigitalOcean CLI. This release user confirmation before container registry garbage collection is started.
3 December
-
v2.3.0 of the DigitalOcean Terraform Provider is now available. This release includes support for configuring the
sizeof adigitalocean_loadbalancerresource. OpenBSD binaries are now built and available for download.
1 December
-
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 access to these plans.
You can view Droplet plans, the resources they provide, and the size slug used to identify them programmatically by querying the
/v2/sizesendpoint.
November 2020
24 November
-
Released v1.53.0 of doctl, the official DigitalOcean CLI. This release adds support for container registry garbage collection of untagged manifests.
12 November
-
v2.2.0 of the DigitalOcean Terraform Provider is now available. This release adds a new
digitalocean_ssh_keysdata source and adigitalocean_custom_imageresource.
10 November
-
Released v1.52.0 of doctl, the official DigitalOcean CLI. This release adds a
--force-rebuildflag todoctl apps create-deployment.
6 November
-
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_registryresource now requires setting asubscription_tier_slugwhich is supported with this release.
3 November
-
Released v1.51.0 of doctl, the official DigitalOcean CLI. This release add support for managing DigitalOcean Container Registry subscriptions.
2 November
-
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
30 October
-
Released v1.50.0 of doctl, the official DigitalOcean CLI. This release includes a number for new features and improvements. It includes new
doctl appssub-commands to retrieve information about App Platform pricing plan tiers, instance sizes, and regions. Thedoctl registrysub-command now supports managing garbage collection for container registries.
28 October
-
Released v1.49.0 of doctl, the official DigitalOcean CLI. This release includes the ability to update the default VPC for a region, the ability to set an expiration time when downloading kubeconfig files, and more.
20 October
-
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_recordsdata source.
19 October
-
You can now update a VPC network to be the default VPC network for a region using the
PUT /v2/vpcs/$VPC_IDandPATCH /v2/vpcs/$VPC_IDendpoints.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.
13 October
-
v1.23.0 of the DigitalOcean Terraform Provider is now available. This release introduces a new
digitalocean_appresource with support for DigitalOcean App Platform.
6 October
-
Released v1.48.0 of doctl, the official DigitalOcean CLI. This release promotes
doctl appscommands 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
POSTrequest to the/v2/kubernetes/clusters/<cluster-id>/node_poolsand the/v2/kubernetes/clustersendpoints, or you can update existing pools by submitting aPUTrequest 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", } ] }
5 October
-
Released v1.47.0 of doctl, the official DigitalOcean CLI. This release adds support for setting Kubernetes node pool taints.
1 October
-
All Droplets created after 1 October 2020 are placed into a VPC network by default. The
enable_private_networkingaction andprivate_networkparameter have been deprecated. Use thevpc_uuidparameter to specify the VPC network for your Droplets.You can migrate existing Droplets into VPC networks using Snapshots.
July 2020
22 July
-
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_upgradeandsurge_upgradesupport for thedigitalocean_kubernetes_clusterresource.
20 July
-
v1.21.0 of the DigitalOcean Terraform Provider is now available. This release includes the addition of
httpsto the list of acceptable health check protocols for thedigitalocean_loadbalancerresource.
6 July
-
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
15 June
-
v1.20.0 of the DigitalOcean Terraform Provider is now available. This release includes the addition of a
digitalocean_tagsdata source and improvements to other tag-related resources.
10 June
-
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 logincommand. To grant access doctl access to your Docker configuration, runsnap connect doctl:dot-docker.
9 June
-
Listing records for a domain now supports filtering by both
nameandtypeusing 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 matchingsub.example.com, send a GET request to/v2/domains/$DOMAIN_NAME/records?name=sub.example.com.namemust be a fully qualified record name. Bothnameandtypemay be used together to further filter the records returned. -
The response body to
POSTrequests creating multiple Droplets has been extended to include anactionslink 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.
3 June
-
v1.19.0 of the DigitalOcean Terraform Provider is now available. This release includes initial support the DigitalOcean Container Registry.
2 June
-
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 loginas part of a CI/CD process. A newdoctl 1-click listsubcommand is now also available. -
Released v1.45.0 of doctl, the official DigitalOcean CLI. This release includes new
doctl kubernetes 1-click listanddoctl compute droplet 1-click listsubcommands.
May 2020
6 May
-
It is now possible to adjust the behavior of the OAuth authorization flow by specifying a
promptand/ormax_auth_agequery parameter:- The
promptquery parameter can be used to specify how the authorizing user should be authenticated. - The
max_auth_agequery 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.
- The
5 May
-
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
29 April
-
Users can now use the API to destroy select resources associated with a Droplet when destroying a Droplet. You can destroy snapshots, volumes, or volume snapshots associated with a Droplet.
-
It is now possible to destroy snapshots, volumes, and volume snapshots associated with a Droplet while destroying the Droplet itself in a single request. A number of new related endpoints are now available:
- To list the resources that can be destroyed along with the Droplet, send a GET request to the
/v2/droplets/$DROPLET_ID/destroy_with_associated_resourcesendpoint. - To destroy a Droplet along and a sub-set of its associated resources, send a DELETE request to the
/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/selectiveendpoint. - To destroy a Droplet along with all of its associated resources, send a DELETE request to the
/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/dangerousendpoint. - To check on the status of a request to destroy a Droplet with its associated resources, send a GET request to the
/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/statusendpoint. - If the status reported any errors, the destroy request can be retried by sending a POST request to the
/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/retryendpoint.
- To list the resources that can be destroyed along with the Droplet, send a GET request to the
28 April
-
Released v1.43.0 of doctl, the official DigitalOcean CLI. This release updates container registry features from beta to early access.
-
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.
23 April
-
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.
14 April
-
v1.16.0 of the DigitalOcean Terraform Provider is now available. This release includes VPC support and expanded Spaces support.
10 April
-
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.
7 April
-
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
POSTto the/v2/vpcsendpoint 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_networkingattribute 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 newvpc_uuidattribute 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_uuidKubernetes cluster vpc_uuidLoad balancer vpc_uuidDatabase cluster private_networking_uuid
March 2020
18 March
-
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.
4 March
-
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_passwordauthentication plug-in.For example, to create a new MySQL user using the
mysql_native_passwordauthentication plug-in, send a POST request to/v2/databases/$DATABASE_ID/userswith 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
6 February
-
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.
5 February
-
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.
4 February
-
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=webandpriority=highis done by submitting aPUTrequest 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
27 January
-
v1.13.0 of the DigitalOcean Terraform Provider is now available. This release adds support for tagging managed databases clusters.
14 January
-
Released v1.37.0 of doctl, the official DigitalOcean CLI. This release adds the ability to retrieve account balances.
13 January
-
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
GETrequest 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
2 December
-
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_neighborsendpoint. 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
21 November
-
Users can now use the DigitalOcean API to set and modify trusted sources for managed databases to restrict incoming connections.
-
MySQL managed database clusters now support setting the global SQL mode via the control panel and the API. See How to Set Global SQL Mode on MySQL Clusters for more information.
20 November
-
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/firewallendpoint, 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 aPUTrequest 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_modeendpoint. For example, the body aPUTrequest 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.
August 2019
22 August
-
The
/v2/volumes?name=$VOLUME_NAMEendpoint 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.
20 August
-
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
engineattribute to select which type of database to use (mysqlfor MySQL orredisfor Redis). For example, to create a new Redis cluster, make aPOSTto the/v2/databasesendpoint 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.
19 August
-
Floating IP Address rate limit information was added to the DigitalOcean API Documentation.
June 2019
25 June
-
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.
May 2019
30 May
-
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_connectionobject holding the information needed to access the resource via the private network. Its attributes are identical to the existingconnectionobject, but the values forprivate_connection.uriandprivate_connection.hostwill 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.
21 May
-
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_upgradeattribute totruewill 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
upgradeendpoint is now available to imminently trigger an upgrade to a newer patch release of Kubernetes at your own convenience. You may list available upgrades for your cluster using theupgradesendpoint. -
In order to give users finer control over individual nodes, the
recycleendpoint 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 theskip_drain=1query parameter to the request will cause the node to be imminently deleted. Appending thereplace=1query 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.
-
April 2019
16 April
-
The
/v2/volumes/$volume_id/snapshotsendpoint now accepts tags at creation time, and these are reflected on the/v2/snapshotsendpoint. Volume snapshot tags may now be managed with the/v2/tagsendpoint as well. For more information, see the API reference documentation for both volumes and tags.
9 April
-
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_domainattribute to use a subdomain with the endpoint. When a custom subdomain is in use, thecertificate_idattribute 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
19 March
-
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_protocolattribute totruewhen 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
26 February
-
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-04is available now.
15 February
-
As announced on 5 September 2018, the
last_taggedattribute returned in response to GET requests to the/v2/tagsor/v2/tags/$TAG_NAMEendpoints has been deprecated. Beginning 1 March 2019,last_taggedis no longer populated in favor of thelast_tagged_uriattribute.For example, a GET request to
/v2/tags/frontendcurrently 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.
14 February
-
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
POSTto the/v2/databasesendpoint 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
statusattribute 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.
5 February
-
The
/v2/volumesendpoint now displays tags and supports adding them to volumes at creation time. Volume tags may now be managed with the/v2/tagsendpoint as well. For more information, see the API reference documentation for both volumes and tags.
January 2019
16 January
-
The deprecated 16.04 One-Click LAMP slug,
lamp-16-04, was removed from the API.
December 2018
11 December
-
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 can 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-2gbDroplets, make aPOSTto the/v2/kubernetes/clustersendpoint 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 includes a full JSON representation of the cluster. The initial value of the cluster’s
status.stateattribute is “provisioning.” When the cluster is ready for use, this transitions to “running.” You can use the/v2/kubernetes/optionsendpoint 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 is 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
26 November
-
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.
13 November
-
Ubuntu 16.04 One-Click application images were removed from the API.
October 2018
16 October
-
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/projectsendpoint 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/resourcesincluding 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
27 September
-
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
DELETErequest to/v2/cdn/endpoints/$ENDPOINT_ID/cache. The body of the request should include afilesattribute 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.
25 September
-
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
POSTto the/v2/imagesendpoint, you can create a new custom image. The request must contain aurlattribute 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.
5 September
-
When listing or getting tags by sending a GET request to
/v2/tagsor/v2/tags/$TAG_NAME, the response payload currently includes alast_taggedvalue inside the tag’sresources.dropletscontaining 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, 2019last_taggedwill no longer be populated in favor of the newlast_tagged_uriattribute introduced today.For all resources (and each resource type supported), the
last_tagged_uriattribute 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
countattribute describing how many resources overall have been tagged with the tag in question has been added. Each individual resource type will continue providing acountattribute.If you need guidance on transitioning from using
last_taggedto using of the newlast_tagged_uriattribute, reach out to the team by opening a support ticket.
June 2018
22 June
-
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
22 May
-
The
/v2/volumesendpoint has been updated to support automatically formatting the filesystem of newly created volumes. Volume resources now expose two new attributes:filesystem_typeandfilesystem_label. They can be used to specify the filesystem and the label to be applied. Currently, the available filesystem types areext4andxfs.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/volumesAdditionally, 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_typeattribute is not provided, volumes will continue to be presented as raw block devices and require additional configuration.When retrieving an existing volume,
filesystem_typeandfilesystem_labelwill 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.
8 May
-
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
typeattribute must be set tolets_encryptwhen using Let’s Encrypt. If omitted, it will default tocustomin 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.
January 2018
29 January
-
Spaces now support:
- Version 4 of presigned 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.
16 January
-
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/sizesendpoint.
September 2017
13 September
-
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.comtoletsencrypt.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/recordsFor more information on how to use CAA records, see this tutorial on our community site.
April 2017
14 April
-
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
PUTrequest. See the domain record documentation for further information.
March 2017
28 March
-
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
10 November
-
You may now pass
tagsas 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
5 October
-
API v2 now supports volume snapshots, and exposes a unified snapshot endpoint for volume and Droplet snapshots.
April 2016
13 April
-
Size objects now contain a
size\_gigabytesattribute which represents the physical size of the image in gigabytes. For more information see the images documentation.
March 2016
22 March
-
API v2 now supports tagging and managing tagged droplets.
December 2015
14 December
-
API v2 now supports creating multiple droplets simultaneously.
November 2015
24 November
-
Account objects now contain a
floating\_ip\_limitattribute which provides the maximum number of floating IPs that may be provisioned by the account. For more information, see the account documentation.
5 November
-
API V2 now supports enabling backups on a Droplet.
July 2015
20 July
-
Account objects now contain
statusandstatus_messageattributes, describing whether an account is locked, active or has a pending warning. For more information, see the account documentation.
14 July
-
We’ve deprecated final (temporary) snapshots and therefore
temporaryis no longer an acceptable value fortypefor a snapshot.
May 2015
20 May
-
The access token response from the OAuth API now returns a canonical UUID for an account. This should be used to canonically identify a user.
1 May
-
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
2 April
-
We are very pleased to announce that API v2 is no longer in beta. Thank you to everyone who helped report bugs and suggest features during the beta period. Read more about this release on our blog.
March 2015
25 March
-
The Image action endpoint now responds to a
convertattribute, that allows backups and temporary snapshots to be saved permanently as snapshots. For more information, see the image actions documentation.
11 March
-
Images objects now return a
typeattribute, describing whether they are snapshots, backups or temporary images. For more information, see the images documentation.
4 March
-
Size objects now expose an
availableboolean attribute, which represents whether new Droplets can be created with the size.
February 2015
20 February
-
All action objects, i.e. those returned by the
/v2/actions,/v2/droplets/$ID/actionsand/v2/images/$ID/actionsendpoint now return aregion_slugattribute, in addition to aregionattribute. At 00:01 March 20, 2015 UTC, API v2 will start returning an embedded region object at theregionattribute, 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 } }
10 February
-
Two new endpoints in API v2 report if droplets are running on the same physical hardware. They exist for an individual droplet or for an entire account.
8 February
-
The maximum allowed rate limit per O-Auth token has been increased to 5,000 requests/hour.
January 2015
22 January
-
The images now supports a
privatefilter 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.
20 January
-
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
6 November
-
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
27 October
-
The JSON object for a droplet no longer contains a nested Size object, but rather a slug called
size_slugthat references a Size object. See the droplet docs for the updated structure.The Image JSON object now includes a
min_disk_sizeattribute 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’smin_disk_size.
August 2014
20 August
-
Remove embedded
action_idsfrom Droplet and Image.
July 2014
25 July
-
Both
price_monthlyandprice_hourlywere previously strings. This made them harder to work with so we have turned them into floats.
2 July
-
We have tweaked the
per_pagelimits 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.
June 2014
25 June
-
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.
24 June
-
It seems adding
X-to custom HTTP headers is going out of style, so we have changed our RateLimit headers to no longer include the X.They now look like this:
RateLimit-Limit: RateLimit-Remaining: RateLimit-Reset: