◎ Discry Score
canva.com
productivity · API
C
0 / 100
DISCOVERY0
COMPREHENSION0
Category leader: 92 (A)
Discry your API →
PRODUCTIVITY · RANK #16 OF 24

Canva is Needs Work to agents.

Discry independently scored how well an AI agent can discover and understand the Canva 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 · 52/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.Fail
llms.txt qualityThe llms.txt is focused, current, and well under the size budget.Fail
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.Partial
.well-known/mcp.jsonA discoverable MCP manifest at a well-known path.Fail
MCP registryThe API is listed in a public MCP registry.Pass
robots.txt AI directivesrobots.txt allows (or explicitly guides) AI crawlers.Partial
SitemapA sitemap so agents can enumerate the docs surface.Pass

Comprehension

55% of score · 82/100
Task-oriented descriptionsEndpoints described by what they accomplish, not just their shape.Pass
Realistic examplesRunnable, real-world request/response examples.Partial
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.Partial
Token efficiencyDocs are concise enough to fit an agent context window.Pass

What we found

  • Canva's robots.txt explicitly disallows */llms.txt, */llms-full.txt, and */*.md — actively blocking AI-optimized discovery paths while other discovery signals are absent
  • The Connect API documentation is exceptionally well-structured with task-oriented descriptions, clear auth/scope requirements per endpoint, and per-endpoint rate limits
  • Official Canva MCP server exists with OAuth auto-flow — listed on PulseMCP and Smithery, plus a dedicated Dev MCP server reference app in their docs
  • OpenAPI spec publicly available at canva.dev/sources/connect/api/latest/api.yml and in the GitHub starter kit repo
  • Error response documentation lists 30+ error codes but lacks actionable recovery guidance — 'invalid_field' doesn't explain which field or what valid values are

What to change

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

  1. 01Remove the robots.txt disallow rules for */llms.txt and */llms-full.txt, then publish an llms.txt covering the Connect API surface area
  2. 02Add error recovery guidance to the error responses page — for each error code, explain what triggered it and what the caller should do to fix it
  3. 03Create .well-known/mcp.json pointing to the official Canva MCP server with tool declarations and OAuth config
  4. 04Add llms-full.txt with comprehensive markdown covering all Connect API endpoints for agent consumption
  5. 05Expand code examples beyond JSON request/response bodies to include complete curl commands and SDK snippets in Python/Node.js

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.

oauth2 Error format documented Rate limits documented Pagination documented Idempotency documented

OAuth 2.0 with Bearer token auth, scoped permissions per endpoint. Structured JSON error responses with code and message fields. Per-endpoint rate limits documented (e.g., 20 req/min for create design). Cursor-based pagination. No idempotency key support documented.

See your own Discry Score.

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

Discry your API — free