x.ai: what it tells AI crawlers

On 26 October 2026, x.ai's robots.txt allowed all of GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, Google-Extended, PerplexityBot and CCBot.

Last verified 2026-10-26 21:13 UTC (daily run of 2026-10-26). Proof for that day.

Panel
top 10k (Tranco)
robots.txt
ok (HTTP 200) · https://x.ai/robots.txt
unchanged since 2026-10-26 · sha256 069241f196e6caa2… · view as recorded
The * group
allows applies to every agent without its own group

Per AI bot, 2026-10-26

User agentVerdictHow
GPTBotallowsthrough the * group
OAI-SearchBotallowsthrough the * group
ChatGPT-Userallowsthrough the * group
ClaudeBotallowsthrough the * group
Claude-SearchBotallowsthrough the * group
Claude-Userallowsthrough the * group
PerplexityBotallowsthrough the * group
Perplexity-Userallowsthrough the * group
Googlebotallowsthrough the * group
Google-Extendedallowsthrough the * group
Applebot-Extendedallowsthrough the * group
CCBotallowsthrough the * group
Bytespiderallowsthrough the * group
Meta-ExternalAgentallowsthrough the * group
Amazonbotallowsthrough the * group

Other signals

Publishes /llms.txtno
Publishes /ai.txtno
Publishes /.well-known/tdmrep.jsonno
Reserves TDM rights (TDMRep file, header or meta)not observed
Declares Content Signals (robots.txt or header)yes
Says ai-train=no in a Content Signalnot observed
Points to an RSL licence (robots.txt License line or Link header)not observed
Answers with an x402 payment offer (lower bound: only the homepage is probed)not observed
Answers HTTP 402 Payment Required (lower bound: only the homepage is probed)not observed
Sends noai / noimageai directivesnot observed
Refused our fetcher (403 / challenge)no

Content signals: ai-train=yes, search=yes, ai-input=yes for *

robots.txt versions

FromThroughStateVersion
2026-10-262026-10-26ok 200069241f196e6

Timeline of changes

DateWhat changed
No changes since the first observation (2026-10-26).

Reconstructed history (Common Crawl)

From Common Crawl's robots.txt captures: what CCBot was served, one crawl per quarter. A separate series from the daily observations above; a 403 here means Common Crawl was refused, not this ledger.

CrawlHostStateGPTBotOAI-SearchBotChatGPT-UserClaudeBotClaude-SearchBotClaude-UserPerplexityBot
2026-09-21 CC-MAIN-2026-39x.aiok viewallowsallowsunknownallowsallowsunknownallows
2024-09-16 CC-MAIN-2024-38x.aifetch-blockedunknownunknownunknownunknownunknownunknownunknown
2022-10-03 CC-MAIN-2022-40x.airedirect-onlyunknownunknownunknownunknownunknownunknownunknown
2021-09-27 CC-MAIN-2021-39x.airedirect-onlyunknownunknownunknownunknownunknownunknownunknown
2020-09-28 CC-MAIN-2020-40x.aiok viewallowsallowsunknownallowsallowsunknownallows
2019-09-23 CC-MAIN-2019-39x.aiok viewallowsallowsunknownallowsallowsunknownallows
2018-09-24 CC-MAIN-2018-39x.aiok viewallowsallowsunknownallowsallowsunknownallows
2017-09-25 CC-MAIN-2017-39x.aiok viewallowsallowsunknownallowsallowsunknownallows
2016-09-05 CC-MAIN-2016-36x.aiok viewallowsallowsunknownallowsallowsunknownallows

Evidence

Every daily observation of x.ai is a leaf in that day's Merkle tree. Proof of the robots.txt line for 2026-10-26: audit path (JSON), day root and OpenTimestamps proof (complete (bitcoin block 973294)).

API: https://infrarabbit.com/crawlers/api/v1/policy/x.ai