Can each AI crawler reach and read the pages that matter
https://seolyticize.com /api/v1/tools/get_ai_crawler_access Per AI agent — GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Meta-ExternalAgent, CCBot — for the client's top pages by Search Console clicks: which robots.txt allows and blocks, whether the server or CDN turns it away when the homepage is fetched under its name, which pages need JavaScript to show their content (from the crawl's rendering, which AI crawlers do not do), and, given an access log, how often it came, how many pages it read and how many requests failed. A verdict (open, partial, blocked) and fixes per agent, its purpose (training, search, user) said. Answers 'can ChatGPT read our site' and 'are we blocking AI search by accident'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredpagesintegerlogstring{
"clientId": "string",
"pages": 50,
"log": null
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_ai_crawler_access" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","pages":50,"log":null}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_ai_crawler_access
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger