{"openapi":"3.1.0","info":{"title":"Pocketestimator API surface","description":"Instant professional construction & trade estimate generator","version":"0.1.0"},"servers":[{"url":"https://www.pocketestimator.pro"}],"paths":{"/":{"get":{"summary":"Landing page (HTML)","responses":{"200":{"description":"OK","content":{"text/html":{}}}}}},"/health":{"get":{"summary":"Deploy health check — {ok, commit}","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/robots.txt":{"get":{"summary":"Crawler rules incl. per-AI-bot allow groups","responses":{"200":{"description":"OK","content":{"text/plain":{}}}}}},"/sitemap.xml":{"get":{"summary":"XML sitemap with lastmod","responses":{"200":{"description":"OK","content":{"application/xml":{}}}}}},"/llms.txt":{"get":{"summary":"llms.txt — the AI-readable site map","responses":{"200":{"description":"OK","content":{"text/plain":{}}}}}},"/llms-full.txt":{"get":{"summary":"llms-full.txt — docs and posts inline for agents","responses":{"200":{"description":"OK","content":{"text/plain":{}}}}}},"/blog/feed.xml":{"get":{"summary":"Blog Atom feed","responses":{"200":{"description":"OK","content":{"application/atom+xml":{}}}}}},"/openapi.json":{"get":{"summary":"This document","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/agents.txt":{"get":{"summary":"agents.txt — machine-readable interface & rules","responses":{"200":{"description":"OK","content":{"text/plain":{}}}}}},"/.well-known/openapi.json":{"get":{"summary":"Alias to /openapi.json","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/.well-known/mcp":{"post":{"summary":"Alias to /api/mcp","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/.well-known/agent-card.json":{"get":{"summary":"A2A Agent Card (skills, capabilities, plans)","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/.well-known/agent.json":{"get":{"summary":"308 redirect to /.well-known/agent-card.json","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/.well-known/mcp/server-card.json":{"get":{"summary":"Smithery-format MCP Server Card","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/api/mcp":{"post":{"summary":"MCP JSON-RPC endpoint (initialize, tools/list, tools/call)","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/.well-known/mcp-registry-auth":{"get":{"summary":"MCP registry publish proof (public key record)","responses":{"200":{"description":"OK","content":{"text/plain":{}}}}}},"/api/t":{"post":{"summary":"Page-view beacon intake (analytics v2)","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/api/ev":{"post":{"summary":"Named event intake — EVENT_NAMES allowlist","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/api/events":{"post":{"summary":"Legacy alias of /api/ev","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/api/contact":{"post":{"summary":"Contact form intake (JSON)","responses":{"200":{"description":"OK","content":{"application/json":{}}}}}}}}