API Changelog Directory

DigitalOcean API Changelog

Cloud

The DigitalOcean public API — droplets, Kubernetes, databases, networking and App Platform.

DigitalOcean docs ↗Official OpenAPI spec ↗Last checked Sep 11, 202610 changes tracked
Watching

Get emailed when DigitalOcean API changes

We already watch this spec — add your email and we'll alert you on every change, breaking ones first. Free, no credit card, one click to stop.

Change history

Rebuilt automatically from the official OpenAPI spec. Every entry is a real diff — nothing is hand-written.

version 2.02.0

ChangeTypeSeverityWhy it matters
PUT /v2/databases/{database_cluster_uuid}/schema-registry/configsecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
PUT /v2/databases/{database_cluster_uuid}/schema-registry/configsecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
PUT /v2/databases/{database_cluster_uuid}/schema-registry/configsecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": database:update
PUT /v2/databases/{database_cluster_uuid}/schema-registry/configsecurity security scope removedOKEndpoint: scope removed from "bearer_auth": database:write
PUT /v2/databases/{database_cluster_uuid}/schema-registry/config/{subject_name}security security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
PUT /v2/databases/{database_cluster_uuid}/schema-registry/config/{subject_name}security security requirement removedOKEndpoint: security requirement removed (bearer_auth)
PUT /v2/databases/{database_cluster_uuid}/schema-registry/config/{subject_name}security security scope addedPotentialEndpoint: scope added to "bearer_auth": database:update
PUT /v2/databases/{database_cluster_uuid}/schema-registry/config/{subject_name}security security scope removedOKEndpoint: scope removed from "bearer_auth": database:write
GET /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
GET /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
GET /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": dedicated_inference_token:read
GET /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": dedicated_inference_tokens:read
POST /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
POST /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
POST /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": dedicated_inference_token:create
POST /v2/dedicated-inferences/{dedicated_inference_id}/tokenssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": dedicated_inference_tokens:create
DELETE /v2/dedicated-inferences/{dedicated_inference_id}/tokens/{token_id}security security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
DELETE /v2/dedicated-inferences/{dedicated_inference_id}/tokens/{token_id}security security requirement removedOKEndpoint: security requirement removed (bearer_auth)
DELETE /v2/dedicated-inferences/{dedicated_inference_id}/tokens/{token_id}security security scope addedPotentialEndpoint: scope added to "bearer_auth": dedicated_inference_token:delete
DELETE /v2/dedicated-inferences/{dedicated_inference_id}/tokens/{token_id}security security scope removedOKEndpoint: scope removed from "bearer_auth": dedicated_inference_tokens:delete
GET /v2/nfssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
GET /v2/nfssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
GET /v2/nfssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": nfs:read
GET /v2/nfssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": nfs:list
GET /v2/nfs/snapshotssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
GET /v2/nfs/snapshotssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
GET /v2/nfs/snapshotssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": nfs:read
GET /v2/nfs/snapshotssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": nfs:list
GET /v2/nfs/shares/{share_id}/access_pointssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
GET /v2/nfs/shares/{share_id}/access_pointssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
GET /v2/nfs/shares/{share_id}/access_pointssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": nfs:read
GET /v2/nfs/shares/{share_id}/access_pointssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": nfs:list
GET /v2/organizations/teamssecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
GET /v2/organizations/teamssecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
GET /v2/organizations/teamssecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": organization_membership:read_teams
GET /v2/organizations/teamssecurity security scope removedOKEndpoint: scope removed from "bearer_auth": organization:read
POST /v2/partner_network_connect/attachments/{pa_id}/service_keysecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
POST /v2/partner_network_connect/attachments/{pa_id}/service_keysecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
POST /v2/partner_network_connect/attachments/{pa_id}/service_keysecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": partner_network_connect:update
POST /v2/partner_network_connect/attachments/{pa_id}/service_keysecurity security scope removedOKEndpoint: scope removed from "bearer_auth": partner_network_connect:write
PATCH /v2/byoip_prefixes/{byoip_prefix_uuid}security security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
PATCH /v2/byoip_prefixes/{byoip_prefix_uuid}security security requirement removedOKEndpoint: security requirement removed (bearer_auth)
PATCH /v2/byoip_prefixes/{byoip_prefix_uuid}security security scope addedPotentialEndpoint: scope added to "bearer_auth": byoip_prefix:update
PATCH /v2/byoip_prefixes/{byoip_prefix_uuid}security security scope removedOKEndpoint: scope removed from "bearer_auth": byoip_prefix:write
PATCH /v2/gen-ai/custom_models/{uuid}/metadatasecurity security requirement addedPotentialEndpoint: security requirement added (bearer_auth)
PATCH /v2/gen-ai/custom_models/{uuid}/metadatasecurity security requirement removedOKEndpoint: security requirement removed (bearer_auth)
PATCH /v2/gen-ai/custom_models/{uuid}/metadatasecurity security scope addedPotentialEndpoint: scope added to "bearer_auth": genai:update
PATCH /v2/gen-ai/custom_models/{uuid}/metadatasecurity security scope removedOKEndpoint: scope removed from "bearer_auth": genai:default

