canonical: https://jentic.com/apis/docs.digitalocean.com/digitalocean

# Docs Digitalocean DigitalOcean API

The DigitalOcean API is the control plane for DigitalOcean's developer cloud, exposing 589 endpoints across Droplets, Kubernetes clusters, App Platform, managed databases, block and object storage, networking, monitoring, billing and the marketplace. Authenticated via bearer token, it lets developers and platform teams provision compute, scale services, manage DNS and SSH keys, and pull billing data without touching the DigitalOcean console. Useful for IaC tooling, internal developer platforms and cost-reporting workflows.

## For AI agents

Provision and manage DigitalOcean Droplets, Kubernetes clusters, databases, App Platform apps, networking, and account resources through 589 REST endpoints.

## Scope

Does not handle on-prem hardware, raw bare-metal provisioning, or cross-cloud orchestration to AWS, GCP or Azure - use for managing DigitalOcean cloud resources only.

## Capabilities

- Provision Droplets with size, region, image and SSH key configuration
- Create and scale managed Kubernetes (DOKS) clusters and node pools
- Deploy and update App Platform apps from Git or container registry
- Provision managed Postgres, MySQL, Redis and MongoDB databases
- Manage DNS records, floating IPs, load balancers and firewalls
- Read account, billing and invoice data for cost reporting
- Snapshot, back up and restore Droplets and volumes

## Use cases

### Internal Developer Platform

A platform team can wrap the DigitalOcean API behind a self-service portal so application teams provision Droplets, databases and Kubernetes namespaces without learning the DO console. The 589-endpoint surface covers compute, networking, databases and observability, which is enough to be the sole IaaS layer for many small to mid-sized companies.

Example prompt: POST /v2/droplets with size=s-2vcpu-2gb, region=nyc3 and an SSH key id, then GET /v2/droplets/{id} until status=active and return the public IP.

### Infrastructure as Code Tooling

Build or extend an IaC tool that reconciles desired state with DigitalOcean by reading and writing through the API. Endpoints under /v2/droplets, /v2/kubernetes/clusters, /v2/apps and /v2/databases let the tool create, update or destroy resources in dependency order. Useful for teams that have outgrown raw shell scripts but don't want full Terraform overhead.

Example prompt: GET /v2/droplets and diff against a desired-state file, then POST or DELETE droplets to converge with the spec.

### FinOps and Cost Reporting

Pull billing history, invoices and resource inventories to feed a FinOps dashboard. /v2/customers/my/billing_history and /v2/customers/my/invoices give the financial side, while listing droplets, clusters and databases gives unit counts. This makes monthly chargeback to product teams straightforward.

Example prompt: GET /v2/customers/my/invoices for the last 6 months and aggregate amount by product to send to finance.

### AI Agent Cloud Operator

Through Jentic, an AI agent can act as a chat-driven cloud operator - answering 'how many Droplets are we running in nyc3?' or executing 'restart the redis database in staging'. The agent searches Jentic for the right operation, loads its schema and executes against a scoped DigitalOcean token. This gives small teams 24/7 ops coverage without a full SRE rota.

Example prompt: Use Jentic to search 'list DigitalOcean Droplets', load /v2/droplets, and execute it filtered by tag_name='staging' to summarise running infrastructure.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v2/account | Get account profile |
| GET | /v2/apps | List App Platform apps |
| POST | /v2/apps | Create an App Platform app |
| GET | /v2/account/keys | List SSH keys on the account |
| GET | /v2/actions | List recent account actions |
| GET | /v2/1-clicks | List 1-Click marketplace applications |

## Key resources

- **Droplets** — Provision, list, snapshot and destroy virtual machines
- **Kubernetes** — Manage DOKS clusters and node pools
- **Apps** — Deploy and update App Platform apps
- **Databases** — Provision and scale managed Postgres, MySQL, Redis and MongoDB
- **Networking** — DNS, firewalls, load balancers and floating IPs
- **Block Storage** — Volumes that attach to Droplets
- **Account and Billing** — Account profile, billing history and invoices

## Why Jentic

- **Setup:** Wiring DigitalOcean by hand means carrying its bearer token and navigating a very large v2 surface across accounts, apps, and actions yourself. Through Jentic you install once, import the DigitalOcean API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** A DigitalOcean personal access token typically has full account access, so scope your agent to the operations it needs, such as reading the account or listing apps. You choose the operations it may call, so creating an app is not included unless you add it.
- **Credential handling:** Your DigitalOcean personal access token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'read my DigitalOcean account' or 'list my apps', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Docker Engine API** — Runs containers on the Droplets and DOKS nodes provisioned via DigitalOcean
- **AWS API** — Hyperscaler cloud - alternative when DigitalOcean's region or service breadth isn't enough
- **AWS Lambda** — AWS provides serverless compute as an alternative to DigitalOcean App Platform/Functions.
- **GitHub REST API** — Trigger DigitalOcean app deploys from GitHub commits.

## FAQ

### What authentication does the DigitalOcean API use?

DigitalOcean uses HTTP bearer tokens (Personal Access Tokens). The token is supplied in the Authorization header as 'Bearer <token>'. Through Jentic, tokens are stored encrypted in the vault and the agent receives a scoped reference, so PATs are not exposed to model context or logs.

### Can I provision a Droplet with the DigitalOcean API?

Yes. POST /v2/droplets with size, region, image and ssh_keys. The response returns an action and the new Droplet id; poll GET /v2/droplets/{id} until status is 'active' to obtain the public IP.

### What are the rate limits for the DigitalOcean API?

DigitalOcean enforces 5,000 requests per hour per token by default. The burst is enforced over a sliding window - agents that hit 429 should back off and retry with exponential delay. Token-level limits are visible in response headers.

### How do I deploy an App Platform app with the DigitalOcean API through Jentic?

Search Jentic for 'create DigitalOcean App Platform app', load POST /v2/apps and execute it with a spec referencing your GitHub repo and run command. Jentic stores the bearer token so the agent never sees the raw PAT.

### Can I read invoices and billing history with the DigitalOcean API?

Yes. /v2/customers/my/invoices lists invoices and /v2/customers/my/billing_history returns line-item history, suitable for chargeback dashboards and FinOps reports.

### Is the DigitalOcean API free?

API access is free; you only pay for the underlying resources you provision (Droplets, databases, App Platform plans, bandwidth). There is no separate API call charge in DigitalOcean's pricing.

### Can I limit what my agent is allowed to do with the DigitalOcean API?

Yes. Because Jentic One is self-hosted, your own rules decide which DigitalOcean operations and credentials the agent may use, which matters here since a DigitalOcean personal access token normally carries full account access. You can restrict the agent to read-only calls such as GET /v2/account or listing apps with GET /v2/apps, and leave out write operations like POST /v2/apps or provisioning Droplets unless you explicitly add them. The token is injected at execution time and never enters the agent's prompt or logs, so the agent only ever exercises the operations you allow.
