# GPTBot

> OpenAI's bulk crawler. Pages it fetches may be used to train future OpenAI foundation models. It is not the bot that puts you in ChatGPT's search results, and blocking it does not remove you from them.

| field | value |
|---|---|
| operator | OpenAI |
| category | AI training crawlers |
| robots.txt token | `GPTBot` |
| user-agent contains | `GPTBot` |
| robots.txt | obeys robots.txt (documented) |
| verify by | published IP ranges |
| published IP ranges | https://openai.com/gptbot.json |
| prefixes mirrored | 21 IPv4 / 0 IPv6 |
| operator docs | https://platform.openai.com/docs/bots |
| last reviewed | 2026-09-14 |

## What blocking it costs you

Your content is excluded from training data for future OpenAI models. No effect on ChatGPT search visibility, on citations, or on links a user pastes into ChatGPT.

## Full user-agent string

```
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.2; +https://openai.com/gptbot
```

## Block it

```
User-agent: GPTBot
Disallow: /
```

## Allow it

```
User-agent: GPTBot
Allow: /
```

## Ask this page a question, with one GET

A question about this page, answered by a call you can make right now — no key, no account, no JSON-RPC, nothing to assemble. The query string is already filled in with this page's own subject.

- **How do I prove a request really is GPTBot?**  
  `curl -s 'https://www.pathwren.workers.dev/tools/verification-methods?crawler=gptbot&s=client-dossiers'`  
  The verification method its operator actually publishes — published IP ranges, reverse DNS, or nothing at all — and the mirror of it on this host.
- **Is 132.196.86.0 really GPTBot?**  
  `curl -s 'https://www.pathwren.workers.dev/tools/verify-crawler?ip=132.196.86.0&ua=GPTBot&s=client-dossiers'`  
  That address checked against every prefix this host mirrors. 132.196.86.0 is the first address of 132.196.86.0/24, one of the ranges listed on this page — so the link is a worked example that returns a match. Swap in an address from your own log.

Every parameter above is a value the endpoint reads, not an address it visits: nothing is fetched on your behalf. Called without any parameter, each endpoint returns its own specification instead of an error.

JSON: https://www.pathwren.workers.dev/crawler/gptbot.json · index: https://www.pathwren.workers.dev/llms.txt
