> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DigitalOcean

> Connect DigitalOcean to your Atako agents — 17 read and 5 write actions.

Let your agents watch and operate your DigitalOcean infrastructure — browse Droplets, reboot, shut down or power them on, read App Platform apps and deployments, trigger a redeploy, check app health, read managed database clusters and their events, manage DNS records, list projects and read the account balance.

## Connection

* **Authentication**: API key (DigitalOcean personal access token).

<Note>
  Log in to the DigitalOcean Control Panel → Account → API → Tokens tab → Personal access tokens → Generate New Token. Name it, pick an expiration, then under Scopes choose "Custom Scopes" and tick only what you need: account:read (lets the connection check the token), droplet:read, droplet:update (reboot, shut down, power on), app:read, app:update (trigger a deployment), database:read, domain:read, domain:create (create DNS records), project:read, billing:read (balance), and tag:read if you filter Droplets by tag. Click Generate Token and copy it — it is shown only once. "Read Only" also works for reads; avoid "Full Access".

  See [DigitalOcean's documentation](https://docs.digitalocean.com/reference/api/create-personal-access-token/).
</Note>

## Read actions (17)

| Action | Description |
| - | - |
| `get_account` | Get the account the token belongs to: uuid, name, email, email\_verified, status (active, warning, locked), Droplet and floating IP limits, current team. No argument. |
| `get_app` | Get one App Platform app: spec (components, domains, ingress), live\_url, region, active / in-progress / pending deployment, created\_at. Environment variable values, registry credentials and log-destination keys are removed from every spec (variable keys are kept). Required: app\_id (string, the id from list\_apps or a "do:app:\<id>" URN from list\_project\_resources). |
| `get_app_health` | Get the health of an App Platform app: per component, cpu\_usage\_percent, memory\_usage\_percent, replicas\_desired, replicas\_ready and state (HEALTHY, UNHEALTHY, UNKNOWN); function components carry their health metrics. Required: app\_id (string, the id from list\_apps or a "do:app:\<id>" URN from list\_project\_resources). |
| `get_balance` | Get the account balance: month\_to\_date\_balance, account\_balance, month\_to\_date\_usage and generated\_at. No argument. Requires billing:read. |
| `get_database` | Get one managed database cluster: engine, version, status, size, num\_nodes, region, storage\_size\_mib, db\_names, maintenance\_window, trusted-source rules, connection details (host, port, user, database, ssl) and users (name, role). Passwords, connection URIs and Kafka user keys/certificates are removed. Required: database\_cluster\_uuid (uuid, see list\_databases). |
| `get_droplet` | Get one Droplet by id (see list\_droplets or list\_project\_resources): status (new, active, off, archive), size, region, image, networks, volume\_ids, tags, locked. |
| `get_droplet_action` | Get the status of an action run on a Droplet (in-progress, completed, errored), with started\_at / completed\_at. Required: droplet\_id (integer), action\_id (integer, the action.id returned by reboot\_droplet, shutdown\_droplet or power\_on\_droplet). |
| `list_app_deployments` | List the deployments of an App Platform app, newest first: id, phase (PENDING\_BUILD, BUILDING, PENDING\_DEPLOY, DEPLOYING, ACTIVE, SUPERSEDED, ERROR, CANCELED), cause, progress (steps, error\_steps), created\_at, updated\_at and the spec deployed. Environment variable values, registry credentials and log-destination keys are removed from each spec. Required: app\_id (string, see list\_apps). Optional: per\_page (integer 1-200), page (integer ≥ 1). |
| `list_app_instances` | List the running instances of an App Platform app (component name and type, instance name and alias). Required: app\_id (string, the id from list\_apps or a "do:app:\<id>" URN from list\_project\_resources). |
| `list_apps` | List App Platform apps: id, spec (name, region, services, static\_sites, workers, jobs, functions, databases, domains, ingress), live\_url, default\_ingress, active\_deployment, in\_progress\_deployment, pending\_deployment, created\_at, updated\_at. Environment variable values, registry credentials and log-destination keys are removed from every spec (variable keys are kept). Optional: with\_projects (boolean, adds project\_id), per\_page (integer 1-200), page (integer ≥ 1). |
| `list_database_events` | List the event log of a managed database cluster (event id, cluster name, event type, create time). Required: database\_cluster\_uuid (uuid, see list\_databases or a "do:dbaas:\<uuid>" URN from list\_project\_resources). |
| `list_databases` | List managed database clusters: id (uuid), name, engine, version, status, size, num\_nodes, region, db\_names, tags, maintenance\_window, project\_id, connection details (host, port, user, database, ssl) and users (name, role). Passwords, connection URIs and Kafka user keys/certificates are removed. Optional: tag\_name (string, requires tag:read). |
| `list_domain_records` | List the DNS records of a domain (id, type, name, data, priority, port, ttl, weight, flags, tag). Required: domain\_name (e.g. "example.com", see list\_domains). Optional: name (fully qualified record name, e.g. "sub.example.com"), type (A, AAAA, CAA, CNAME, MX, NS, SOA, SRV, TXT), per\_page (integer 1-200), page (integer ≥ 1). |
| `list_domains` | List the domains managed by DigitalOcean DNS (name, ttl, zone\_file). Optional: per\_page (integer 1-200), page (integer ≥ 1). |
| `list_droplets` | List Droplets (id, name, status, size, region, image, networks, tags). Optional: name (exact name, case-insensitive), type ("droplets" = default, non-GPU \| "gpus"), tag\_name (requires tag:read; cannot be combined with name or type), per\_page (integer 1-200), page (integer ≥ 1). |
| `list_project_resources` | List the resources assigned to a project, as URNs: "do:droplet:\<droplet id>", "do:app:\<app id>", "do:dbaas:\<database cluster uuid>", "do:domain:\<domain name>", "do:volume:…", "do:loadbalancer:…", "do:kubernetes:…"… — another way to find app ids and database cluster uuids (see also list\_apps, list\_databases). Required: project\_id (uuid from list\_projects, or "default" for the default project). Optional: per\_page (integer 1-200), page (integer ≥ 1). |
| `list_projects` | List projects (id, name, purpose, environment, is\_default). Optional: per\_page (integer 1-200), page (integer ≥ 1). |

## Write actions (5)

| Action | Description |
| - | - |
| `create_app_deployment` | Trigger a new deployment of an App Platform app from its current spec (redeploy). Arguments: app\_id (string, path, see list\_apps); force\_build (boolean, optional: rebuild from source even if a cached build could be reused). Returns the deployment (follow its phase with list\_app\_deployments); secrets are removed from its spec. Requires app:update. |
| `create_domain_record` | Create a DNS record in a domain. Arguments: domain\_name (string, path, e.g. "example.com", see list\_domains); type (string: A, AAAA, CAA, CNAME, MX, NS, SRV or TXT); name (string, host name relative to the domain, "@" for the apex — required except for MX); data (string: IPv4 for A, IPv6 for AAAA, target host for CNAME / MX / NS / SRV, text for TXT, CA domain for CAA); priority (integer, required for MX and SRV); port (integer, required for SRV); weight (integer, SRV only); flags (integer 0-255, required for CAA); tag (string "issue", "issuewild" or "iodef", required for CAA); ttl (integer, seconds, optional). Requires domain:create. |
| `power_on_droplet` | Power on a Droplet that is off. Arguments: droplet\_id (integer, path, see list\_droplets). Returns an action — follow it with get\_droplet\_action. Requires droplet:update. |
| `reboot_droplet` | Gracefully reboot a Droplet (like running reboot from the console). Arguments: droplet\_id (integer, path, see list\_droplets). Returns an action — follow it with get\_droplet\_action. Requires droplet:update. |
| `shutdown_droplet` | Gracefully shut down a Droplet (like running shutdown from the console; the command is issued, success is not guaranteed — check with get\_droplet\_action and get\_droplet). Arguments: droplet\_id (integer, path, see list\_droplets). Requires droplet:update. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.