{"openapi":"3.1.0","info":{"title":"The Third Way Company Agent-Readiness Check API","version":"1.0.0","summary":"Scores any public website on the conventions AI agents rely on.","description":"Behind the free tool at /tools/agent-ready. POST a URL; the API fetches the site the way a plain, logged-out HTTP agent would (no cookies, no JavaScript rendering) and returns a 0–100 score across fifteen weighted checks: robots.txt, sitemap, page metadata, markdown content negotiation, llms.txt/agents.md, AI crawler rules, content signals, MCP server card, A2A agent card, agent skills, RFC 9727 API catalog, RFC 9728 OAuth protected resource, auth.md, and Web Bot Auth keys. Three further agentic-commerce checks are detection-only and unscored (product structured data, declared product feeds, ACP/UCP discovery files): they return na (\"nothing found\") on sites with no commerce signals and make no compliance claims. Also generates copy-paste fix instructions for coding agents. Public hosts only (private address ranges are refused); rate limited to 20 checks per hour per address.","contact":{"name":"The Third Way Company","url":"https://thethirdwaycompany.com","email":"hello@thethirdwaycompany.com"}},"servers":[{"url":"https://thethirdwaycompany.com"}],"externalDocs":{"description":"Human-readable tool page","url":"https://thethirdwaycompany.com/tools/agent-ready"},"paths":{"/api/agent-check":{"post":{"summary":"Check a website for agent readiness","operationId":"checkAgentReadiness","description":"Fetches the target site from the server side and returns the scored report. Each check returns pass, warn, fail, or na with one line of evidence; a pass earns its full weight, a warn half, and na (commerce signals not found — not applicable) is excluded from the score entirely. CORS is open, so browser-based agents may call it directly.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public website to check. The https:// scheme is added when omitted; private and link-local addresses are refused.","examples":["thethirdwaycompany.com","https://example.com"]}}}}}},"responses":{"200":{"description":"The scored report.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCheckReport"}}}},"400":{"description":"Missing or non-public URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many checks from one address (20 per hour).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The check could not run; retry shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"AgentCheckReport":{"type":"object","properties":{"url":{"type":"string","description":"Normalized host (and path) that was checked."},"score":{"type":"integer","minimum":0,"maximum":100,"description":"Weighted score: pass earns full weight, warn half, fail zero."},"verdict":{"type":"object","properties":{"label":{"type":"string","enum":["Agent-ready","Mostly ready","Partially ready","Not agent-ready"]},"tone":{"type":"string","enum":["good","mid","poor"]}}},"counts":{"type":"object","properties":{"pass":{"type":"integer"},"warn":{"type":"integer"},"fail":{"type":"integer"}}},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable check identifier (e.g. robots, llms-txt)."},"status":{"type":"string","enum":["pass","warn","fail","na"],"description":"na = nothing found / not applicable (detection-only commerce checks); never scored."},"detail":{"type":"string","description":"One line of evidence for the verdict."}}}},"fixPrompt":{"type":"string","description":"Copy-paste markdown instructions for a coding agent to fix the failures."},"checkedAt":{"type":"string","format":"date-time"}}},"Error":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true}}}}