{"openapi":"3.1.0","info":{"title":"AgentReady Check API","version":"1.0.0","description":"Measures how well AI agents can read a website: AI crawler access, llms.txt, JavaScript dependency, structured data and agent basics. The API always returns all five checks.","contact":{"name":"The Autopilot","url":"https://the-autopilot.com","email":"sascha@the-autopilot.com"}},"servers":[{"url":"https://check.ai-agent-ready.com/api/v1"}],"security":[{},{"bearerAuth":[]}],"paths":{"/scans":{"post":{"operationId":"scan_domain","summary":"Start a scan and return the result","description":"Starts a scan and answers once it has finished (typically 5-30 seconds). Without a bearer key, a limit of 3 scans per day and IP applies.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain or URL, e.g. \"example.com\".","examples":["example.com"]}}}}}},"responses":{"201":{"description":"Scan complete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"500":{"$ref":"#/components/responses/Error"}}}},"/scans/{id}":{"get":{"operationId":"get_scan","summary":"Fetch a stored scan result","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/stats":{"get":{"operationId":"get_stats","summary":"Aggregated anonymous market data","responses":{"200":{"description":"Market data","content":{"application/json":{"schema":{"type":"object","required":["stats","pricing"],"properties":{"stats":{"type":"object","properties":{"domains":{"type":"integer"},"scans":{"type":"integer"},"average_score":{"type":"integer"},"score_distribution":{"type":"object","properties":{"red":{"type":"integer"},"yellow":{"type":"integer"},"green":{"type":"integer"}}},"check_averages":{"type":"object","additionalProperties":{"type":"number"}}}},"pricing":{"$ref":"#/components/schemas/Pricing"}}}}}},"401":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Optional API key. Without a key, a daily limit per IP applies."}},"schemas":{"Pricing":{"type":"object","required":["model"],"properties":{"model":{"type":"string","enum":["free"]}},"description":"Pricing model of this response. Currently free everywhere — the field exists for later agent payments via HTTP 402."},"Finding":{"type":"object","required":["label","state","text"],"properties":{"label":{"type":"string"},"state":{"type":"string","enum":["good","warn","bad"]},"text":{"type":"string","description":"Plain-language finding, ready to display."}}},"Check":{"type":"object","required":["id","title","score","max","state","summary","findings","fix"],"properties":{"id":{"type":"string","enum":["crawler","llmstxt","js","schema","basics"]},"title":{"type":"string"},"score":{"type":"integer"},"max":{"type":"integer"},"state":{"type":"string","enum":["good","warn","bad"]},"summary":{"type":"string"},"findings":{"type":"array","items":{"type":"object","required":["label","state","text"],"properties":{"label":{"type":"string"},"state":{"type":"string","enum":["good","warn","bad"]},"text":{"type":"string","description":"Plain-language finding, ready to display."}}}},"fix":{"type":"string"}}},"Scan":{"type":"object","required":["id","domain","score","state","created_at","url","checks"],"properties":{"id":{"type":"string","format":"uuid"},"domain":{"type":"string"},"score":{"type":"integer","minimum":0,"maximum":100},"state":{"type":"string","enum":["red","yellow","green"]},"created_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"},"checks":{"type":"array","items":{"type":"object","required":["id","title","score","max","state","summary","findings","fix"],"properties":{"id":{"type":"string","enum":["crawler","llmstxt","js","schema","basics"]},"title":{"type":"string"},"score":{"type":"integer"},"max":{"type":"integer"},"state":{"type":"string","enum":["good","warn","bad"]},"summary":{"type":"string"},"findings":{"type":"array","items":{"type":"object","required":["label","state","text"],"properties":{"label":{"type":"string"},"state":{"type":"string","enum":["good","warn","bad"]},"text":{"type":"string","description":"Plain-language finding, ready to display."}}}},"fix":{"type":"string"}}}}}},"ScanResponse":{"type":"object","required":["scan","pricing"],"properties":{"scan":{"$ref":"#/components/schemas/Scan"},"pricing":{"$ref":"#/components/schemas/Pricing"}}},"Error":{"type":"object","required":["error","pricing"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"pricing":{"$ref":"#/components/schemas/Pricing"}}}},"responses":{"Error":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"x-mcp":{"note":"The MCP server is not part of this application. It is built as a Cloudflare Worker and consumes these three endpoints exclusively.","tools":{"scan_domain":"POST /scans","get_scan":"GET /scans/{id}","get_stats":"GET /stats"}}}