Asana is Good to agents.
Discry independently scored how well an AI agent can discover and understand the Asana API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.
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 · 62/100Comprehension
55% of score · 90/100What we found
- Asana's error documentation is exemplary for agents: includes HTTP status codes with descriptions, realistic request/response examples, the Retry-After header pattern, and unique phrase codes for incident tracking
- Rate limit documentation is among the best seen: specific numbers per tier (150/1500 req/min), concurrent limits by HTTP method, search-specific limits, and explicit guidance that rejected requests still count against quota
- The OpenAPI spec is publicly maintained on GitHub (Asana/openapi) and actively used to generate official client libraries — agents can reliably generate API clients from it
- Discovery infrastructure lags behind comprehension: no sitemap.xml, no llms-full.txt, no .well-known/mcp.json, no AGENTS.md — despite having excellent documentation content
- The llms.txt at 108KB is a comprehensive link dump covering all guides and API reference endpoints but exceeds the 50KB threshold for efficient agent consumption
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Add sitemap.xml at developers.asana.com covering all API documentation pages — currently returns 404
- 02Create a focused API-only llms.txt (<10KB) summarizing core task management workflows and key endpoints, and add llms-full.txt with the complete API documentation in markdown
- 03Add .well-known/mcp.json pointing to the official Asana MCP server listed on PulseMCP and Smithery
- 04Add AGENTS.md to the Asana/openapi or Asana/node-asana repo with context for coding agents on common automation patterns
- 05Add sitemap.xml and consider serving docs with Accept: text/markdown content negotiation for direct LLM consumption
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.
Personal access tokens and OAuth2 authentication. JSON error responses with message field and unique phrase codes for support lookup. Comprehensive rate limits: 150 req/min (free), 1500 req/min (paid), with Retry-After headers. Pagination via offset-based cursors. Client libraries auto-retry on rate limits.