{"target":"https://agentkey.app/","display_target":"agentkey.app","report_url":"https://waymark.genedai.me/score/agentkey.app","score":72.9,"score_label":"Usable with gaps","scanned_at":"2026-09-13T12:20:27.265Z","eligible_checks":77,"score_breakdown":{"discovery":{"earned":17.3,"available":20,"passing":17,"total":21},"access":{"earned":21.9,"available":30,"passing":26,"total":38},"usability":{"earned":23.6,"available":40,"passing":9,"total":17},"payments":{"earned":10,"available":10,"passing":1,"total":1}},"issues":[{"id":"well-known-ai-catalog","name":"Well-known AI catalog","result":"failed","layer":"discovery","details":"No ai-plugin.json or ai-catalog.json.","recommendation":"Add /.well-known/ai-plugin.json or /.well-known/ai-catalog.json."},{"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":"security-headers","name":"CSP or X-Frame-Options","result":"failed","layer":"access","details":"Neither CSP nor X-Frame-Options on homepage.","recommendation":"Send Content-Security-Policy or X-Frame-Options."},{"id":"cors-on-api-hint","name":"CORS / API hint","result":"partial","layer":"access","details":"No CORS header or obvious API path.","recommendation":"If you expose an API, send Access-Control-Allow-Origin for intended clients."},{"id":"oauth-well-known","name":"OAuth / OIDC well-known","result":"failed","layer":"access","details":"No oauth-authorization-server or openid-configuration.","recommendation":"Publish /.well-known/openid-configuration or oauth-authorization-server if you authenticate agents."},{"id":"wm-robots-ai-policy","name":"robots.txt AI policy","result":"partial","layer":"discovery","details":"robots.txt present but no named AI crawlers.","recommendation":"Name GPTBot, ClaudeBot, Google-Extended, PerplexityBot and state allow or deny."},{"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-mcp-initialize","name":"MCP initialize","result":"failed","layer":"usability","details":"No MCP card to initialize","recommendation":"Expose Streamable HTTP MCP and answer initialize."},{"id":"wm-ai-plugin","name":"ai-plugin.json","result":"failed","layer":"discovery","details":"No /.well-known/ai-plugin.json.","recommendation":"Optionally publish a plugin-style capability manifest."},{"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-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-openapi","name":"OpenAPI document","result":"failed","layer":"access","details":"OpenAPI probe.","recommendation":"Publish an OpenAPI document at a stable URL."},{"id":"wm-agent-404","name":"Honest 404","result":"failed","layer":"usability","details":"Unknown path returned the same-origin homepage (SPA 200).","recommendation":"Return HTTP 404 for unknown paths. Soft-shell fail only when the unknown path is a same-origin homepage SPA 200."},{"id":"wm-mcp","name":"MCP server","result":"partial","layer":"usability","details":"MCP mentioned without a documented initialize.","recommendation":"Publish an MCP card or document the MCP URL in llms.txt, then answer initialize."},{"id":"wm-agent-instruction","name":"Agent instruction / when-to-use","result":"failed","layer":"access","details":"Agent file exists without when-to-use guidance.","recommendation":"Tell agents when to reach for you: add a 'when to use this' section to your llms.txt (or a dedicated agent-instructions file) that names your best-fit use cases."},{"id":"wm-org-schema-completeness","name":"Organization schema completeness","result":"failed","layer":"access","details":"Organization JSON-LD missing contactPoint and address.","recommendation":"Add Organization JSON-LD that includes both contactPoint (with email/phone and contactType) and address (PostalAddress)."},{"id":"wm-llms-txt-links-resolve","name":"llms.txt links resolve","result":"partial","layer":"access","details":"5 real, 2 homepage-shell, 1 dead of 8 sampled links.","recommendation":"Make every link your llms.txt declares resolve to real content, not a homepage shell 200."},{"id":"wm-markdown-frontmatter","name":"Markdown frontmatter metadata","result":"failed","layer":"access","details":"Served markdown has no YAML frontmatter block.","recommendation":"Open served markdown with a --- frontmatter block carrying title plus description, canonical, or last-updated."},{"id":"wm-page-token-budget","name":"Page token budget","result":"failed","layer":"access","details":"Extracted text is 117077 characters, over the ~100k agent budget.","recommendation":"Keep each page's extracted text under ~100K characters so it fits an agent's context window."},{"id":"wm-ax-document-structure","name":"Accessible document structure","result":"partial","layer":"usability","details":"Landmarks partial (main=false nav=true h1=true skip=false).","recommendation":"Give the homepage a main region, nav, H1, and a heading order that does not skip levels."},{"id":"wm-rest-sdk-packages","name":"Multi-language SDK packages","result":"partial","layer":"usability","details":"npm matches; second ecosystem homepage does not.","recommendation":"Publish official SDK packages on npm and PyPI whose homepage is this domain."}]}