CrawlLedger
OpenAI · Model training

AI crawler directory / GPTBot

GPTBot robots.txt reference.

OpenAI's automatic crawler for content that may be used to improve and train generative AI foundation models.

20observed domains
7disallowed
8partial policies
4allowed by matched rules

What GPTBot is documented to do

This summary is tied to a first-party operator page reviewed on Sep 20, 2026. It should be rechecked when the registry version changes.

Operator
OpenAI
Documented purpose
Model training
Separate HTTP fetcher
Documented as a fetcher or crawler
Official documentation
https://developers.openai.com/api/docs/bots

GPTBot vs OAI-SearchBot vs OAI-AdsBot vs ChatGPT-User

OpenAI documents these tokens for different purposes. A rule for one does not automatically control the others.

GPTBot

Model training. OpenAI's automatic crawler for content that may be used to improve and train generative AI foundation models.

OAI-SearchBot

AI search. OpenAI's automatic search crawler, used to surface and link websites in ChatGPT search results.

OAI-AdsBot

Ad landing-page validation. OpenAI's fetcher for validating the safety and relevance of landing pages that advertisers submit for ChatGPT ads.

ChatGPT-User

User-requested fetch. OpenAI's user-initiated fetcher for certain ChatGPT, Custom GPT, and GPT Action requests.

Common full-site robots.txt block pattern

This example states a crawl preference for the named token. It does not authenticate requests, enforce blocking, or automatically control another token from the same operator.

User-agent: GPTBot
Disallow: /

Check the official operator source before publishing a policy. User-requested fetchers and non-fetcher control tokens can have different behavior from automatic crawlers.

Latest observed pilot policies

These states are calculated from each domain's latest available robots.txt record using the versioned CrawlLedger parser. They are observations of published text, not proof of crawler behavior.

DomainParsed stateMatched groupLast observed
anthropic.comallowed*
apnews.comdisallowedGPTBot
apple.compartial*
cloudflare.comallowedGPTBot
commoncrawl.orgpartial*
google.compartial*, Yandex
medium.comdisallowedAmazonbot, Applebot-Extended, Bytespider, ClaudeBot, FacebookBot, GoogleOther, GPTBot, meta-externalagent
openai.compartial*
oreilly.comdisallowedGPTBot, anthropic-ai, cohere-ai, CCBot, AI2Bot, Amazonbot, Amazonbot-Video, Bytespider, meta-externalagent, Diffbot, omgili, TimpiBot, SeznamBot, Exabot, YandexBot, Sogou, 360Spider, YisouSpider, Baiduspider-Render/2.0, MJ12bot, DataForSeoBot, AliyunSecBot, ArchiveTeam, ArchiveTeam ArchiveBot, AwarioBot, ZoominfoBot, ali-implementer, Blueno, BIGO-baiguoyuan, WorksOgCrawler, OnPageBot, DoCoMo, SAMSUNG-SGH-E250, TA-Googlebot
perplexity.aipartial*
quora.comdisallowedGPTBot
reddit.comdisallowed*
rslcollective.orgallowed*
rslstandard.orgallowed*
stackoverflow.comunverifiedNo matching group observed
theguardian.compartial*
usatoday.comdisallowedGPTBot
voxmedia.compartial*
yahoo.comdisallowedADmantX, AlphaBot, anthropic-ai, AwarioRssBot, AwarioSmartBot, BLEXBot, Buzzbot, Bytespider, CCBot, ChatGPT-User, claritybot, Claude-Web, ClaudeBot, cohere-ai, Diffbot, FacebookBot, FriendlyCrawler, Google-Extended, GPTBot, huggingface, ImagesiftBot, img2dataset, magpie-crawler, Meltwater, Neevabot, news-please, NewsNow, Nutch, omgili, omgilibot, panscient.com, Perplexity-ai, PerplexityBot, PetalBot, PiplBot, scoop.it, Scrapy, Seekr, SentiBot, SeznamBot, TurnitinBot, YouBot, ZumBot
ziffdavis.compartial*

Interpret the state carefully

“Allowed” means a selected group was observed without a blocking rule for the tested policy shape. “Partial” means at least one non-empty disallow path was observed. “No matching group” is silence, not an affirmative grant. None of these states authenticate the requester or establish legal permission.