version 2.02.0

ChangeTypeSeverityWhy it matters
POST /v2/droplets/{droplet_id}/actionsdescription updatedOKSummary or description text changed. No contract impact.
POST /v2/droplets/actionsdescription updatedOKSummary or description text changed. No contract impact.

version 2.02.0

ChangeTypeSeverityWhy it matters
POST /v2/load_balancersrequest body allOf addedPotentialallOf added with 2 schema(s)
POST /v2/load_balancersrequest body oneOf removedBreakingoneOf removed
PUT /v2/load_balancers/{lb_id}request body property removedPotentialRemoved (was optional)
POST /v2/vpc_nat_gatewaysrequest body property addedOKAdded (optional)
components/schemas/load_balancer_base.ipproperty removedBreakingRemoved
components/schemas/load_balancerallOf count changedOKallOf: 4 → 5 schema(s)
components/schemas/load_balancer.(root).allOf[0].ipproperty removedBreakingRemoved
components/schemas/load_balancer.(root).allOf[1].regionproperty removedBreakingRemoved
components/schemas/load_balancer.(root).allOf[1].ipproperty addedOKAdded
components/schemas/load_balancer.(root).allOf[2].droplet_idsproperty removedBreakingRemoved
components/schemas/load_balancer.(root).allOf[2].regionproperty addedOKAdded
components/schemas/load_balancer.(root).allOf[3].tagproperty removedBreakingRemoved
components/schemas/load_balancer.(root).allOf[3].droplet_idsproperty addedOKAdded
components/schemas/load_balancer_createallOf addedOKallOf added with 2 schema(s)
components/schemas/load_balancer_createoneOf removedBreakingoneOf removed
components/schemas/vpc_nat_gateway_create.egressesproperty addedOKAdded
components/schemas/load_balancer_updateschema addedOKShared schema "load_balancer_update" was added.

version 2.02.0

ChangeTypeSeverityWhy it matters
POST /v2/kubernetes/clustersrequest body allOf count changedOKallOf: 2 → 3 schema(s)
POST /v2/kubernetes/clustersrequest body property addedOKAdded (optional)
POST /v2/kubernetes/clustersrequest body property addedOKAdded (optional)
PUT /v2/kubernetes/clusters/{cluster_id}request body property addedOKAdded (optional)
PUT /v2/kubernetes/clusters/{cluster_id}request body property addedOKAdded (optional)
POST /v2/kubernetes/clusters/{cluster_id}/node_poolsrequest body allOf count changedOKallOf: 2 → 3 schema(s)
components/schemas/kubernetes_node_poolallOf count changedOKallOf: 2 → 3 schema(s)
components/schemas/cluster_read.node_pools[]allOf count changedOKallOf: 2 → 3 schema(s)
components/schemas/cluster_read.nvidia_gpu_dra_driverproperty addedOKAdded
components/schemas/cluster_read.amd_gpu_dra_driverproperty addedOKAdded
components/schemas/cluster.node_pools[]allOf count changedOKallOf: 2 → 3 schema(s)
components/schemas/cluster.nvidia_gpu_dra_driverproperty addedOKAdded
components/schemas/cluster.amd_gpu_dra_driverproperty addedOKAdded
components/schemas/cluster_update.nvidia_gpu_dra_driverproperty addedOKAdded
components/schemas/cluster_update.amd_gpu_dra_driverproperty addedOKAdded
components/schemas/kubernetes_node_pool_gpu_partitionschema addedOKShared schema "kubernetes_node_pool_gpu_partition" was added.
components/schemas/nvidia_gpu_dra_driverschema addedOKShared schema "nvidia_gpu_dra_driver" was added.
components/schemas/amd_gpu_dra_driverschema addedOKShared schema "amd_gpu_dra_driver" was added.

version 2.02.0

ChangeTypeSeverityWhy it matters
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "search" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "model_type" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "provider" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "availability" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "badges" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "sort_by" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "per_page" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "sort_direction" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter addedOKNew optional parameter "use_case" (in query). Existing requests keep working.
GET /v2/gen-ai/models/catalogparameter "page" modifiedOKdescription changed
GET /v2/gen-ai/models/catalogparameter "limit" modifiedOKdescription changed
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_availability": Added (optional)
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_badges": Added (optional)
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_model_types": Added (optional)
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_providers": Added (optional)
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_sort_by": Added (optional)
GET /v2/gen-ai/models/catalogresponse 200 property addedOKResponse 200 field "available_sort_directions": Added (optional)
components/schemas/apiListModelCatalogOutput.available_availabilityproperty addedOKAdded
components/schemas/apiListModelCatalogOutput.available_badgesproperty addedOKAdded
components/schemas/apiListModelCatalogOutput.available_model_typesproperty addedOKAdded
components/schemas/apiListModelCatalogOutput.available_providersproperty addedOKAdded
components/schemas/apiListModelCatalogOutput.available_sort_byproperty addedOKAdded
components/schemas/apiListModelCatalogOutput.available_sort_directionsproperty addedOKAdded
components/schemas/apiModelCatalogSortByschema addedOKShared schema "apiModelCatalogSortBy" was added.
components/schemas/apiSortDirectionschema addedOKShared schema "apiSortDirection" was added.

