OpenAI runs four crawlers, not one, and they want four different decisions from you. This tool will verify a GPTBot IP against every one of OpenAI's published CIDR range files — IPv4 and IPv6 — and name which bot you are looking at: training, search, live fetch, or ad validation. Blocking the wrong one is how sites quietly disappear from ChatGPT.
Quick Answer: How Do You Verify a GPTBot IP?
To verify a GPTBot IP, match the address against OpenAI's four published CIDR range files. OpenAI documents no reverse DNS, so a range match is the strongest check available. Confirm which of the four bots it is before you block anything.
Jessica Wright
Cybersecurity Threat Researcher
Jessica works on bot verification and IP reputation, separating traffic that is what it says from traffic that only claims to be.
The most common thing I fix on this topic is a robots.txt written by somebody who thought OpenAI ran one crawler. They disallowed GPTBot to keep their writing out of a training set — a perfectly reasonable thing to want — and were surprised months later to find themselves absent from ChatGPT search answers, because somewhere in the same file, or in a WAF rule aimed at the same addresses, OAI-SearchBot went down with it.
Worth stating plainly: OpenAI publishes no reverse-DNS scheme, so the best this page can honestly return is a published-range match. That is a real ceiling, not a shortcoming of the tool. And when a range file cannot be read, the page says inconclusive rather than not OpenAI — because those are different findings, and a verifier that blurs them will eventually tell somebody a real crawler is a fake.
Last reviewed 21 August 2026 · Ranges read from OpenAI's published feeds · No lookups logged
View all articles by Jessica Wright“GPTBot” has become shorthand for anything OpenAI sends at a website, and that shorthand costs people money. OpenAI documents four separate crawlers, each with its own robots.txt token and its own published range file, and each wanting a different decision from you.
Because OpenAI documents no reverse-DNS scheme, the range files are the whole verification story here. That is a lower ceiling than some operators offer, where a hostname can be forward-confirmed as a second independent check. For the underlying method across every operator — Google, Anthropic, Perplexity, Common Crawl and the rest — start at the universal bot verifier. The OpenAI crawler documentation lists all four tokens and keeps them deliberately distinct.
| Bot | What it does | robots.txt | Cost of blocking it |
|---|---|---|---|
| GPTBotModel training | Collects public web content that may be used to train and improve OpenAI's foundation models. | Honours robots.txt | Blocking it costs nothing in visibility. Your content stops feeding future training, and ChatGPT search is untouched because that is a different crawler. |
| OAI-SearchBotChatGPT search index | Builds the index ChatGPT search retrieves from and cites. | Honours robots.txt | This is the expensive one. OpenAI states that sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers. |
| ChatGPT-UserLive user-triggered fetch | Fires when a person, or a Custom GPT acting for one, asks ChatGPT to open a specific page. | robots.txt rules may not apply | A human is waiting on every one of these. In December 2025 OpenAI removed the robots.txt compliance language for this agent, so a Disallow line is not a reliable control here. |
| OAI-AdsBotAd landing page validation | Visits only pages an advertiser submitted as a ChatGPT ad, to check policy compliance and gather relevance signals. | Not documented either way | It never touches the open web and its data is not used for training. If you run ChatGPT ads, blocking it breaks validation of your own landing pages and the ads quietly fail to serve. |
That table is the reason to verify a GPTBot IP before acting on it rather than after. Read the last column as four independent choices. Blocking training is a content-rights decision with no visibility cost. Blocking search removes you from ChatGPT answers. Blocking the live fetch means a person who pasted your URL into ChatGPT gets nothing back. Blocking ad validation breaks your own campaigns.
Sites already treat these as separate decisions. Chris Humphrey's June 2026 analysis of robots.txt across the top 10,000 sites — 7,870 files actually parsed — found 17.6% blocking GPTBot against only 6.6% blocking OAI-SearchBot. Same company, roughly a third of the block rate, because most publishers want to be cited but not trained on. For historical contrast, an Originality.AI study of the top 1,000 sites published in August 2024 put GPTBot blocking at 35.7%, up from about 5% at launch a year earlier. That 2024 figure is still the most-quoted number on this topic and it is now two years old, which is worth knowing before anyone repeats it at you as current.
Knowing which bot you are looking at is only useful if the decision can actually be enforced. For two of these four, at the firewall, it cannot — and that is the part almost nobody mentions.
This is the part that surprises people who do everything else right. You can disallow GPTBot and allow OAI-SearchBot in robots.txt cleanly — separate tokens, separate rules, exactly the outcome most publishers want. At the IP layer that separation collapses.
OpenAI's two range files overlap. Several CIDR prefixes appear in gptbot.json and searchbot.json at once, because the crawlers run on shared infrastructure and OpenAI publishes both lists honestly rather than pretending they are disjoint. A firewall matching on address cannot tell them apart, so a rule aimed at training takes ChatGPT search down with it on every shared prefix. If you want to expand a published prefix and see exactly which addresses a rule would cover, the CIDR calculator turns a prefix into its address range.
The practical rule: use robots.txt to separate OpenAI's crawlers, and use IP rules only when you intend to block all of OpenAI. Anything in between will not do what you expect. The crawler blocker flags this exact collision the moment your selection creates it, and writes the robots.txt, nginx, Apache and Cloudflare rules from the same live files.
There is a second coupling worth knowing. OpenAI's documentation notes that where a site permits both GPTBot and OAI-SearchBot, it reserves the right to use a single crawl for both purposes rather than fetching twice. That is reasonable engineering, and it means allowing both is not the same as being crawled twice for two separate uses.
The header proves nothing as identity. It means something as a label once identity is settled. The sequence that works is: confirm the address is OpenAI using the range files, then read the user-agent from the same log line to tell which of the four bots it was. That ordering matters, because a spoofer writes the user-agent and cannot write the source address.
The forgery is measurable. HUMAN Security's Satori team analysed traffic carrying AI crawler user-agents in January 2026 and found 5.7% of it spoofed overall, with the ChatGPT-User agent worst affected at roughly one request in six. That is the agent people most often wave through, precisely because a human appears to be waiting behind it. If an address fails every check here, the useful next step is finding out whose network it really is — a cloud IP check will tell you whether it is a rented datacenter machine, which is where most spoofed crawler traffic originates.
Three of the four bots have been documented for years. The fourth arrived this spring, and most of what has been written about it is already out of date.
OpenAI added a fourth crawler, OAI-AdsBot, to its public documentation in late April 2026. It visits only pages an advertiser has submitted as a ChatGPT ad, checks them against OpenAI's ad policies, and gathers relevance signals. OpenAI states its data is not used for model training, which makes it the least contentious of the four.
For anyone trying to verify GPTBot IP traffic that turns out to be the ads crawler, there is a documentation problem worth knowing about. Almost everything written about it dates from that April week, and nearly all of it says the same thing: there is no adsbot.json, so you cannot verify OAI-AdsBot by IP. That was true in April.
It is not true now. OpenAI published openai.com/adsbot.json on 12 May 2026 — the date is stamped inside the file itself — and now references it directly in its advertiser guidance for allowing OpenAI crawlers. The file is small: two prefixes when this page was reviewed on 21 August 2026. The tool above reads it live alongside the other three.
If you run ChatGPT ads this matters more than it sounds. Bot mitigation at the edge blocks a user-agent it does not recognise, and a strict Cloudflare or Akamai configuration will do exactly that by default. OAI-AdsBot never reaches your landing page, validation fails, and the campaign does not serve. Nothing in that chain produces an error message aimed at you. An IP allowlist built from the published file is the fix, and until May there was nothing to build it from. Checking what your edge actually returns to an unfamiliar agent is worth doing too — the HTTP header analyzer shows what your server sends back.
On 9 December 2025 OpenAI revised its crawler documentation and removed the robots.txt compliance language for ChatGPT-User. The wording changed from applying to all three user agents to naming only OAI-SearchBot and GPTBot. The reasoning is defensible: these requests happen because a person asked ChatGPT to open a specific page, and the robots exclusion protocol was written for bulk crawling rather than for a human following a link. The consequence for you is simply that a Disallow line is not the control you thought it was, and the published range is.
All of which sets a fairly clear boundary on what this page can and cannot settle for you.
There are real limits on what any attempt to verify GPTBot IP claims can settle, and a tool that lists only its strengths is no help when you are about to block traffic.
OpenAI documents no hostname scheme, so there is no second check to run. A published-range match is the ceiling for every OpenAI bot, and any tool claiming a stronger verdict is inventing one.
Where an address sits in two of OpenAI's files at once, no address-based check can say which crawler sent the request. The tool says so rather than guessing, and the answer lives in the user-agent on that log line.
The training file carries an October 2025 stamp. Infrastructure moves faster than published files, so a genuine new address can sit outside the list for weeks. A match is strong; a miss is inconclusive.
You paste an address. The tool has no view of the user-agent that came with it, the path requested, or the request rate, and all three matter as much as identity when deciding what to allow.
Blocking a training crawler today affects tomorrow's crawls. Content already collected is already collected, and no rule reaches backwards into a model that has finished training.
Patterns across a week of traffic are where the real answers are. For one suspicious line this is the right tool; for a log file it is not.
When an address turns out not to be OpenAI, the next useful question is whose network it is. An ASN lookup names the operator behind the address, the range export lists every prefix that operator announces, and a blacklist check shows whether it already has an abuse history. All three say more about intent than a forged header ever will.
Check the address against OpenAI’s four published range files: gptbot.json, searchbot.json, chatgpt-user.json and adsbot.json. Each lists CIDR prefixes covering both IPv4 and IPv6. OpenAI documents no reverse-DNS scheme, so a range match is the strongest verification available. The user-agent proves nothing, because the client writes it.
No. GPTBot collects training data. ChatGPT search runs on a separate crawler, OAI-SearchBot, with its own robots.txt token. You can disallow GPTBot and stay fully visible in ChatGPT search. Blocking OAI-SearchBot is the one that removes you from those answers.
In robots.txt, yes, and most sites that think about it choose exactly that. At the firewall it is not possible, because GPTBot and OAI-SearchBot share several published prefixes. An IP rule aimed at training will take ChatGPT search down with it on every overlapping range.
OpenAI runs them on overlapping infrastructure and publishes both files honestly, overlaps included. It is not an error. The practical consequence is that robots.txt tokens are the only instrument that separates the two crawlers cleanly, and a firewall rule is not.
Yes, since 12 May 2026, at openai.com/adsbot.json. Most articles about OAI-AdsBot were written in April 2026 and still say the file does not exist. It does, OpenAI references it in its own advertiser guidance, and this tool reads it live.
Not reliably. In December 2025 OpenAI revised its crawler documentation and removed the robots.txt compliance language for ChatGPT-User. The requests are triggered by a person asking ChatGPT to open a page, and the exclusion protocol was never designed for that traffic class. A published-range rule is the dependable control.
Not definitely, and this tool will only say “not OpenAI” when all four files were actually readable on that request. OpenAI revises the files as infrastructure moves, so a genuine new address can sit outside the list for a while. A match is strong evidence; a miss is weak evidence.
It is a content-rights decision rather than a security one, and it costs no measurable visibility. Sites overwhelmingly treat it that way: Chris Humphrey’s June 2026 analysis of robots.txt across the top 10,000 sites found 17.6% blocking GPTBot but only 6.6% blocking OAI-SearchBot. Blocking the search crawler is the choice that carries a real cost.
This page answers one question about OpenAI. These answer the rest.
Browse the full set on the TrustMyIP tools directory.
The blocker writes robots.txt and firewall rules from these same live range files, and warns you the moment your selection would take ChatGPT search down along with training.
Last updated 21 August 2026 · Ranges read from OpenAI's published feeds · No lookups logged