{"target":"https://attio.com/","display_target":"attio.com","report_url":"https://waymark.genedai.me/score/attio.com","score":75,"score_label":"Usable with gaps","scanned_at":"2026-08-24T02:17:02.667Z","eligible_checks":58,"score_breakdown":{"discovery":{"earned":17,"available":20,"passing":15,"total":18},"access":{"earned":24.7,"available":30,"passing":19,"total":27},"usability":{"earned":25.8,"available":40,"passing":8,"total":13},"payments":{"earned":0,"available":0,"passing":0,"total":0}},"issues":[{"id":"openapi-or-swagger-link","name":"OpenAPI / Swagger link","result":"failed","layer":"access","details":"No OpenAPI/Swagger link in HTML.","recommendation":"Link to an OpenAPI or Swagger document from the homepage."},{"id":"feed-or-rss","name":"RSS or Atom feed","result":"failed","layer":"access","details":"No RSS/Atom link.","recommendation":"Expose an RSS or Atom feed for machine subscribers."},{"id":"not-blocking-common-ai-bots","name":"AI crawlers not blanket-blocked","result":"failed","layer":"access","details":"robots.txt Disallow: / for * or common AI bots.","recommendation":"Avoid Disallow: / for GPTBot, ClaudeBot, PerplexityBot unless intentional."},{"id":"wm-http-link-header","name":"HTTP Link header","result":"failed","layer":"discovery","details":"No rel=sitemap|describedby|api-catalog|alternate on homepage.","recommendation":"Send RFC 8288 Link headers for related machine resources."},{"id":"wm-markdown-negotiate","name":"Markdown negotiation","result":"failed","layer":"access","details":"Homepage did not negotiate markdown.","recommendation":"Respond to Accept: text/markdown with a markdown body."},{"id":"wm-index-md","name":"/index.md fallback","result":"failed","layer":"access","details":"index.md status 404.","recommendation":"Serve a markdown homepage at /index.md."},{"id":"wm-mcp-apps","name":"MCP Apps UI hint","result":"failed","layer":"usability","details":"No MCP Apps hint (N/A unless you return UI).","recommendation":"If you return UI, declare io.modelcontextprotocol/ui resources."},{"id":"wm-oauth-resource","name":"OAuth protected resource","result":"failed","layer":"access","details":"AS present but no resource metadata.","recommendation":"Publish RFC 9728 oauth-protected-resource if APIs are OAuth-gated."},{"id":"wm-api-catalog","name":"API catalog linkset","result":"failed","layer":"discovery","details":"API present without RFC 9727 catalog.","recommendation":"Add /.well-known/api-catalog pointing at OpenAPI."},{"id":"wm-security-txt","name":"security.txt","result":"failed","layer":"access","details":"No /.well-known/security.txt Contact.","recommendation":"Publish /.well-known/security.txt with a Contact field."},{"id":"wm-change-password","name":"change-password well-known","result":"failed","layer":"access","details":"Login surface without /.well-known/change-password.","recommendation":"If users have passwords, serve /.well-known/change-password."},{"id":"wm-rate-limit-hint","name":"Rate limit signal","result":"partial","layer":"usability","details":"API surface without a rate-limit signal.","recommendation":"Document or send rate-limit headers on APIs."},{"id":"wm-idempotency-hint","name":"Idempotency signal","result":"partial","layer":"usability","details":"API surface without idempotency notes.","recommendation":"Document idempotency keys for mutating calls."},{"id":"wm-json-error-hint","name":"Machine-readable errors","result":"partial","layer":"usability","details":"API surface without a JSON error shape.","recommendation":"Return a JSON or problem+json error body."},{"id":"wm-cli","name":"CLI tool","result":"failed","layer":"usability","details":"No CLI mention.","recommendation":"Publish an official CLI."},{"id":"wm-pkg-home","name":"Package homepage match","result":"failed","layer":"discovery","details":"No npm package homepage matching attio.com.","recommendation":"Publish an official package whose homepage is this domain."}]}