# AI Score > Agent-readiness scanner by BAGS. Scan any domain for Level 0–5 + a 0–100 score across discoverability, content accessibility, bot access control, and discovery surfaces. Host: https://aiscore.getbags.app ## Levels (gated ladder) | Level | Name | Gate | |---:|---|---| | 0 | Not Ready | fails L1 | | 1 | Basic Web Presence | pass 2 of 3: robotsTxt, sitemap, linkHeaders | | 2 | Bot-Aware | + robotsTxtAiRules and contentSignals | | 3 | Agent-Readable | + markdownNegotiation | | 4 | Agent-Integrated | + 1 of mcpServerCard, a2aAgentCard, agentSkills, apiCatalog | | 5 | Agent-Native | + 2 of 3 buckets: webBotAuth; all four L4 checks; auth metadata | ## API - `POST /api/scan` — JSON body `{ "url": "https://example.com", "format": "json"|"agent", "enabledChecks"?: [...] }` - Free tier: 10 scans/min/IP. `429` → `{ code: "RATE_LIMITED", upgrade: { x402, cta: getbags.app, … } }` - Bulk / high-rate via x402 (`scan_site_bulk`) coming — see `/auth.md` and `/llms-full.txt` - `GET /api/health` — `{ "status": "ok", "timestamp" }` - `POST /mcp` — MCP Streamable HTTP; tool `scan_site` with `{ "url": string }` ## Agent surfaces - `/.well-known/api-catalog` — RFC 9727 linkset - `/.well-known/mcp/server-card.json` — MCP server card → `/mcp` - `/.well-known/agent-card.json` — A2A agent card - `/.well-known/agent-skills/index.json` — fix guides per check - `/.well-known/http-message-signatures-directory` — Web Bot Auth JWKS - `/llms.txt`, `/llms-full.txt`, `/robots.txt`, `/sitemap.xml` See `/llms-full.txt` for the full 21-check catalog and deploy notes.