version 2.02.0

ChangeTypeSeverityWhy it matters
components/schemas/disk_info.typeenum values removedPotentialRemoved: remote
components/schemas/disk_info.typeenum values addedOKAdded: boot
components/schemas/size.disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/size.disk_info[].typeenum values addedOKAdded: boot
components/schemas/droplet.disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/droplet.disk_info[].typeenum values addedOKAdded: boot
components/schemas/floating_ip.droplet.anyOf[1].disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/floating_ip.droplet.anyOf[1].disk_info[].typeenum values addedOKAdded: boot
components/schemas/reserved_ip.droplet.anyOf[1].disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/reserved_ip.droplet.anyOf[1].disk_info[].typeenum values addedOKAdded: boot
components/schemas/reserved_ipv6_list.reserved_ipv6s[].droplet.anyOf[1].disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/reserved_ipv6_list.reserved_ipv6s[].droplet.anyOf[1].disk_info[].typeenum values addedOKAdded: boot
components/schemas/reserved_ipv6.droplet.anyOf[1].disk_info[].typeenum values removedPotentialRemoved: remote
components/schemas/reserved_ipv6.droplet.anyOf[1].disk_info[].typeenum values addedOKAdded: boot

version 2.02.0

ChangeTypeSeverityWhy it matters
POST /v2/kubernetes/clustersrequest body property addedOKAdded (optional)
components/schemas/cluster_read.isolated_workersproperty addedOKAdded
components/schemas/cluster.isolated_workersproperty addedOKAdded

version 2.02.0

ChangeTypeSeverityWhy it matters
GET /v2/security/secretsendpoint removedBreakingEndpoint GET /v2/security/secrets was removed without deprecation. Any consumer calling it will fail immediately.
POST /v2/security/secretsendpoint removedBreakingEndpoint POST /v2/security/secrets was removed without deprecation. Any consumer calling it will fail immediately.
GET /v2/security/secrets/{secret}endpoint removedBreakingEndpoint GET /v2/security/secrets/{secret} was removed without deprecation. Any consumer calling it will fail immediately.
PUT /v2/security/secrets/{secret}endpoint removedBreakingEndpoint PUT /v2/security/secrets/{secret} was removed without deprecation. Any consumer calling it will fail immediately.
DELETE /v2/security/secrets/{secret}endpoint removedBreakingEndpoint DELETE /v2/security/secrets/{secret} was removed without deprecation. Any consumer calling it will fail immediately.
GET /v2/security/secrets/{secret}/versionsendpoint removedBreakingEndpoint GET /v2/security/secrets/{secret}/versions was removed without deprecation. Any consumer calling it will fail immediately.
POST /v2/security/secrets/{secret}/restoreendpoint removedBreakingEndpoint POST /v2/security/secrets/{secret}/restore was removed without deprecation. Any consumer calling it will fail immediately.
components/schemas/secret_list_itemschema removedBreakingShared schema "secret_list_item" was removed. Endpoints referencing it changed shape.
components/schemas/create_secret_responseschema removedBreakingShared schema "create_secret_response" was removed. Endpoints referencing it changed shape.
components/schemas/secretschema removedBreakingShared schema "secret" was removed. Endpoints referencing it changed shape.
components/schemas/secret_versionschema removedBreakingShared schema "secret_version" was removed. Endpoints referencing it changed shape.

version 2.02.0

ChangeTypeSeverityWhy it matters
POST /v2/organizations/teamendpoint addedOKNew endpoint POST /v2/organizations/team added. Existing consumers are unaffected.
GET /v2/organizations/teamsendpoint addedOKNew endpoint GET /v2/organizations/teams added. Existing consumers are unaffected.
components/schemas/team_invitationschema addedOKShared schema "team_invitation" was added.
components/schemas/create_team_requestschema addedOKShared schema "create_team_request" was added.
components/schemas/create_teamschema addedOKShared schema "create_team" was added.
components/schemas/team_invitation_statusschema addedOKShared schema "team_invitation_status" was added.
components/schemas/organization_teamschema addedOKShared schema "organization_team" was added.

version 2.02.0

ChangeTypeSeverityWhy it matters
PUT /v2/databases/{database_cluster_uuid}/firewalldescription updatedOKSummary or description text changed. No contract impact.

This is what your consumers wish your API had.

Point us at your own OpenAPI spec and get the same automatic changelog, plus email alerts and breaking-change classification on every release.