◎ Discry Score
fly.io.com
infrastructure · API
B
0 / 100
DISCOVERY0
COMPREHENSION0
Category leader: 98 (A)
Discry your API →
INFRASTRUCTURE · RANK #28 OF 68

Fly.io is Good to agents.

Discry independently scored how well an AI agent can discover and understand the Fly.io API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.

Discry your API — freeView the docs ↗

SCORED UNDER RUBRIC 1.2 · A full re-launch under Discry Score 2.5 — a new behavioral instrument, not comparable to these scores — is in progress.

Discovery

45% of score · 55/100
OpenAPI specA machine-readable OpenAPI/Swagger spec agents can parse.Pass
llms.txtAn llms.txt index that points agents to the docs that matter.Pass
llms.txt qualityThe llms.txt is focused, current, and well under the size budget.Pass
llms-full.txtA full-text bundle agents can load in one request.Fail
AGENTS.mdAn AGENTS.md that tells coding agents how to build on the API.Fail
.well-known/mcp.jsonA discoverable MCP manifest at a well-known path.Fail
MCP registryThe API is listed in a public MCP registry.Partial
robots.txt AI directivesrobots.txt allows (or explicitly guides) AI crawlers.Fail
SitemapA sitemap so agents can enumerate the docs surface.Partial

Comprehension

55% of score · 96/100
Task-oriented descriptionsEndpoints described by what they accomplish, not just their shape.Pass
Realistic examplesRunnable, real-world request/response examples.Pass
Multi-step workflowsDocs that chain calls into complete jobs an agent can follow.Pass
Error-recovery guidanceDocumented failure modes and how to recover from them.Partial
Answer-first formatThe answer leads; preamble does not bury it.Pass
Capability boundariesClear limits — what the API can and cannot do.Pass
Naming consistencyConsistent, predictable naming across endpoints.Pass
Heading hierarchyClean heading structure agents can navigate.Pass
Markdown docsDocs available as clean markdown, not JS-rendered HTML only.Pass
Token efficiencyDocs are concise enough to fit an agent context window.Pass

What we found

  • An agent can fully understand and operate the Machines REST API from the docs alone: every resource (Apps, Machines, Volumes, Tokens, Certificates) leads with a task-oriented description and shows copy-pasteable curl examples with realistic IDs (e.g. vol_6r7ye90k98ynwk1r) and real JSON request/response bodies.
  • Fly.io is unusually markdown-native for agents — every doc page exposes a raw `.html.md` source on GitHub plus 'Copy page as markdown' and 'Open in ChatGPT' affordances, and ships a well-structured 36KB llms.txt with sectioned, described links. Comprehension scored 96/100 (A).
  • Discovery is the weak dimension (55/100, D): there is NO robots.txt (404), no llms-full.txt, no .well-known/mcp.json, and no AGENTS.md in the primary superfly repos — so several standard agent-discovery signals an agent would probe for return nothing.
  • Capability boundaries are exceptionally clear for an infra API: exact rate limits per action, explicit constraints ('you can't make a volume smaller'), and beta features flagged inline — an agent learns the limits from docs rather than by failing.
  • A publicly accessible OpenAPI 3.0 spec (docs.machines.dev, with Swagger UI) means an agent can generate a typed client in any language, partially offsetting the docs' curl-only code samples.

What to change

Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.

  1. 01Add a robots.txt at the root that explicitly allows AI crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot) — its absence (404) is the single biggest discovery loss and an easy fix.
  2. 02Publish an AGENTS.md in the primary superfly repos (flyctl, docs) describing how coding agents should build, deploy, and operate apps on Fly.io — a rising standard worth 3 points and a natural fit given Fly's existing agent investments.
  3. 03Generate an llms-full.txt that concatenates the core Machines API and Fly Launch docs into one markdown file, so an agent can ingest the full surface in a single fetch.
  4. 04Expand the Response Codes section into actionable recovery guidance — pair each status (400/401/408/429/5xx) with what to do next (e.g. 'on 429, back off and retry the per-action limit of 1 req/s'), and name the rate-limit response headers.
  5. 05Include the documentation pages in sitemap.xml — the current sitemap index covers only marketing/landing URLs, so /docs pages aren't surfaced to crawlers.

Execution coverage · INFORMATIONAL, UNSCORED

Whether an agent can actually complete a call and recover from errors is the deeper Audit layer — documented here, but not part of the Discry Score.

Bearer token (Fly.io API token / macaroon)Scoped tokens (app-scoped, org-scoped)OpenID Connect (OIDC) tokens Error format documented Rate limits documented Pagination documented Idempotency documented

Strong execution documentation: macaroon-based scoped Bearer tokens, a conventional HTTP status-code table, and precise per-action rate limits (1 req/s, burst 3; Get Machine 5/10; app deletions 100/min). Gaps: no idempotency-key support is documented, and list endpoints use query-filter selection rather than cursor/offset pagination.

See your own Discry Score.

Drop your API docs URL. See what an agent sees — in 60 seconds, free.

Discry your API — free