Digitaloceandigitalocean.com
DigitalOcean's API program is in strong shape across design, discovery, and documentation — partners and agents encounter a well-structured, highly readable surface. The one meaningful gap is operational reliability: the vast majority of mutating operations carry no idempotency guidance, which puts agents and automated partners at real risk of duplicate writes on retries.
API DesignA clean, typed, well-governed API contract agents can reason about4 pass1 warn0 fail93A+
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Machine-readable, versioned contractvia spec | 25/25 | The API declares version "2.0" and uses url-based versioning, so an agent can pin to a stable contract. Investigated: spec 100%, docs 100%. | A current OpenAPI version with a declared versioning scheme lets agents reason about the contract. |
| pass | Auth declared & discoverablevia spec | 25/25 | Authentication is required across the API (declared globally or on every operation), so an agent knows credentials are needed. Investigated: spec 100%, docs 100%. | Agents can only call an API when they can determine its auth posture — a declared scheme, or an explicit statement that none is required. |
| warn | Schema coverage & depthvia spec | 16.7/25 | Only 86% of the 838 operations document both request and response schemas (target 95%+), so an agent can't reliably call the rest. Investigated: spec 67%, sdk 60%. Fix: Document request body and 2xx response schemas for every non-deprecated operation. | Typed, complete request/response schemas are what make agent function-calling possible. |
| pass | Security & governance hygienevia spec | 15/15 | No credential-shaped strings detected in spec. Investigated: spec 100%, sdk 100%, wellknown 100%. | No leaked secrets, no critical lint violations, no OWASP API Top-10 spec smells, and a published vulnerability-disclosure channel. |
| pass | Example coveragevia spec | 10/10 | 91% of parameters and responses (5914 of 6485) include example values, grounding an agent in real payload shapes. Investigated: spec 100%, docs 100%, sdk 100%. | Examples carry shape semantics schemas under-specify — for humans and agents alike. |
Developer ExperienceThe context both developers and agents need to integrate fast — onboarding, code samples, complete descriptions and worked examples5 pass0 warn0 fail100A+
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Self-service developer portalvia docs | 29/29 | Signup page at https://www.digitalocean.com/community (client-rendered, so its contents couldn't be classified); free tier or sandbox is documented in pricing/docs. Investigated: docs 100%. | A first call without a human in the loop — self-serve credentials, a free tier, or an API that needs none. |
| pass | Quickstart presentvia docs | 25/25 | Quickstart at https://docs.digitalocean.com/products/ includes a runnable first-call code sample. Investigated: docs 100%. | A quickstart is the fastest path from landing page to first successful call. |
| pass | Code samples in docsvia docs | 18/18 | Docs show code samples in 4 language(s) (top: curl, python, go), and 3 of 20 sampled pages offer ≥ 2 languages side by side. Investigated: docs 100%. | Multi-language samples shorten time-to-first-call. |
| pass | Description completenessvia spec | 15/15 | 99% of operations and parameters carry substantive descriptions (826 of 838 ops, 1371 of 1385 params), the main semantic cue an agent relies on. Investigated: spec 100%, sdk 98%. | Complete descriptions are the context humans and agents need to use endpoints. |
| pass | Changelog publishedvia spec | 13/13 | changelog is documented on the docs site at https://docs.digitalocean.com/release-notes/, even though it isn't declared in the API spec. Investigated: spec 100%, docs 100%. | A published changelog lets partners track changes without surprise. |
Agent DiscoveryPartners and their agents can find your APIs — llms.txt, registries, crawlable and reachable docs2 pass2 warn0 fail89A
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Registry & SDK presencevia docs | 28/28 | Indexed on Context7 (websites/digitalocean, 50443 snippets). Investigated: docs 100%, cli 100%, sdk 67%, mcp 0%, wellknown 0%. | Listing in MCP registries and publishing SDKs puts the API where agents and their tooling look. |
| warn | llms.txt present, valid & comprehensivevia docs | 24.5/30 | llms.txt covers 311/5098 sitemap doc pages (6%); 4787 missing; 10 llms.txt links not in sitemap (may indicate stale links or incomplete sitemap) — Missing: https://docs.digitalocean.com/products/managed-agents/action-gateway/details/what-you-can-build/, https://docs.digitalocean.com/products/microvms/details/features/, https://docs.digitalocean.com/products/agent-data-services/details/features/, https://docs.digitalocean.com/products/evaluations/details/features/, https://docs.digitalocean.com/products/managed-agents/agent-harness-runtime/details/what-you-can-build/ (and 45 more). Investigated: docs 82%, sdk 0%. | A valid, comprehensive llms.txt is the machine-readable entry point for agents. |
| warn | Docs reachable, not hard auth-gatedvia docs | 22.5/30 | Server ignores Accept: text/markdown header (0/50 sampled pages return markdown). Investigated: docs 75%. | Agents can only index and fetch docs they can reach — past auth gates and over correct HTTP semantics. |
| pass | Crawlable / AEOvia wellknown | 12/12 | robots.txt lets all monitored AI crawlers reach the docs paths. Investigated: wellknown 100%. | Bots allowed plus a fresh sitemap make docs findable by agent crawlers. |
Agent UnderstandingAgents can correctly interpret your APIs — machine-readable errors, consistent descriptions, structured data, parseable docs3 pass3 warn0 fail89A
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Machine-readable errors (RFC 9457)via docs | 28/28 | Documents 19 distinct 4xx/5xx error response codes, so an agent can branch on specific failures instead of guessing. Investigated: docs 100%, sdk 100%, spec 50%. | RFC 9457 problem details and a documented error-code inventory let agents parse failures without burning tokens. |
| pass | Operation purpose clarityvia spec | 25/25 | 100% of operations (836 of 838) have both a clear summary and a descriptive name, so an agent can pick the right endpoint. Investigated: spec 100%, sdk 79%. | Agents select the right endpoint from its summary + operationId; clear, named operations make tool-selection reliable — the strongest driver of correct tool choice. |
| warn | Agent-navigable, token-efficient docsvia docs | 20/22 | 1 of 49 pages have substantive content differences between markdown and HTML (avg 1% missing). Investigated: docs 91%. | Server-rendered, clean, small-footprint docs are what an agent can cheaply fetch and parse correctly. |
| pass | Docs structured datavia docs | 8/8 | Machine-readable JSON-LD Article markup on 16 of 16 assessed pages (100%), with dateModified present. Investigated: docs 100%. | Structured data (JSON-LD/schema.org) on docs pages gives agents an unambiguous parse target and is what answer engines cite. Detected on the JS-rendered head (Firecrawl) for a bounded page budget, so JS-injected JSON-LD is now caught; pages we can't render are excluded rather than failed. |
| warn | Agent instructions file (AGENTS.md)via sdk | 5/10 | No agents.md or skill.md context file found (nice-to-have for agent operation). Investigated: sdk 50%, wellknown 0%. Fix: Add an agents.md or skill.md describing how an agent should use this SDK (auth setup, key operations, gotchas). | An AGENTS.md gives coding agents explicit setup, auth, and usage instructions to interpret and operate the API — beyond llms.txt's link index. |
| warn | Description consistency across surfaces | 1/7 | Mean pairwise description similarity across 2 surfaces (docs, sdk) is 5% (threshold 35% for full credit). Fix: Align the API description across spec, docs, and SDK so an agent reading any one surface gets the same story. | Every surface tells the same story about what the product is. |
Agent UsabilityAgents have the context to use your APIs reliably, not just find them4 pass0 warn1 fail77B
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Rate-limit signalingvia spec | 22/22 | Documents 4 distinct rate-limit response headers, so an agent can back off before getting throttled. Investigated: spec 100%, docs 100%. | Machine-readable rate-limit headers let agents throttle adaptively. |
| pass | Pagination documented & consistentvia spec | 22/22 | Pagination parameters are present on the 16 list endpoint(s), so an agent can page through results. Investigated: spec 100%, docs 100%. | Consistent, documented pagination lets agents traverse collections. |
| pass | Sandbox separationvia sdk | 20/20 | Sandbox environments are exposed (sandbox). Investigated: sdk 100%, spec 0%, docs 0%. | An isolated environment lets agents exercise destructive operations safely. |
| pass | Runnable collection with test scriptsvia sdk | 9/9 | README is present and includes a runnable quickstart. Investigated: sdk 100%, platform 0%. | A public, maintained collection with assertions is runnable truth agents validate against. |
| fail | Idempotency documentedvia spec | 0/27 | Only 1% of mutating operations (4 of 407) document idempotency, so an agent's retries can create duplicate writes. Investigated: spec 0%, docs 0%, sdk 0%. Fix: Agents retry on failure; without idempotency, retries create duplicates. Document Idempotency-Key on every POST/PUT/PATCH/DELETE. | Documented idempotency lets agents retry safely. |
Resources Discovered
The public resources we found for Digitalocean — the evidence behind the score. All discovered from public sources; nothing here requires access to your systems.
| Agent hints | Context7 (50,443) |
|---|---|
| APIs analyzed | 1 — DigitalOcean API |