# isvisible.ai > Free tool that checks whether a website is visible to AI crawlers and answer engines. isvisible.ai reads a site's robots.txt and llms.txt, then sends live requests using the real user-agent strings of GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and other AI crawlers. It combines declared rules with observed access into a 0-100 visibility score and an agent-by-agent access map. ## Docs - [Home](https://isvisible.ai/): Run a free scan and view a sample report. ## API - [Check a site](https://isvisible.ai/api/is-visible): POST `{"url": "example.com"}` with header `Content-Type: application/json`, get back a JSON visibility report. No API key or auth is required for normal use. Rate limit: 20 requests per 60 seconds per client IP; a limit hit returns HTTP 429 with a `Retry-After` header. Malformed input or an unreachable/invalid domain returns HTTP 400 with `{"error": ""}`. A successful call returns HTTP 200 with: ```json { "url": "example.com", "robotsTxt": { "found": false, "url": "https://example.com/robots.txt" }, "llmsTxt": { "found": false, "url": "https://example.com/llms.txt" }, "liveProbe": { "performed": true, "baselineStatus": 200 }, "userAgents": { "gptbot": { "allowed": true, "robotsAllowed": true, "probe": { "verdict": "allowed", "status": 200 }, "label": "OpenAI GPTBot (training)", "category": "ai-training" } }, "score": 80, "grade": "B", "breakdown": { "aiAgentsAllowed": 13, "aiAgentsTotal": 13, "aiAgentsPoints": 80, "aiAgentsMaxPoints": 80, "llmsTxtPoints": 0, "llmsTxtMaxPoints": 20, "unverified": false }, "issuedAt": 1784029699, "expiresAt": 1784033299, "expiresIn": 3600 } ``` `userAgents` includes one entry per tracked crawler (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bingbot, and others). Results are cached per domain for about an hour, reflected in `issuedAt`/`expiresAt`/`expiresIn`. - [MCP server](https://isvisible.ai/api/mcp): the same check exposed as an [MCP](https://modelcontextprotocol.io) tool for AI assistants (Claude, ChatGPT, Cursor, etc). Streamable HTTP transport only, same rate limit as the REST endpoint above. Add it to an MCP client: ```json { "mcpServers": { "isvisible": { "url": "https://isvisible.ai/api/mcp" } } } ``` One tool, `check_ai_visibility`, taking `{"domain": "example.com"}` and returning the same score/grade/`userAgents` map as `POST /api/is-visible`, both as a short text summary and as structured tool output.