# DigitalOcean

Manage DigitalOcean: droplets, databases, kubernetes, volumes, domains, apps. Exposes **45 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `digitalocean_account` | Get account information - GET /account. |
| `digitalocean_droplets_list` | List all droplets - GET /droplets. |
| `digitalocean_droplet_get` | Get one droplet by ID - GET /droplets/&#123;id&#125;. |
| `digitalocean_droplet_create` | Create a new droplet (VM) - POST /droplets. |
| `digitalocean_droplet_update` | Update a droplet name - PATCH /droplets/&#123;id&#125;. |
| `digitalocean_droplet_delete` | Delete a droplet - DELETE /droplets/&#123;id&#125;. |
| `digitalocean_droplet_action` | Perform an action on a droplet - POST /droplets/&#123;id&#125;/actions. |
| `digitalocean_volumes_list` | List all volumes - GET /volumes. |
| `digitalocean_volume_get` | Get one volume by UUID - GET /volumes/&#123;id&#125;. |
| `digitalocean_volume_create` | Create a new volume - POST /volumes. |
| `digitalocean_volume_delete` | Delete a volume - DELETE /volumes/&#123;id&#125;. |
| `digitalocean_volume_attach` | Attach a volume to a droplet - POST /volumes/&#123;id&#125;/attach. |
| `digitalocean_volume_detach` | Detach a volume from a droplet - POST /volumes/&#123;id&#125;/actions. |
| `digitalocean_snapshots_list` | List all snapshots - GET /snapshots. |
| `digitalocean_snapshot_get` | Get one snapshot by UUID - GET /snapshots/&#123;id&#125;. |
| `digitalocean_snapshot_delete` | Delete a snapshot - DELETE /snapshots/&#123;id&#125;. |
| `digitalocean_domains_list` | List all domains - GET /domains. |
| `digitalocean_domain_get` | Get one domain - GET /domains/&#123;name&#125;. |
| `digitalocean_domain_create` | Create a new domain - POST /domains. |
| `digitalocean_domain_delete` | Delete a domain - DELETE /domains/&#123;name&#125;. |
| `digitalocean_dns_records_list` | List DNS records for a domain - GET /domains/&#123;name&#125;/records. |
| `digitalocean_dns_record_create` | Create a DNS record - POST /domains/&#123;name&#125;/records. |
| `digitalocean_dns_record_update` | Update a DNS record - PATCH /domains/&#123;name&#125;/records/&#123;record_id&#125;. |
| `digitalocean_dns_record_delete` | Delete a DNS record - DELETE /domains/&#123;name&#125;/records/&#123;record_id&#125;. |
| `digitalocean_load_balancers_list` | List load balancers - GET /load_balancers. |
| `digitalocean_load_balancer_get` | Get one load balancer by UUID - GET /load_balancers/&#123;id&#125;. |
| `digitalocean_load_balancer_create` | Create a load balancer - POST /load_balancers. |
| `digitalocean_load_balancer_delete` | Delete a load balancer - DELETE /load_balancers/&#123;id&#125;. |
| `digitalocean_kubernetes_list` | List Kubernetes clusters - GET /kubernetes/clusters. |
| `digitalocean_kubernetes_get` | Get one Kubernetes cluster by UUID - GET /kubernetes/clusters/&#123;id&#125;. |
| `digitalocean_kubernetes_create` | Create a Kubernetes cluster - POST /kubernetes/clusters. |
| `digitalocean_kubernetes_delete` | Delete a Kubernetes cluster - DELETE /kubernetes/clusters/&#123;id&#125;. |
| `digitalocean_databases_list` | List managed databases - GET /databases. |
| `digitalocean_database_get` | Get one database cluster by UUID - GET /databases/&#123;id&#125;. |
| `digitalocean_database_create` | Create a managed database - POST /databases. |
| `digitalocean_database_delete` | Delete a database cluster - DELETE /databases/&#123;id&#125;. |
| `digitalocean_firewalls_list` | List firewalls - GET /firewalls. |
| `digitalocean_firewall_get` | Get one firewall by UUID - GET /firewalls/&#123;id&#125;. |
| `digitalocean_firewall_create` | Create a firewall - POST /firewalls. |
| `digitalocean_firewall_delete` | Delete a firewall - DELETE /firewalls/&#123;id&#125;. |
| `digitalocean_projects_list` | List projects - GET /projects. |
| `digitalocean_project_get` | Get one project by UUID - GET /projects/&#123;id&#125;. |
| `digitalocean_project_create` | Create a project - POST /projects. |
| `digitalocean_project_delete` | Delete a project - DELETE /projects/&#123;id&#125;. |
| `digitalocean_billing_history` | Get billing history - GET /customers/my/billing_history. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`DIGITALOCEAN_API_TOKEN`** - DigitalOcean - API - Tokens/Keys - Generate New Token. (https://cloud.digitalocean.com/account/api/tokens)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `DIGITALOCEAN_API_TOKEN` | DigitalOcean - API - Tokens/Keys - Generate New Token. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/)
