The DigitalOcean connector lets your AI agent act in each user's DigitalOcean account. Each user signs in to DigitalOcean once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 120 tools.
- Tools
- 120
- What they doRead · write · destructive
- 63 · 36 · 2163 read36 write21 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own DigitalOcean app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the DigitalOcean connection
In AgentKit > Connections, create a DigitalOcean connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
DigitalOcean connections use your own OAuth app. Register one with DigitalOcean and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the DigitalOcean connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'digitalocean'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize DigitalOcean:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'digitalocean_account_get',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "digitalocean"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize DigitalOcean:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="digitalocean_account_get",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooldigitalocean_account_getGet the DigitalOcean account that the connection is authorized for.Read-onlyGet Account
Get the DigitalOcean account that the connection is authorized for. Returns the account's email, UUID, status, email verification flag, team, and limits such as droplet_limit, floating_ip_limit and volume_limit. Use digitalocean_account_get to check who is connected and what limits apply. Use digitalocean_billing_balance_get for the account balance.
Inputs
This tool takes no inputs.
digitalocean_action_getGet one action by its ID, such as a Droplet power-off or a volume attach.Read-onlyGet Action
Get one action by its ID, such as a Droplet power-off or a volume attach. Returns the action's type, status (in-progress, completed, errored), resource_id, resource_type, started_at and completed_at. Use digitalocean_action_get to poll an action returned by another tool until it completes.
Inputs
action_idintegerrequired- Numeric ID of the action, as returned by an action or create tool. Example: 36804636.
digitalocean_actions_listList every action taken on the account (power events, resizes, attaches and more), newest first.Read-onlyList Actions
List every action taken on the account (power events, resizes, attaches and more), newest first. Returns a page of actions with id, type, status, resource_id, resource_type, started_at and completed_at. Use digitalocean_actions_list for an account-wide audit. Use digitalocean_droplet_actions_list for a single Droplet.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_app_deployment_getGet one deployment of an App Platform app.Read-onlyGet App Deployment
Get one deployment of an App Platform app. Returns the deployment's phase, progress (steps with status and errors), cause, spec, services and timestamps. Use digitalocean_app_deployment_get to see why a deployment failed or how far it has got. Use digitalocean_app_deployment_logs_get for its logs.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
deployment_idstringrequired- UUID of the app deployment. Get it from digitalocean_app_deployments_list or the app's active_deployment.id. Example: 3aa4d20e-5527-4c00-b496-601fbd22520a.
digitalocean_app_deployment_logs_getGet links to the logs of one deployment of an App Platform app, for all components.Read-onlyGet App Deployment Logs
Get links to the logs of one deployment of an App Platform app, for all components. Returns live_url (real-time logs for an in-progress or active deployment) and historic_urls (archived logs). Use digitalocean_app_deployment_logs_get to read build or deploy logs of a specific deployment, such as a failed one. Use digitalocean_app_logs_get for the active deployment.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
deployment_idstringrequired- UUID of the app deployment. Get it from digitalocean_app_deployments_list or the app's active_deployment.id. Example: 3aa4d20e-5527-4c00-b496-601fbd22520a.
typestringrequired- Which logs to fetch: BUILD (build output), DEPLOY (deploy output), RUN (runtime logs), RUN_RESTARTED (logs of crashed or restarted instances) or AUTOSCALE_EVENT. Example: RUN.one of
BUILDDEPLOYRUNRUN_RESTARTEDAUTOSCALE_EVENT pod_connection_timeoutstring- How long to wait for a component instance if it is not immediately available, as a duration such as 30s or 3m. Defaults to 3m.
digitalocean_app_deployments_listList the deployments of an App Platform app, newest first.Read-onlyList App Deployments
List the deployments of an App Platform app, newest first. Returns a page of deployments with id, cause, phase (PENDING_BUILD, BUILDING, DEPLOYING, ACTIVE, ERROR, CANCELED, SUPERSEDED), progress, created_at and the spec used. Use digitalocean_app_deployments_list to find a deployment ID or a failed deployment. Use digitalocean_app_deployment_get for one deployment.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
deployment_typesarray- Only return deployments of these types: MANUAL, DEPLOY_ON_PUSH, MAINTENANCE, MANUAL_ROLLBACK, AUTO_ROLLBACK, UPDATE_DATABASE_TRUSTED_SOURCES, AUTOSCALED. Example: ["MANUAL", "DEPLOY_ON_PUSH"].
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_app_getGet one App Platform app by ID.Read-onlyGet App
Get one App Platform app by ID. Returns the app's spec, live_url, default_ingress, active_deployment (with phase and progress), in_progress_deployment, last_deployment_active_at, region and project_id. Use digitalocean_app_get to see an app's configuration and current deployment. Use digitalocean_app_health_get for component health.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
digitalocean_app_health_getGet the health of an App Platform app's components.Read-onlyGet App Health
Get the health of an App Platform app's components. Returns each component's state, cpu and memory usage, and replica counts. Use digitalocean_app_health_get to check whether an app is running well. Use digitalocean_app_logs_get to read its logs.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
digitalocean_app_logs_getGet links to the logs of an App Platform app's active deployment, for all components.Read-onlyGet App Logs
Get links to the logs of an App Platform app's active deployment, for all components. Returns live_url (a real-time log stream) and historic_urls (archived log files) to download. Use digitalocean_app_logs_get for the app that is serving now. Use digitalocean_app_deployment_logs_get for a specific or in-progress deployment.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
typestringrequired- Which logs to fetch: BUILD (build output), DEPLOY (deploy output), RUN (runtime logs), RUN_RESTARTED (logs of crashed or restarted instances) or AUTOSCALE_EVENT. Example: RUN.one of
BUILDDEPLOYRUNRUN_RESTARTEDAUTOSCALE_EVENT pod_connection_timeoutstring- How long to wait for a component instance if it is not immediately available, as a duration such as 30s or 3m. Defaults to 3m.
digitalocean_apps_listList the App Platform apps in the account.Read-onlyList Apps
List the App Platform apps in the account. Returns a page of apps with id, spec (name, region, components), default_ingress URL, live_url, active_deployment, in_progress_deployment, region and timestamps. Use digitalocean_apps_list to find an app ID. Use digitalocean_app_get for one app.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 with_projectsboolean- Set to true to include each app's project_id.
digitalocean_billing_balance_getGet the account's current balance.Read-onlyGet Balance
Get the account's current balance. Returns month_to_date_balance, account_balance, month_to_date_usage and generated_at. Use digitalocean_billing_balance_get to see what is owed this month. Use digitalocean_invoices_list for past invoices.
Inputs
This tool takes no inputs.
digitalocean_billing_history_listList the account's billing history: invoices, payments and credits.Read-onlyList Billing History
List the account's billing history: invoices, payments and credits. Returns billing_history entries with description, amount, invoice_id, invoice_uuid, date and type. Use digitalocean_billing_history_list for payments and charges over time. Use digitalocean_invoices_list for invoices only.
Inputs
This tool takes no inputs.
digitalocean_database_backups_listList the available backups of a managed database cluster.Read-onlyList Database Backups
List the available backups of a managed database cluster. Not supported for Caching or Valkey clusters. Returns backups with created_at and size_gigabytes, plus scheduling details. Use digitalocean_database_backups_list to check that backups exist and when the latest ran.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_database_cluster_getGet one managed database cluster by ID.Read-onlyGet Database Cluster
Get one managed database cluster by ID. Returns the cluster's engine, version, status, region, size, num_nodes, connection and private_connection (host, port, user, password, uri), maintenance_window, users and db_names. Use digitalocean_database_cluster_get to check status or get connection details. The response includes credentials; handle them as secrets.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_database_clusters_listList the managed database clusters (PostgreSQL, MySQL, Valkey/Caching, MongoDB, Kafka, OpenSearch) in the account.Read-onlyList Database Clusters
List the managed database clusters (PostgreSQL, MySQL, Valkey/Caching, MongoDB, Kafka, OpenSearch) in the account. Returns each cluster's id, name, engine, version, status, region, size, num_nodes, connection details, tags and db_names. Use digitalocean_database_clusters_list to find a cluster ID. Use digitalocean_database_cluster_get for one cluster.
Inputs
tag_namestring- Only return clusters with this tag. Example: production.
digitalocean_database_firewall_rules_listList the firewall rules (trusted sources) of a managed database cluster.Read-onlyList Database Trusted Sources
List the firewall rules (trusted sources) of a managed database cluster. Returns rules, each with uuid, type (droplet, k8s, ip_addr, tag, app) and value. Use digitalocean_database_firewall_rules_list to see what can connect. Use digitalocean_database_firewall_rules_update to change it.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_database_getGet one database inside a managed database cluster by name.Read-onlyGet Database
Get one database inside a managed database cluster by name. Returns the database's name. Use digitalocean_database_get to confirm a database exists. Use digitalocean_databases_list to list all of them.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
database_namestringrequired- Name of the database. Example: alpha.
digitalocean_database_options_listList the engines, versions, regions and node sizes available for managed databases.Read-onlyList Database Options
List the engines, versions, regions and node sizes available for managed databases. Returns options per engine (regions, versions, layouts with num_nodes and sizes) and version_availability with end-of-life dates. Use digitalocean_database_options_list before digitalocean_database_cluster_create to pick valid values.
Inputs
This tool takes no inputs.
digitalocean_database_user_getGet one user of a managed database cluster.Read-onlyGet Database User
Get one user of a managed database cluster. Returns the user's name, role and password, plus engine-specific settings. Use digitalocean_database_user_get for one user. The response includes the password; handle it as a secret.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
usernamestringrequired- Name of the database user. Example: app-01.
digitalocean_database_users_listList the users of a managed database cluster.Read-onlyList Database Users
List the users of a managed database cluster. Not supported for Caching or Valkey clusters. Returns users with name, role (primary or normal) and password; MySQL users also include mysql_settings. Use digitalocean_database_users_list to see who can connect. The response includes passwords; handle them as secrets.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_databases_listList the databases inside a managed database cluster.Read-onlyList Databases
List the databases inside a managed database cluster. Not supported for Caching or Valkey clusters. Returns dbs, each with its name. Use digitalocean_databases_list to see which databases exist in a cluster.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_domain_getGet one domain managed in DigitalOcean DNS.Read-onlyGet Domain
Get one domain managed in DigitalOcean DNS. Returns the domain's name, ttl and full zone_file. Use digitalocean_domain_get to read a domain's zone file. Use digitalocean_domain_records_list for structured records.
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
digitalocean_domain_record_getGet one DNS record of a domain by ID.Read-onlyGet Domain Record
Get one DNS record of a domain by ID. Returns the record's type, name, data, priority, port, ttl, weight, flags and tag. Use digitalocean_domain_record_get when you know the record ID. Use digitalocean_domain_records_list to search.
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
domain_record_idintegerrequired- Numeric ID of the DNS record. Get it from digitalocean_domain_records_list. Example: 3352896.
digitalocean_domain_records_listList the DNS records of a domain, optionally filtered by name or type.Read-onlyList Domain Records
List the DNS records of a domain, optionally filtered by name or type. Returns a page of records with id, type, name, data, priority, port, ttl, weight, flags and tag. Use digitalocean_domain_records_list to find a record ID or check current DNS. Use digitalocean_domain_record_get for one record.
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
namestring- Only return records with this fully qualified name. Example: www.example.com.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 typestring- Only return records of this type.one of
AAAAACAACNAMEMXNSSOASRVTXT
digitalocean_domains_listList the domains managed in DigitalOcean DNS.Read-onlyList Domains
List the domains managed in DigitalOcean DNS. Returns a page of domains with name, ttl and zone_file. Use digitalocean_domains_list to see which domains DigitalOcean serves DNS for. Use digitalocean_domain_records_list for a domain's records.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_droplet_actions_listList the actions that have run on a Droplet, newest first.Read-onlyList Droplet Actions
List the actions that have run on a Droplet, newest first. Returns a page of actions with id, type, status, started_at, completed_at and region. Use digitalocean_droplet_actions_list for one Droplet's history. Use digitalocean_actions_list for every action in the account.
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_droplet_backups_listList the automated backups of a Droplet.Read-onlyList Droplet Backups
List the automated backups of a Droplet. Returns a page of backups with id, name, created_at, regions, min_disk_size and size_gigabytes. Use digitalocean_droplet_backups_list to find a backup ID for digitalocean_droplet_action_run with type restore. Use digitalocean_droplet_snapshots_list for manual snapshots.
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_droplet_bandwidth_metrics_getGet a time series of a Droplet's network bandwidth in megabits per second for one interface and direction.Read-onlyGet Droplet Bandwidth Metrics
Get a time series of a Droplet's network bandwidth in megabits per second for one interface and direction. Returns a Prometheus-style result: data.result with values as [UNIX timestamp, Mbps] pairs. Use digitalocean_droplet_bandwidth_metrics_get for network traffic. Use digitalocean_droplet_metrics_get for CPU, memory, load or disk.
Inputs
directionstringrequired- Traffic direction: inbound or outbound.one of
inboundoutbound endstringrequired- End of the time window as a UNIX timestamp in seconds. Example: 1620705417.
host_idstringrequired- ID of the Droplet to get metrics for, as a string. The Droplet needs the monitoring agent. Example: 17209102.
interfacestringrequired- Network interface: public or private.one of
privatepublic startstringrequired- Start of the time window as a UNIX timestamp in seconds. Example: 1620683817.
digitalocean_droplet_getGet one Droplet by its ID.Read-onlyGet Droplet
Get one Droplet by its ID. Returns the Droplet's name, status (new, active, off, archive), size, image, region, networks with public and private IPs, volume_ids, tags, features, backup and snapshot IDs, and creation time. Use digitalocean_droplet_get when you know the Droplet ID. Use digitalocean_droplets_list to find it.
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
digitalocean_droplet_metrics_getGet a time series of one CPU, memory, load or filesystem metric for a Droplet.Read-onlyGet Droplet Metrics
Get a time series of one CPU, memory, load or filesystem metric for a Droplet. Returns a Prometheus-style result: data.result with metric labels and values as [UNIX timestamp, value] pairs. Use digitalocean_droplet_metrics_get for CPU, memory, load or disk metrics. Use digitalocean_droplet_bandwidth_metrics_get for network traffic. Memory, load and filesystem metrics need the monitoring agent on the Droplet.
Inputs
endstringrequired- End of the time window as a UNIX timestamp in seconds. Example: 1620705417.
host_idstringrequired- ID of the Droplet to get metrics for, as a string. The Droplet needs the monitoring agent. Example: 17209102.
metricstringrequired- Metric to fetch: cpu (CPU seconds by mode), memory_total, memory_free, memory_available, memory_cached (bytes), load_1, load_5, load_15 (load averages), filesystem_size, filesystem_free (bytes).one of
cpumemory_totalmemory_freememory_availablememory_cachedload_1load_5load_15filesystem_sizefilesystem_free startstringrequired- Start of the time window as a UNIX timestamp in seconds. Example: 1620683817.
digitalocean_droplet_snapshots_listList the snapshots taken from a Droplet.Read-onlyList Droplet Snapshots
List the snapshots taken from a Droplet. Returns a page of snapshots with id, name, created_at, regions, min_disk_size and size_gigabytes. Use digitalocean_droplet_snapshots_list for one Droplet. Use digitalocean_snapshots_list for all Droplet and volume snapshots.
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_droplets_listList the Droplets (virtual machines) in the account, optionally filtered by tag, exact name, or GPU type.Read-onlyList Droplets
List the Droplets (virtual machines) in the account, optionally filtered by tag, exact name, or GPU type. Returns a page of Droplets with id, name, status, memory, vcpus, disk, region, image, size_slug, networks (IP addresses), tags and vpc_uuid, plus links and meta.total. Use digitalocean_droplets_list to find a Droplet ID. Use digitalocean_droplet_get for one Droplet's full details.
Inputs
namestring- Only return Droplets whose name matches exactly (case-insensitive). Cannot be combined with tag_name. Example: web-01.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 tag_namestring- Only return Droplets that have this tag. Cannot be combined with name or type. Example: env:prod.
typestring- Set to `gpus` to list only GPU Droplets; `droplets` (or empty) lists regular Droplets. Cannot be combined with tag_name.one of
dropletsgpus
digitalocean_firewall_getGet one cloud firewall by ID.Read-onlyGet Firewall
Get one cloud firewall by ID. Returns its name, status, inbound_rules, outbound_rules, droplet_ids, tags, pending_changes and created_at. Use digitalocean_firewall_get to review a firewall's rules and which Droplets it covers.
Inputs
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
digitalocean_firewalls_listList the cloud firewalls in the account.Read-onlyList Firewalls
List the cloud firewalls in the account. Returns a page of firewalls with id, name, status, inbound_rules, outbound_rules, droplet_ids, tags and pending_changes. Use digitalocean_firewalls_list to find a firewall ID. Use digitalocean_firewall_get for one firewall.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_image_getGet one image by ID or, for public images, by slug.Read-onlyGet Image
Get one image by ID or, for public images, by slug. Returns the image's name, distribution, slug, public flag, regions, type, min_disk_size, size_gigabytes, status and created_at. Use digitalocean_image_get when you know the image. Use digitalocean_images_list to browse.
Inputs
image_idstringrequired- Numeric image ID, or the slug of a public image (e.g. ubuntu-24-04-x64). Private images must use the ID.
digitalocean_images_listList images available to the account: OS distributions, 1-Click application images, and the user's own snapshots, backups and custom images.Read-onlyList Images
List images available to the account: OS distributions, 1-Click application images, and the user's own snapshots, backups and custom images. Returns a page of images with id, slug, name, distribution, type, public flag, regions, min_disk_size and created_at. Use digitalocean_images_list to find an image slug or ID for digitalocean_droplet_create. Use digitalocean_image_get for one image.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 privateboolean- Set to true to list only the user's own images (snapshots, backups, custom images).
tag_namestring- Only return images with this tag. Example: base-image.
typestring- Filter to `distribution` (OS images) or `application` (1-Click app images). Leave empty for all.one of
applicationdistribution
digitalocean_invoice_summary_getGet the summary of one invoice.Read-onlyGet Invoice Summary
Get the summary of one invoice. Returns the billing period, amount, user and address details, product_charges grouped by product, overages, taxes and credits_and_adjustments. Use digitalocean_invoice_summary_get to see what an invoice was for.
Inputs
invoice_uuidstringrequired- UUID of the invoice. Get it from digitalocean_invoices_list. Example: 22737513-0ea7-4206-8ceb-98a575af7681.
digitalocean_invoices_listList the account's invoices, newest first, plus a preview of the current month.Read-onlyList Invoices
List the account's invoices, newest first, plus a preview of the current month. Returns invoices with invoice_uuid, amount, invoice_period and updated_at, and invoice_preview. Use digitalocean_invoices_list to find an invoice UUID. Use digitalocean_invoice_summary_get for one invoice's breakdown.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_kubernetes_cluster_getGet one Kubernetes cluster by ID.Read-onlyGet Kubernetes Cluster
Get one Kubernetes cluster by ID. Returns the cluster's name, region, version, status (state and message), endpoint, ipv4, node_pools with their nodes, maintenance_policy, auto_upgrade, surge_upgrade, ha and tags. Use digitalocean_kubernetes_cluster_get to check a cluster's state or node pools.
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
digitalocean_kubernetes_clusters_listList the DigitalOcean Kubernetes (DOKS) clusters in the account.Read-onlyList Kubernetes Clusters
List the DigitalOcean Kubernetes (DOKS) clusters in the account. Returns a page of clusters with id, name, region, version, status, endpoint, node_pools, vpc_uuid, auto_upgrade, ha and tags. Use digitalocean_kubernetes_clusters_list to find a cluster ID. Use digitalocean_kubernetes_cluster_get for one cluster.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_kubernetes_node_pool_getGet one node pool of a Kubernetes cluster.Read-onlyGet Kubernetes Node Pool
Get one node pool of a Kubernetes cluster. Returns the pool's name, size, count, tags, labels, taints, auto_scale settings and nodes with status and droplet_id. Use digitalocean_kubernetes_node_pool_get for one pool. Use digitalocean_kubernetes_node_pools_list for all pools.
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
node_pool_idstringrequired- UUID of the node pool. Get it from digitalocean_kubernetes_node_pools_list. Example: cdda885e-7663-40c8-bc74-3a036c66545d.
digitalocean_kubernetes_node_pools_listList the node pools of a Kubernetes cluster.Read-onlyList Kubernetes Node Pools
List the node pools of a Kubernetes cluster. Returns each pool's id, name, size, count, tags, labels, taints, auto_scale settings and nodes with their status and droplet_id. Use digitalocean_kubernetes_node_pools_list to find a node pool ID or check node status.
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
digitalocean_kubernetes_options_listList the Kubernetes versions, regions and node sizes available for DigitalOcean Kubernetes.Read-onlyList Kubernetes Options
List the Kubernetes versions, regions and node sizes available for DigitalOcean Kubernetes. Returns options.versions (slug and kubernetes_version), options.regions and options.sizes. Use digitalocean_kubernetes_options_list before digitalocean_kubernetes_cluster_create to pick valid values.
Inputs
This tool takes no inputs.
digitalocean_load_balancer_getGet one load balancer by ID.Read-onlyGet Load Balancer
Get one load balancer by ID. Returns its name, ip, status, region, forwarding_rules, health_check, sticky_sessions, droplet_ids, tag, firewall and timestamps. Use digitalocean_load_balancer_get to check a load balancer's status and backends.
Inputs
lb_idstringrequired- UUID of the load balancer. Get it from digitalocean_load_balancers_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_load_balancers_listList the load balancers in the account.Read-onlyList Load Balancers
List the load balancers in the account. Returns a page of load balancers with id, name, ip, status, region, size_unit, forwarding_rules, health_check, droplet_ids, tag and vpc_uuid. Use digitalocean_load_balancers_list to find a load balancer ID. Use digitalocean_load_balancer_get for one.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_monitoring_alert_policies_listList the monitoring alert policies in the account.Read-onlyList Alert Policies
List the monitoring alert policies in the account. Returns a page of policies with uuid, type (e.g. v1/insights/droplet/cpu), description, compare, value, window, entities, tags, alerts (email and Slack) and enabled. Use digitalocean_monitoring_alert_policies_list to review which alerts exist. Use digitalocean_monitoring_alert_policy_get for one policy.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_monitoring_alert_policy_getGet one monitoring alert policy.Read-onlyGet Alert Policy
Get one monitoring alert policy. Returns its type, description, compare, value, window, entities, tags, alerts and enabled flag. Use digitalocean_monitoring_alert_policy_get when you know the policy UUID.
Inputs
alert_uuidstringrequired- UUID of the alert policy. Get it from digitalocean_monitoring_alert_policies_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_project_getGet one project by ID, or the default project.Read-onlyGet Project
Get one project by ID, or the default project. Returns the project's name, description, purpose, environment, is_default, owner and timestamps. Use digitalocean_project_get with project_id `default` to find the account's default project.
Inputs
project_idstringrequired- UUID of the project, or `default` for the account's default project. Get it from digitalocean_projects_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_project_resources_listList the resources assigned to a project.Read-onlyList Project Resources
List the resources assigned to a project. Returns a page of resources, each with a urn such as do:droplet:13457723, assigned_at, links.self and status. Use digitalocean_project_resources_list to see what a project contains. Only resources the connection can read are returned.
Inputs
project_idstringrequired- UUID of the project, or `default` for the account's default project. Get it from digitalocean_projects_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_projects_listList the projects in the account.Read-onlyList Projects
List the projects in the account. Returns a page of projects with id, name, description, purpose, environment, is_default, owner and timestamps. Use digitalocean_projects_list to find a project ID. Use digitalocean_project_resources_list to see what is in a project.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_regions_listList DigitalOcean datacenter regions.Read-onlyList Regions
List DigitalOcean datacenter regions. Returns each region's slug (e.g. nyc3), name, available flag, features and the size slugs offered there. Use digitalocean_regions_list to pick a region slug before creating a Droplet, volume, cluster or database.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_reserved_ip_getGet one reserved IP address.Read-onlyGet Reserved IP
Get one reserved IP address. Returns its region, the droplet it is assigned to (or null), locked and project_id. Use digitalocean_reserved_ip_get to see where an IP points.
Inputs
reserved_ipstringrequired- The reserved IPv4 address itself. Example: 45.55.96.47.
digitalocean_reserved_ips_listList the reserved (static) IPv4 addresses in the account.Read-onlyList Reserved IPs
List the reserved (static) IPv4 addresses in the account. Returns a page of reserved IPs with ip, region, the droplet it is assigned to (or null), locked and project_id. Use digitalocean_reserved_ips_list to see which IPs are free or assigned.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_sizes_listList the Droplet sizes (plans) available to the account.Read-onlyList Sizes
List the Droplet sizes (plans) available to the account. Returns each size's slug, memory, vcpus, disk, transfer, price_monthly, price_hourly, regions and available flag. Use digitalocean_sizes_list to pick a size slug for digitalocean_droplet_create or a resize.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_snapshots_listList all Droplet and volume snapshots in the account.Read-onlyList Snapshots
List all Droplet and volume snapshots in the account. Returns a page of snapshots with id, name, resource_id, resource_type, regions, min_disk_size, size_gigabytes and created_at. Use digitalocean_snapshots_list to find old snapshots. Use digitalocean_droplet_snapshots_list or digitalocean_volume_snapshots_list for one resource.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 resource_typestring- Only return snapshots of Droplets or of volumes.one of
dropletvolume
digitalocean_ssh_key_getGet one SSH key by ID or fingerprint.Read-onlyGet SSH Key
Get one SSH key by ID or fingerprint. Returns the key's id, fingerprint, name and public_key. Use digitalocean_ssh_key_get when you know the key. Use digitalocean_ssh_keys_list to browse.
Inputs
ssh_key_idstringrequired- Numeric ID or fingerprint of the SSH key. Example: 512189 or 3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa.
digitalocean_ssh_keys_listList the SSH public keys saved in the account.Read-onlyList SSH Keys
List the SSH public keys saved in the account. Returns a page of keys with id, fingerprint, name and public_key. Use digitalocean_ssh_keys_list to get key IDs or fingerprints for digitalocean_droplet_create.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_volume_getGet one block storage volume by ID.Read-onlyGet Volume
Get one block storage volume by ID. Returns the volume's name, description, size_gigabytes, region, droplet_ids, filesystem_type, filesystem_label, tags and created_at. Use digitalocean_volume_get to check a volume's size or which Droplet it is attached to.
Inputs
volume_idstringrequired- UUID of the block storage volume. Get it from digitalocean_volumes_list. Example: 7724db7c-e098-11e5-b522-000f53304e51.
digitalocean_volume_snapshots_listList the snapshots taken from a block storage volume.Read-onlyList Volume Snapshots
List the snapshots taken from a block storage volume. Returns a page of snapshots with id, name, created_at, regions, min_disk_size, size_gigabytes and tags. Use digitalocean_volume_snapshots_list for one volume. Use digitalocean_snapshots_list with resource_type volume for all volume snapshots.
Inputs
volume_idstringrequired- UUID of the block storage volume. Get it from digitalocean_volumes_list. Example: 7724db7c-e098-11e5-b522-000f53304e51.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_volumes_listList the block storage volumes in the account, optionally filtered by name or region.Read-onlyList Volumes
List the block storage volumes in the account, optionally filtered by name or region. Returns a page of volumes with id, name, size_gigabytes, region, droplet_ids (attachments), filesystem_type, tags and created_at. Use digitalocean_volumes_list to find a volume ID. Use digitalocean_volume_get for one volume.
Inputs
namestring- Only return volumes with this name. Example: example.
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20 regionstring- Only return volumes in this region slug. Example: nyc3.
digitalocean_vpc_getGet one VPC network by ID.Read-onlyGet VPC
Get one VPC network by ID. Returns its name, description, region, ip_range, default flag, urn and created_at. Use digitalocean_vpc_get when you know the VPC ID.
Inputs
vpc_idstringrequired- UUID of the VPC. Get it from digitalocean_vpcs_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_vpcs_listList the VPC networks in the account.Read-onlyList VPCs
List the VPC networks in the account. Returns a page of VPCs with id, name, description, region, ip_range, default flag and created_at. Use digitalocean_vpcs_list to find a VPC UUID for creating Droplets, clusters or databases.
Inputs
pageinteger- Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default
1 per_pageinteger- Number of results per page, 1 to 200. Defaults to 20. Example: 50.default
20
digitalocean_app_createCreate an App Platform app from an app spec and start its first deployment.WriteCreate App
Create an App Platform app from an app spec and start its first deployment. Returns the new app with its id, spec and pending deployment. Use digitalocean_app_create to deploy a new app. Use digitalocean_app_spec_propose first to validate the spec and see its cost.
Inputs
specobjectrequired- The app spec for the new app. An app spec has a name, an optional region, and one or more components (services, static_sites, workers, jobs, functions, databases), each with a source such as github, gitlab or image. See https://docs.digitalocean.com/products/app-platform/reference/app-spec/. Example: {"name": "web-app", "region": "nyc", "services": [{"name": "web", "github": {"repo": "acme/web", "branch": "main", "deploy_on_push": true}, "instance_count": 1, "instance_size_slug": "apps-s-1vcpu-0.5gb", "http_port": 8080}]}
project_idstring- UUID of the project to put the app in. Leave empty for the default project. Get it from digitalocean_projects_list.
digitalocean_app_deployment_cancelCancel an in-progress deployment of an App Platform app.WriteCancel App Deployment
Cancel an in-progress deployment of an App Platform app. Returns the deployment with phase CANCELED. Use digitalocean_app_deployment_cancel to stop a deployment that is building or deploying.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
deployment_idstringrequired- UUID of the app deployment. Get it from digitalocean_app_deployments_list or the app's active_deployment.id. Example: 3aa4d20e-5527-4c00-b496-601fbd22520a.
digitalocean_app_deployment_createStart a new deployment of an App Platform app from the latest source, without changing its spec.WriteCreate App Deployment
Start a new deployment of an App Platform app from the latest source, without changing its spec. Returns the new deployment with its id and phase. Use digitalocean_app_deployment_create to redeploy. Use digitalocean_app_update to change the spec, or digitalocean_app_restart to restart without rebuilding.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
force_buildboolean- Set to true to rebuild from source even when the source has not changed.
digitalocean_app_restartDo a rolling restart of an App Platform app, or of selected components, without rebuilding.WriteRestart App
Do a rolling restart of an App Platform app, or of selected components, without rebuilding. Returns the deployment created for the restart. Use digitalocean_app_restart to restart running instances. Use digitalocean_app_deployment_create to rebuild and redeploy.
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
componentsarray- Names of the components to restart. Leave empty to restart all. Example: ["web", "worker"].
digitalocean_app_spec_proposeValidate an app spec for a new or existing App Platform app without changing anything.WritePropose App Spec
Validate an app spec for a new or existing App Platform app without changing anything. Returns validation results, the expanded spec, the monthly cost and, for an existing app, the cost of the upgrade. Use digitalocean_app_spec_propose before digitalocean_app_create or digitalocean_app_update to catch errors and see pricing.
Inputs
specobjectrequired- The app spec to validate. An app spec has a name, an optional region, and one or more components (services, static_sites, workers, jobs, functions, databases), each with a source such as github, gitlab or image. See https://docs.digitalocean.com/products/app-platform/reference/app-spec/. Example: {"name": "web-app", "region": "nyc", "services": [{"name": "web", "github": {"repo": "acme/web", "branch": "main", "deploy_on_push": true}, "instance_count": 1, "instance_size_slug": "apps-s-1vcpu-0.5gb", "http_port": 8080}]}
app_idstring- UUID of an existing app to treat the spec as a proposed update to. Leave empty for a new app.
digitalocean_app_updateReplace an App Platform app's spec, which triggers a new deployment.WriteUpdate App
Replace an App Platform app's spec, which triggers a new deployment. Returns the updated app with its spec and pending deployment. Use digitalocean_app_update to change components, env vars, sizes or sources. Send the full spec: read it from digitalocean_app_get, edit, then send it back. Use digitalocean_app_deployment_create to redeploy without changes.
- Idempotent
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
specobjectrequired- The complete new app spec; it replaces the current one. An app spec has a name, an optional region, and one or more components (services, static_sites, workers, jobs, functions, databases), each with a source such as github, gitlab or image. See https://docs.digitalocean.com/products/app-platform/reference/app-spec/. Example: {"name": "web-app", "region": "nyc", "services": [{"name": "web", "github": {"repo": "acme/web", "branch": "main", "deploy_on_push": true}, "instance_count": 1, "instance_size_slug": "apps-s-1vcpu-0.5gb", "http_port": 8080}]}
update_all_source_versionsboolean- Set to true to also pull the latest commit or image digest for every component. By default only newly added sources are fetched.
digitalocean_database_cluster_createCreate a managed database cluster.WriteCreate Database Cluster
Create a managed database cluster. Returns the new cluster with its id, status `creating` and connection details; provisioning takes several minutes. Use digitalocean_database_cluster_create to launch a database. Get valid engine versions, regions and sizes from digitalocean_database_options_list.
Inputs
enginestringrequired- Database engine: pg (PostgreSQL), mysql, valkey (Caching), redis, mongodb, kafka, opensearch, advanced_pg or advanced_mysql.one of
pgmysqlredisvalkeymongodbkafkaopensearchadvanced_pgadvanced_mysql namestringrequired- Unique name for the cluster. Example: backend.
num_nodesintegerrequired- Number of nodes, including standbys. Example: 1.
regionstringrequired- Region slug. Example: nyc3.
sizestringrequired- Node size slug. Example: db-s-1vcpu-1gb.
private_network_uuidstring- UUID of the VPC for the cluster. Leave empty for the region's default VPC.
project_idstring- UUID of the project to put the cluster in. Leave empty for the default project.
storage_size_mibinteger- Extra storage to add beyond the size's base amount, in MiB. Example: 61440.
tagsarray- Tags for the cluster. Example: ["production"].
versionstring- Engine version, e.g. 17 for PostgreSQL. Leave empty for the default. Get options from digitalocean_database_options_list.
digitalocean_database_createCreate a database inside a managed database cluster.WriteCreate Database
Create a database inside a managed database cluster. Not supported for Caching or Valkey clusters. Returns the new database's name. Use digitalocean_database_create to add a database. Use digitalocean_database_user_create to add a user who can connect to it.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
namestringrequired- Name of the new database. Example: alpha.
digitalocean_database_firewall_rules_updateReplace the firewall rules (trusted sources) of a managed database cluster.WriteUpdate Database Trusted Sources
Replace the firewall rules (trusted sources) of a managed database cluster. Returns an empty response (HTTP 204) on success. Use digitalocean_database_firewall_rules_update to allow Droplets, Kubernetes clusters, apps, tags or IP addresses to connect. Send the full list: rules not included are removed. Read the current list with digitalocean_database_firewall_rules_list first.
- Idempotent
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
rulesarrayrequired- The complete list of trusted sources. Each rule has a type (droplet, k8s, ip_addr, tag or app) and a value (a Droplet ID, cluster ID, IP or CIDR, tag name, or app ID). Example: [{"type": "ip_addr", "value": "192.168.1.1"}, {"type": "droplet", "value": "163973392"}].
digitalocean_database_user_createCreate a user in a managed database cluster with a generated password.WriteCreate Database User
Create a user in a managed database cluster with a generated password. Not supported for Caching or Valkey clusters. Returns the new user with name, role and password. Use digitalocean_database_user_create to add a login for an app or person. The response includes the password; handle it as a secret.
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
namestringrequired- Username for the new user. Example: app-01.
mysql_settingsobject- MySQL only: authentication plugin, as {"auth_plugin": "caching_sha2_password"} or {"auth_plugin": "mysql_native_password"}.
settingsobject- Engine-specific user settings, such as PostgreSQL pg_allow_replication, Kafka topic ACLs or OpenSearch index ACLs. Example: {"pg_allow_replication": true}.
digitalocean_domain_createAdd a domain to DigitalOcean DNS, optionally with an apex A record.WriteCreate Domain
Add a domain to DigitalOcean DNS, optionally with an apex A record. Returns the new domain's name and ttl. Use digitalocean_domain_create to start managing a domain's DNS. Point the domain's nameservers at ns1/ns2/ns3.digitalocean.com at the registrar.
Inputs
namestringrequired- Domain name to add, such as example.com.
ip_addressstring- IPv4 address for an A record on the apex (@). Leave empty to create no record.
digitalocean_domain_record_createCreate a DNS record (A, AAAA, CAA, CNAME, MX, NS, SRV or TXT) for a domain.WriteCreate Domain Record
Create a DNS record (A, AAAA, CAA, CNAME, MX, NS, SRV or TXT) for a domain. Returns the new record with its id. Use digitalocean_domain_record_create to add a record. Use digitalocean_domain_record_update to change an existing one.
Inputs
datastringrequired- Record value: an IP for A/AAAA, a hostname for CNAME/MX/NS/SRV (end hostnames with a dot or use @), the text for TXT, or the CA domain for CAA. Example: 192.0.2.1.
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
namestringrequired- Host name relative to the domain: @ for the apex, or a subdomain label such as www.
typestringrequired- Record type. MX needs priority; SRV needs priority, port and weight; CAA needs flags and tag.one of
AAAAACAACNAMEMXNSSRVTXT flagsinteger- Flags for CAA records, 0 to 255. Example: 0.
portinteger- Port for SRV records. Example: 5060.
priorityinteger- Priority for MX and SRV records (lower is preferred). Example: 10.
tagstring- Tag for CAA records: issue, issuewild or iodef.one of
issueissuewildiodef ttlinteger- Time to live in seconds; minimum 30. Defaults to 1800 when created. Example: 3600.
weightinteger- Weight for SRV records. Example: 100.
digitalocean_domain_record_updateChange fields of an existing DNS record, such as its value or TTL.WriteUpdate Domain Record
Change fields of an existing DNS record, such as its value or TTL. Returns the updated record. Use digitalocean_domain_record_update to edit a record in place. Use digitalocean_domain_record_create to add a new one.
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
domain_record_idintegerrequired- Numeric ID of the DNS record. Get it from digitalocean_domain_records_list. Example: 3352896.
typestringrequired- Type of the record being updated (it cannot be changed). Example: A.one of
AAAAACAACNAMEMXNSSOASRVTXT datastring- New record value, e.g. a new IP for an A record.
flagsinteger- Flags for CAA records, 0 to 255. Example: 0.
namestring- New host name: @ for the apex, or a subdomain label such as www.
portinteger- Port for SRV records. Example: 5060.
priorityinteger- Priority for MX and SRV records (lower is preferred). Example: 10.
tagstring- Tag for CAA records: issue, issuewild or iodef.one of
issueissuewildiodef ttlinteger- Time to live in seconds; minimum 30. Defaults to 1800 when created. Example: 3600.
weightinteger- Weight for SRV records. Example: 100.
digitalocean_droplet_action_runRun an action on a Droplet: power on/off, reboot, shutdown, power cycle, resize, rebuild, rename, snapshot, restore, password reset, change kernel, enable IPv6, or enable/disable backups.WriteRun Droplet Action
Run an action on a Droplet: power on/off, reboot, shutdown, power cycle, resize, rebuild, rename, snapshot, restore, password reset, change kernel, enable IPv6, or enable/disable backups. Returns the action with its id, status (in-progress, completed, errored), type and started_at; most actions finish asynchronously. Use digitalocean_droplet_action_run to change a Droplet's state. Use digitalocean_action_get with the returned ID to check completion, and digitalocean_droplet_actions_list for its action history.
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
typestringrequired- Action to run. power_on, power_off, shutdown, reboot, power_cycle, password_reset, enable_ipv6, enable_backups and disable_backups need no other field. resize needs size (and optionally disk). rebuild needs image. rename needs name. snapshot takes an optional name. restore needs image (a backup ID). change_kernel needs kernel.one of
power_onpower_offshutdownrebootpower_cyclepassword_resetenable_ipv6enable_backupsdisable_backupsresizerebuildrenamesnapshotrestorechange_kernel diskboolean- For `resize` only: true also grows the disk. This is permanent; disks cannot shrink. Leave empty or false to resize only CPU and RAM.
imagestring- For `rebuild`: image slug or ID to rebuild from (e.g. ubuntu-24-04-x64). For `restore`: the ID of one of this Droplet's backups (from digitalocean_droplet_backups_list).
kernelinteger- For `change_kernel`: ID of the kernel to switch to. Example: 12389723.
namestring- New Droplet name for `rename`, or the snapshot name for `snapshot`. Example: web-01-renamed.
sizestring- Target size slug for `resize`. Get options from digitalocean_sizes_list. Example: s-2vcpu-2gb.
digitalocean_droplet_createCreate a new Droplet (virtual machine) from an image, size and region.WriteCreate Droplet
Create a new Droplet (virtual machine) from an image, size and region. Returns the new Droplet with its id and status `new`, plus links.actions with the create action ID; creation finishes asynchronously. Use digitalocean_droplet_create to launch one Droplet. Use digitalocean_action_get with the returned action ID to check progress, then digitalocean_droplet_get for its IP address. Get valid region, size and image slugs from digitalocean_regions_list, digitalocean_sizes_list and digitalocean_images_list.
Inputs
imagestringrequired- Image to build the Droplet from: a public image slug such as ubuntu-24-04-x64, or the numeric ID of a private image or snapshot (as a string). Get options from digitalocean_images_list.
namestringrequired- Name for the Droplet. If it is a domain managed in DigitalOcean DNS, a PTR record is created. Example: web-01.
sizestringrequired- Size slug that sets CPU, memory and disk. Get options from digitalocean_sizes_list. Example: s-1vcpu-1gb.
backupsboolean- Set to true to enable automated backups (extra cost). Defaults to false.
ipv6boolean- Set to true to enable IPv6 on the Droplet. Defaults to false.
monitoringboolean- Set to true to install the DigitalOcean monitoring agent, needed for memory, disk and load metrics. Defaults to false.
regionstring- Region slug to create the Droplet in. A prefix such as `nyc` picks any datacenter in that region. Get options from digitalocean_regions_list. Example: nyc3.
ssh_keysarray- SSH key IDs or fingerprints to add to the root account. Keys must already be in the account (digitalocean_ssh_keys_list). Example: [289794] or ["3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"].
tagsarray- Tag names to apply. New tag names are created automatically. Example: ["env:prod", "web"].
user_datastring- Cloud-init user data (cloud-config or a shell script) run on first boot, plain text up to 64 KiB. Example: #cloud-config\nruncmd:\n - touch /test.txt
volumesarray- IDs of block storage volumes to attach. Volumes must be in the same region and not attached elsewhere. Example: ["12e97116-7280-11ed-b3d0-0a58ac146812"].
vpc_uuidstring- UUID of the VPC to place the Droplet in. Leave empty for the region's default VPC. Get it from digitalocean_vpcs_list.
with_droplet_agentboolean- Set to false to skip installing the agent used for the web console. Leave empty for the default (installed).
digitalocean_firewall_createCreate a cloud firewall with inbound and outbound rules, applied to Droplets by ID or tag.WriteCreate Firewall
Create a cloud firewall with inbound and outbound rules, applied to Droplets by ID or tag. Returns the new firewall with its id and status. Use digitalocean_firewall_create to restrict traffic. At least one inbound or outbound rule is required; traffic not allowed by a rule is dropped.
Inputs
namestringrequired- Firewall name: starts with a letter or number, then letters, numbers, periods or dashes. Example: web-fw.
droplet_idsarray- IDs of the Droplets to apply the firewall to. Example: [8043964].
inbound_rulesarray- Inbound rules. Each rule has a protocol (tcp, udp or icmp), ports (a port, a range such as 8000-9000, or 0 for all) and sources, an object with addresses (IPs or CIDRs), droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "22", "sources": {"addresses": ["0.0.0.0/0", "::/0"]}}].
outbound_rulesarray- Outbound rules. Each rule has a protocol (tcp, udp or icmp), ports and destinations, an object with addresses, droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "0", "destinations": {"addresses": ["0.0.0.0/0", "::/0"]}}].
tagsarray- Apply the firewall to all Droplets with these existing tags. Example: ["web"].
digitalocean_firewall_droplets_addApply a cloud firewall to more Droplets.WriteAdd Droplets to Firewall
Apply a cloud firewall to more Droplets. Returns an empty response (HTTP 204) on success. Use digitalocean_firewall_droplets_add to protect specific Droplets. Use digitalocean_firewall_droplets_remove to take them off.
Inputs
droplet_idsarrayrequired- IDs of the Droplets to add. Example: [49696269].
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
digitalocean_firewall_rules_addAdd inbound and/or outbound rules to a cloud firewall without replacing the existing ones.WriteAdd Firewall Rules
Add inbound and/or outbound rules to a cloud firewall without replacing the existing ones. Returns an empty response (HTTP 204) on success. Use digitalocean_firewall_rules_add to open ports. Use digitalocean_firewall_rules_remove to close them.
Inputs
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
inbound_rulesarray- Inbound rules. Each rule has a protocol (tcp, udp or icmp), ports (a port, a range such as 8000-9000, or 0 for all) and sources, an object with addresses (IPs or CIDRs), droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "22", "sources": {"addresses": ["0.0.0.0/0", "::/0"]}}].
outbound_rulesarray- Outbound rules. Each rule has a protocol (tcp, udp or icmp), ports and destinations, an object with addresses, droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "0", "destinations": {"addresses": ["0.0.0.0/0", "::/0"]}}].
digitalocean_kubernetes_cluster_createCreate a DigitalOcean Kubernetes cluster with at least one node pool.WriteCreate Kubernetes Cluster
Create a DigitalOcean Kubernetes cluster with at least one node pool. Returns the new cluster with its id and status `provisioning`; provisioning takes several minutes. Use digitalocean_kubernetes_cluster_create to launch a cluster. Get valid versions, regions and node sizes from digitalocean_kubernetes_options_list.
Inputs
namestringrequired- Name for the cluster. Example: prod-cluster-01.
node_poolsarrayrequired- Node pools to create. Each pool needs a name, a size slug and a count; it can also set tags, labels, taints, auto_scale, min_nodes and max_nodes. Example: [{"name": "worker-pool", "size": "s-2vcpu-4gb", "count": 3, "auto_scale": true, "min_nodes": 2, "max_nodes": 5}]
regionstringrequired- Region slug for the cluster. Example: nyc1.
versionstringrequired- Kubernetes version slug, a minor version such as 1.31 (latest patch is used), or `latest`. Get options from digitalocean_kubernetes_options_list.
auto_upgradeboolean- Set to true to apply new patch releases automatically during the maintenance window.
haboolean- Set to true for a highly available control plane (cannot be turned off later).
maintenance_policyobject- Weekly maintenance window: start_time in UTC as HH:MM and day (any, monday ... sunday). Example: {"start_time": "04:00", "day": "sunday"}.
surge_upgradeboolean- Set to true to add new nodes before removing old ones during upgrades.
tagsarray- Tags for the cluster. Clusters are also tagged k8s and k8s:<cluster id> automatically. Example: ["production"].
vpc_uuidstring- UUID of the VPC for the cluster. Leave empty for the region's default VPC.
digitalocean_kubernetes_cluster_updateUpdate a Kubernetes cluster's name, tags, maintenance window, auto-upgrade, surge-upgrade or high-availability setting.WriteUpdate Kubernetes Cluster
Update a Kubernetes cluster's name, tags, maintenance window, auto-upgrade, surge-upgrade or high-availability setting. Returns the updated cluster. Use digitalocean_kubernetes_cluster_update to change cluster settings. Use digitalocean_kubernetes_node_pool_update to change node counts.
- Idempotent
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
namestringrequired- Cluster name (send the current name to keep it). Example: prod-cluster-01.
auto_upgradeboolean- Set to true to apply new patch releases automatically.
haboolean- Set to true to make the control plane highly available. This cannot be turned off.
maintenance_policyobject- Weekly maintenance window: start_time in UTC as HH:MM and day (any, monday ... sunday). Example: {"start_time": "04:00", "day": "sunday"}.
surge_upgradeboolean- Set to true to add new nodes before removing old ones during upgrades.
tagsarray- Tags for the cluster; replaces the current custom tags. Example: ["production"].
digitalocean_kubernetes_node_pool_createAdd a node pool to a Kubernetes cluster.WriteCreate Kubernetes Node Pool
Add a node pool to a Kubernetes cluster. Returns the new node pool with its id and nodes being provisioned. Use digitalocean_kubernetes_node_pool_create to add worker capacity of a new size. Use digitalocean_kubernetes_node_pool_update to resize an existing pool.
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
countintegerrequired- Number of nodes in the pool. Example: 3.
namestringrequired- Name for the node pool. Example: frontend-pool.
sizestringrequired- Droplet size slug for the worker nodes. Example: s-2vcpu-4gb.
auto_scaleboolean- Set to true to let the pool scale between min_nodes and max_nodes.
labelsobject- Kubernetes labels to apply to every node in the pool, as key/value pairs. Example: {"service": "web", "priority": "high"}.
max_nodesinteger- Maximum number of nodes when auto_scale is true. Example: 5.
min_nodesinteger- Minimum number of nodes when auto_scale is true. Example: 2.
tagsarray- Tags for the nodes. Every pool is also tagged k8s, k8s-worker and k8s:<cluster id> automatically. Example: ["frontend"].
taintsarray- Kubernetes taints for every node in the pool. Each taint has a key, a value and an effect (NoSchedule, PreferNoSchedule or NoExecute). Example: [{"key": "dedicated", "value": "gpu", "effect": "NoSchedule"}].
digitalocean_kubernetes_node_pool_updateUpdate a Kubernetes node pool's name, node count, tags, labels, taints or autoscaling.WriteUpdate Kubernetes Node Pool
Update a Kubernetes node pool's name, node count, tags, labels, taints or autoscaling. Returns the updated node pool. Use digitalocean_kubernetes_node_pool_update to scale a pool up or down. The size of a pool cannot change; create a new pool with digitalocean_kubernetes_node_pool_create instead.
- Idempotent
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
countintegerrequired- Number of nodes the pool should have. Example: 5.
namestringrequired- Name of the node pool (send the current name to keep it). Example: frontend-pool.
node_pool_idstringrequired- UUID of the node pool. Get it from digitalocean_kubernetes_node_pools_list. Example: cdda885e-7663-40c8-bc74-3a036c66545d.
auto_scaleboolean- Set to true to let the pool scale between min_nodes and max_nodes.
labelsobject- Kubernetes labels to apply to every node in the pool, as key/value pairs. Example: {"service": "web", "priority": "high"}.
max_nodesinteger- Maximum number of nodes when auto_scale is true. Example: 5.
min_nodesinteger- Minimum number of nodes when auto_scale is true. Example: 2.
tagsarray- Tags for the nodes. Every pool is also tagged k8s, k8s-worker and k8s:<cluster id> automatically. Example: ["frontend"].
taintsarray- Kubernetes taints for every node in the pool. Each taint has a key, a value and an effect (NoSchedule, PreferNoSchedule or NoExecute). Example: [{"key": "dedicated", "value": "gpu", "effect": "NoSchedule"}].
digitalocean_load_balancer_createCreate a regional load balancer in front of Droplets chosen by ID or by tag.WriteCreate Load Balancer
Create a regional load balancer in front of Droplets chosen by ID or by tag. Returns the new load balancer with its id and status `new`; it gets an IP once active. Use digitalocean_load_balancer_create to balance traffic. Set either droplet_ids or tag, not both.
Inputs
forwarding_rulesarrayrequired- How traffic is forwarded. Each rule has entry_protocol and target_protocol (http, https, http2, http3, tcp or udp), entry_port and target_port, and for https a certificate_id or tls_passthrough. Example: [{"entry_protocol": "http", "entry_port": 80, "target_protocol": "http", "target_port": 8080}].
namestringrequired- Name for the load balancer. Example: web-lb-01.
regionstringrequired- Region slug, the same as the Droplets'. Example: nyc3.
droplet_idsarray- IDs of the Droplets to balance across. Leave empty when using tag. Example: [3164444, 3164445].
health_checkobject- Health check settings: protocol (http, https or tcp), port, path, check_interval_seconds, response_timeout_seconds, healthy_threshold and unhealthy_threshold. Example: {"protocol": "http", "port": 80, "path": "/healthz"}.
project_idstring- UUID of the project to put the load balancer in. Leave empty for the default project.
redirect_http_to_httpsboolean- Set to true to redirect HTTP on port 80 to HTTPS on 443.
size_unitinteger- Number of nodes (1 to 100); more nodes handle more connections. Defaults to 1.
tagstring- Balance across all Droplets with this tag instead of droplet_ids. Example: prod:web.
vpc_uuidstring- UUID of the VPC. Leave empty for the region's default VPC.
digitalocean_load_balancer_droplets_addAdd Droplets to a load balancer that selects Droplets by ID.WriteAdd Droplets to Load Balancer
Add Droplets to a load balancer that selects Droplets by ID. Returns an empty response (HTTP 204) on success. Use digitalocean_load_balancer_droplets_add to add backends. For a tag-based load balancer, tag the Droplets with digitalocean_tag_resources_assign instead.
Inputs
droplet_idsarrayrequired- IDs of the Droplets to add. Example: [3164444, 3164445].
lb_idstringrequired- UUID of the load balancer. Get it from digitalocean_load_balancers_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_project_createCreate a project to group resources.WriteCreate Project
Create a project to group resources. Returns the new project with its id. Use digitalocean_project_create, then digitalocean_project_resources_assign to move resources into it.
Inputs
namestringrequired- Unique project name, up to 175 characters. Example: my-web-api.
purposestringrequired- What the project is for, up to 255 characters. Common values: Just trying out DigitalOcean, Class project / Educational purposes, Website or blog, Web Application, Service or API, Mobile Application, Machine learning / AI / Data processing, IoT, Operational / Developer tooling.
descriptionstring- Description, up to 255 characters. Example: My website API.
environmentstring- Environment of the project's resources: Development, Staging or Production.one of
DevelopmentStagingProduction
digitalocean_project_resources_assignMove resources into a project, identified by their URNs.WriteAssign Resources to Project
Move resources into a project, identified by their URNs. Returns the assigned resources with urn, assigned_at and status. Use digitalocean_project_resources_assign to organize Droplets, volumes, databases, apps, domains and more. A resource belongs to one project at a time.
Inputs
project_idstringrequired- UUID of the project, or `default` for the account's default project. Get it from digitalocean_projects_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
resourcesarrayrequired- URNs of the resources to move, in the form do:<type>:<id>. Example: ["do:droplet:13457723", "do:domain:example.com"].
digitalocean_project_updateChange some fields of a project, or make it the default project.WriteUpdate Project
Change some fields of a project, or make it the default project. Returns the updated project. Use digitalocean_project_update to rename a project or change its purpose, environment or default flag. Send at least one field.
Inputs
project_idstringrequired- UUID of the project, or `default` for the account's default project. Get it from digitalocean_projects_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
descriptionstring- New description.
environmentstring- New environment: Development, Staging or Production.one of
DevelopmentStagingProduction is_defaultboolean- Set to true to make this the default project for new resources.
namestring- New name. Example: my-web-api.
purposestring- New purpose. Common values: Just trying out DigitalOcean, Class project / Educational purposes, Website or blog, Web Application, Service or API, Mobile Application, Machine learning / AI / Data processing, IoT, Operational / Developer tooling.
digitalocean_reserved_ip_action_runAssign a reserved IP to a Droplet or unassign it.WriteAssign or Unassign Reserved IP
Assign a reserved IP to a Droplet or unassign it. Returns the action with its id, type and status. Use digitalocean_reserved_ip_action_run with type assign (needs droplet_id) to move an IP, or unassign to free it.
Inputs
reserved_ipstringrequired- The reserved IPv4 address itself. Example: 45.55.96.47.
typestringrequired- assign (needs droplet_id) or unassign.one of
assignunassign droplet_idinteger- Droplet to assign the IP to (assign only). Example: 758604968.
digitalocean_reserved_ip_createCreate a reserved IPv4 address, either assigned to a Droplet or held in a region.WriteCreate Reserved IP
Create a reserved IPv4 address, either assigned to a Droplet or held in a region. Returns the new reserved IP. Use digitalocean_reserved_ip_create with droplet_id to assign it right away, or with region to hold it for later.
Inputs
droplet_idinteger- Droplet to assign the new IP to. Leave empty when setting region. Example: 2457247.
project_idstring- Project to put the IP in (with region only). Leave empty for the default project.
regionstring- Region to reserve the IP in, when not assigning it to a Droplet. Example: nyc3.
digitalocean_ssh_key_createAdd an SSH public key to the account so it can be embedded in new Droplets.WriteCreate SSH Key
Add an SSH public key to the account so it can be embedded in new Droplets. Returns the saved key with its id, fingerprint, name and public_key. Use digitalocean_ssh_key_create before digitalocean_droplet_create when the key is not yet saved.
Inputs
namestringrequired- Display name for the key. Example: laptop.
public_keystringrequired- The full public key line, e.g. starting with ssh-ed25519 or ssh-rsa.
digitalocean_tag_createCreate a tag.WriteCreate Tag
Create a tag. Returns the new tag's name and resources. Use digitalocean_tag_create before tagging resources. Most create tools also accept new tag names directly.
Inputs
namestringrequired- Tag name: letters, numbers, colons, dashes and underscores, up to 255 characters. Example: env:prod.
digitalocean_tag_resources_assignAdd a tag to Droplets, databases, images, volumes or volume snapshots.WriteTag Resources
Add a tag to Droplets, databases, images, volumes or volume snapshots. Returns an empty response (HTTP 204) on success. Use digitalocean_tag_resources_assign to group resources, for example for a tag-based load balancer or firewall.
Inputs
resourcesarrayrequired- Resources to tag. Each item has resource_id (as a string) and resource_type: droplet, image, volume, volume_snapshot or database. Example: [{"resource_id": "9569411", "resource_type": "droplet"}].
tag_idstringrequired- Name of the tag. Example: env:prod.
digitalocean_volume_action_runAttach a block storage volume to a Droplet, detach it, or resize it.WriteRun Volume Action
Attach a block storage volume to a Droplet, detach it, or resize it. Returns the action with its id, type and status. Use digitalocean_volume_action_run with type attach or detach (needs droplet_id) or resize (needs size_gigabytes). Use digitalocean_action_get to check completion.
Inputs
typestringrequired- attach and detach need droplet_id; resize needs size_gigabytes (volumes can only grow).one of
attachdetachresize volume_idstringrequired- UUID of the block storage volume. Get it from digitalocean_volumes_list. Example: 7724db7c-e098-11e5-b522-000f53304e51.
droplet_idinteger- Droplet to attach to or detach from (attach, detach). Example: 11612190.
regionstring- Region slug of the volume. Example: nyc3.
size_gigabytesinteger- New size in GiB (resize). Must be larger than the current size. Example: 100.
digitalocean_volume_createCreate a block storage volume, empty or from a volume snapshot.WriteCreate Volume
Create a block storage volume, empty or from a volume snapshot. Returns the new volume with its id. Use digitalocean_volume_create to add storage. Then attach it with digitalocean_volume_action_run (type attach).
Inputs
namestringrequired- Volume name: lowercase letters, numbers and dashes, starting with a letter, up to 64 characters. Example: data-01.
regionstringrequired- Region slug; must match the Droplet it will attach to. Example: nyc3.
size_gigabytesintegerrequired- Size in GiB. Example: 10.
descriptionstring- Free-form description. Example: Block store for examples.
filesystem_typestring- Format the volume with this filesystem: ext4 or xfs. Leave empty for an unformatted volume.one of
ext4xfs snapshot_idstring- ID of a volume snapshot to create the volume from.
tagsarray- Tag names to apply. Example: ["prod"].
digitalocean_volume_snapshot_createTake a snapshot of a block storage volume.WriteCreate Volume Snapshot
Take a snapshot of a block storage volume. Returns the new snapshot with its id. Use digitalocean_volume_snapshot_create to back up a volume. Use digitalocean_droplet_action_run with type snapshot for a Droplet.
Inputs
namestringrequired- Name for the snapshot. Example: data-01-2026-10-14.
volume_idstringrequired- UUID of the block storage volume. Get it from digitalocean_volumes_list. Example: 7724db7c-e098-11e5-b522-000f53304e51.
tagsarray- Tag names to apply. Example: ["backup"].
digitalocean_vpc_createCreate a VPC network in a region.WriteCreate VPC
Create a VPC network in a region. Returns the new VPC with its id and ip_range. Use digitalocean_vpc_create to isolate resources on a private network. The first VPC in a region becomes that region's default.
Inputs
namestringrequired- Unique name: letters, numbers, dashes and periods. Example: prod-vpc.
regionstringrequired- Region slug. Example: nyc1.
descriptionstring- Free-form description, up to 255 characters.
ip_rangestring- Private IP range in CIDR notation (RFC 1918), between /16 and /24, not overlapping other VPCs. Leave empty to pick one automatically. Example: 10.10.10.0/24.
digitalocean_app_deleteDelete an App Platform app and shut down all of its deployments.DestructiveDelete App
Delete an App Platform app and shut down all of its deployments. Returns the deleted app's id. Use digitalocean_app_delete to remove an app permanently. Save its spec with digitalocean_app_get first if you may recreate it.
- Idempotent
Inputs
app_idstringrequired- UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
digitalocean_database_cluster_deleteDestroy a managed database cluster and all of its data.DestructiveDelete Database Cluster
Destroy a managed database cluster and all of its data. Returns an empty response (HTTP 204) on success. Use digitalocean_database_cluster_delete to remove a cluster permanently. Use digitalocean_database_delete to drop a single database inside a cluster.
- Idempotent
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
digitalocean_database_deleteDrop one database from a managed database cluster, deleting its data.DestructiveDelete Database
Drop one database from a managed database cluster, deleting its data. Returns an empty response (HTTP 204) on success. Use digitalocean_database_delete to drop a single database. Use digitalocean_database_cluster_delete to destroy the whole cluster.
- Idempotent
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
database_namestringrequired- Name of the database to drop. Example: alpha.
digitalocean_database_user_deleteRemove a user from a managed database cluster.DestructiveDelete Database User
Remove a user from a managed database cluster. Returns an empty response (HTTP 204) on success. Use digitalocean_database_user_delete to revoke a login. The primary admin user cannot be removed.
- Idempotent
Inputs
database_cluster_uuidstringrequired- UUID of the managed database cluster. Get it from digitalocean_database_clusters_list. Example: 9cc10173-e9ea-4176-9dbc-a4cee4c4ff30.
usernamestringrequired- Name of the user to remove. Example: app-01.
digitalocean_domain_deleteRemove a domain and all of its DNS records from DigitalOcean DNS.DestructiveDelete Domain
Remove a domain and all of its DNS records from DigitalOcean DNS. Returns an empty response (HTTP 204) on success. Use digitalocean_domain_delete to stop managing a domain. Use digitalocean_domain_record_delete to remove a single record.
- Idempotent
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
digitalocean_domain_record_deleteDelete one DNS record from a domain.DestructiveDelete Domain Record
Delete one DNS record from a domain. Returns an empty response (HTTP 204) on success. Use digitalocean_domain_record_delete to remove a record. Find its ID with digitalocean_domain_records_list.
- Idempotent
Inputs
domain_namestringrequired- The domain name as registered in DigitalOcean DNS, without a trailing dot. Example: example.com.
domain_record_idintegerrequired- Numeric ID of the DNS record. Get it from digitalocean_domain_records_list. Example: 3352896.
digitalocean_droplet_deletePermanently delete a Droplet and its disk.DestructiveDelete Droplet
Permanently delete a Droplet and its disk. Returns an empty response (HTTP 204) on success. Use digitalocean_droplet_delete to destroy a Droplet. Use digitalocean_droplet_action_run with type power_off to stop it without deleting.
- Idempotent
Inputs
droplet_idintegerrequired- Numeric ID of the Droplet. Get it from digitalocean_droplets_list. Example: 3164444.
digitalocean_firewall_deleteDelete a cloud firewall; its Droplets lose its rules.DestructiveDelete Firewall
Delete a cloud firewall; its Droplets lose its rules. Returns an empty response (HTTP 204) on success. Use digitalocean_firewall_delete to remove a firewall permanently.
- Idempotent
Inputs
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
digitalocean_firewall_droplets_removeStop applying a cloud firewall to some Droplets.DestructiveRemove Droplets from Firewall
Stop applying a cloud firewall to some Droplets. Returns an empty response (HTTP 204) on success. Use digitalocean_firewall_droplets_remove to take Droplets off a firewall.
- Idempotent
Inputs
droplet_idsarrayrequired- IDs of the Droplets to remove. Example: [49696269].
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
digitalocean_firewall_rules_removeRemove inbound and/or outbound rules from a cloud firewall.DestructiveRemove Firewall Rules
Remove inbound and/or outbound rules from a cloud firewall. Each rule must match an existing rule exactly. Returns an empty response (HTTP 204) on success. Use digitalocean_firewall_rules_remove to close ports. Copy the rules to remove from digitalocean_firewall_get.
- Idempotent
Inputs
firewall_idstringrequired- UUID of the cloud firewall. Get it from digitalocean_firewalls_list. Example: bb4b2611-3d72-467b-8602-280330ecd65c.
inbound_rulesarray- Inbound rules. Each rule has a protocol (tcp, udp or icmp), ports (a port, a range such as 8000-9000, or 0 for all) and sources, an object with addresses (IPs or CIDRs), droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "22", "sources": {"addresses": ["0.0.0.0/0", "::/0"]}}].
outbound_rulesarray- Outbound rules. Each rule has a protocol (tcp, udp or icmp), ports and destinations, an object with addresses, droplet_ids, load_balancer_uids, kubernetes_ids and/or tags. Example: [{"protocol": "tcp", "ports": "0", "destinations": {"addresses": ["0.0.0.0/0", "::/0"]}}].
digitalocean_kubernetes_cluster_deleteDelete a Kubernetes cluster, its nodes and the workloads on it.DestructiveDelete Kubernetes Cluster
Delete a Kubernetes cluster, its nodes and the workloads on it. Load balancers and volumes created by the cluster are not deleted. Returns an empty response (HTTP 204) on success. Use digitalocean_kubernetes_cluster_delete to remove a cluster permanently.
- Idempotent
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
digitalocean_kubernetes_node_pool_deleteDelete a node pool from a Kubernetes cluster; its nodes are drained and deleted.DestructiveDelete Kubernetes Node Pool
Delete a node pool from a Kubernetes cluster; its nodes are drained and deleted. Returns an empty response (HTTP 204) on success. Use digitalocean_kubernetes_node_pool_delete to remove a pool. A cluster must keep at least one pool.
- Idempotent
Inputs
cluster_idstringrequired- UUID of the Kubernetes cluster. Get it from digitalocean_kubernetes_clusters_list. Example: bd5f5959-5e1e-4205-a714-a914373942af.
node_pool_idstringrequired- UUID of the node pool. Get it from digitalocean_kubernetes_node_pools_list. Example: cdda885e-7663-40c8-bc74-3a036c66545d.
digitalocean_load_balancer_deleteDelete a load balancer.DestructiveDelete Load Balancer
Delete a load balancer. The Droplets behind it are not affected. Returns an empty response (HTTP 204) on success. Use digitalocean_load_balancer_delete to remove a load balancer permanently.
- Idempotent
Inputs
lb_idstringrequired- UUID of the load balancer. Get it from digitalocean_load_balancers_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_load_balancer_droplets_removeRemove Droplets from a load balancer that selects Droplets by ID.DestructiveRemove Droplets from Load Balancer
Remove Droplets from a load balancer that selects Droplets by ID. The Droplets themselves are not changed. Returns an empty response (HTTP 204) on success. Use digitalocean_load_balancer_droplets_remove to take backends out of rotation.
- Idempotent
Inputs
droplet_idsarrayrequired- IDs of the Droplets to remove. Example: [3164444].
lb_idstringrequired- UUID of the load balancer. Get it from digitalocean_load_balancers_list. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_project_deleteDelete an empty project.DestructiveDelete Project
Delete an empty project. A project with resources returns 412; move or delete its resources first. Returns an empty response (HTTP 204) on success. Use digitalocean_project_delete to remove a project. The default project cannot be deleted.
- Idempotent
Inputs
project_idstringrequired- UUID of the project to delete. Example: 4de7ac8b-495b-4884-9a69-1050c6793cd6.
digitalocean_reserved_ip_deleteRelease a reserved IP address from the account.DestructiveDelete Reserved IP
Release a reserved IP address from the account. Returns an empty response (HTTP 204) on success. Use digitalocean_reserved_ip_delete to stop paying for an unused IP. Unassign it first with digitalocean_reserved_ip_action_run.
- Idempotent
Inputs
reserved_ipstringrequired- The reserved IPv4 address itself. Example: 45.55.96.47.
digitalocean_snapshot_deleteDelete a Droplet or volume snapshot.DestructiveDelete Snapshot
Delete a Droplet or volume snapshot. Returns an empty response (HTTP 204) on success. Use digitalocean_snapshot_delete to clean up old snapshots and stop paying for them.
- Idempotent
Inputs
snapshot_idstringrequired- ID of the snapshot: a number for Droplet snapshots, a UUID for volume snapshots. Example: 6372321.
digitalocean_ssh_key_deleteRemove an SSH key from the account.DestructiveDelete SSH Key
Remove an SSH key from the account. Droplets that already have the key keep it. Returns an empty response (HTTP 204) on success. Use digitalocean_ssh_key_delete to stop offering a key for new Droplets.
- Idempotent
Inputs
ssh_key_idstringrequired- Numeric ID or fingerprint of the SSH key to delete. Example: 512189.
digitalocean_tag_deleteDelete a tag and remove it from every resource.DestructiveDelete Tag
Delete a tag and remove it from every resource. Returns an empty response (HTTP 204) on success. Use digitalocean_tag_delete to remove a tag everywhere. Use digitalocean_tag_resources_unassign to untag specific resources.
- Idempotent
Inputs
tag_idstringrequired- Name of the tag. Example: env:prod.
digitalocean_tag_resources_unassignRemove a tag from specific Droplets, databases, images, volumes or volume snapshots.DestructiveUntag Resources
Remove a tag from specific Droplets, databases, images, volumes or volume snapshots. Returns an empty response (HTTP 204) on success. Use digitalocean_tag_resources_unassign to untag some resources. Use digitalocean_tag_delete to remove the tag everywhere.
- Idempotent
Inputs
resourcesarrayrequired- Resources to untag. Each item has resource_id (as a string) and resource_type: droplet, image, volume, volume_snapshot or database. Example: [{"resource_id": "9569411", "resource_type": "droplet"}].
tag_idstringrequired- Name of the tag. Example: env:prod.
digitalocean_volume_deleteDelete a block storage volume and all of its data.DestructiveDelete Volume
Delete a block storage volume and all of its data. The volume must be detached first. Returns an empty response (HTTP 204) on success. Use digitalocean_volume_delete to remove a volume permanently. Detach it with digitalocean_volume_action_run first.
- Idempotent
Inputs
volume_idstringrequired- UUID of the block storage volume. Get it from digitalocean_volumes_list. Example: 7724db7c-e098-11e5-b522-000f53304e51.
No tools match.