◎ Discry Score
legends.com
ai · API
F
0 / 100
DISCOVERY0
COMPREHENSION0
Category leader: 99 (A)
Discry your API →
AI · RANK #41 OF 43

Legends is Not Agent-Ready to agents.

Discry independently scored how well an AI agent can discover and understand the Legends 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 · 29/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.Fail
.well-known/mcp.jsonA discoverable MCP manifest at a well-known path.Fail
MCP registryThe API is listed in a public MCP registry.Fail
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 · 26/100
Task-oriented descriptionsEndpoints described by what they accomplish, not just their shape.Partial
Realistic examplesRunnable, real-world request/response examples.Fail
Multi-step workflowsDocs that chain calls into complete jobs an agent can follow.Fail
Error-recovery guidanceDocumented failure modes and how to recover from them.Fail
Answer-first formatThe answer leads; preamble does not bury it.Pass
Capability boundariesClear limits — what the API can and cannot do.Fail
Naming consistencyConsistent, predictable naming across endpoints.Fail
Heading hierarchyClean heading structure agents can navigate.Partial
Markdown docsDocs available as clean markdown, not JS-rendered HTML only.Partial
Token efficiencyDocs are concise enough to fit an agent context window.Partial

What we found

  • An agent that starts at the branded domain (livemylegend.com) hits a wall: the Squarespace robots.txt returns 'Disallow: /' for every major AI crawler (GPTBot, ClaudeBot, anthropic-ai, CCBot, Google-Extended, Amazonbot), so the marketing site is off-limits and there is no llms.txt, llms-full.txt, or MCP manifest to fall back on.
  • The actual API is undiscoverable from the brand site -- it lives on an unlinked subdomain (traveldna.livemylegend.com) exposed only through a raw FastAPI Swagger UI, so an agent finds it by luck (web search) rather than by any signal the company published.
  • The one bright spot is a valid, publicly reachable OpenAPI 3.1 spec covering 21 operations, and 20 of them carry prose descriptions -- some genuinely task-oriented (the /v1/usermetadataresult/{type}/{refID} endpoint explains its 1=Country, 2=City... type mapping in full).
  • The spec ships zero request/response examples and mixes casing styles freely (birthDate, createdDate, deviceID alongside core_preferences, freq_of_travel, contactno), so an agent must guess payload shapes and can't rely on consistent field naming.
  • There is no getting-started guide, no multi-step workflow documentation, and no error-recovery guidance -- an agent trying to chain token -> create user -> insert metadata -> read results must reverse-engineer the sequence and would discover auth, not-found, and rate-limit behavior only by failing.

What to change

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

  1. 01Stop blocking AI agents at the front door: replace the blanket Squarespace 'Disallow: /' with rules that allow reputable AI crawlers, or at minimum expose the API under an agent-reachable path -- today the branded domain is invisible to every model.
  2. 02Publish an llms.txt at livemylegend.com that names the product, states that the TravelDNA API exists, and links directly to traveldna.livemylegend.com/openapi.json -- this single file is the cheapest way to make the API discoverable.
  3. 03Add realistic request/response examples to every endpoint in the OpenAPI spec (FastAPI supports Field(examples=[...]) and response examples); an agent can't build a correct call from schema types alone.
  4. 04Normalize field naming to one casing convention (pick snake_case or camelCase) across all 45 schema properties, and fix the endpoint summary typos ('Update Compony', 'Getuserdatabytype', 'Uesrmetadata') so terminology is consistent and machine-parseable.
  5. 05Document the non-happy path: add 401/403/404/429 responses with a stable error schema and short recovery notes, plus one end-to-end 'authenticate -> create user -> insert metadata -> fetch results' workflow guide so agents can chain operations without trial and error.

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 (HTTPBearer)company_key issued by Legends (exchanged for an access token via POST /v1/token) Error format documented Rate limits documented Pagination documented Idempotency documented

A two-step auth flow is documented (company_key -> Bearer access token) and validation errors return a machine-parseable HTTPValidationError schema, with a pagination_metadata_refid schema present. However, only 200 and 422 responses are documented across all 21 operations -- no auth-failure, not-found, or rate-limit responses -- and there is no idempotency guidance.

See your own Discry Score.

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

Discry your API — free