ChatGPT-User: OpenAI's Answer Crawler
What is ChatGPT-User?
ChatGPT-User visits a page when a person asks ChatGPT or a Custom GPT a question, or when a GPT Action calls out. It does not crawl automatically. ChatGPT-User fetches only when a person asks, and OpenAI states robots.txt may not apply to it, which is not true of GPTBot or OAI-SearchBot.
Key facts
- ChatGPT-User is operated by OpenAI, and its purpose is live fetch: fetches a page in real time because a person asked.
- The user agent for ChatGPT-User is documented by OpenAI and contains the token ChatGPT-User.
- The robots.txt token for ChatGPT-User is ChatGPT-User, and OpenAI states that rule may not apply, because a person starts the request.
- ChatGPT-User can send a visitor to your site, and ChatGPT-User attaches a linked citation when it uses your content.
Specification
| Operator | OpenAI |
|---|---|
| Purpose | Live fetchFetches a page in real time because a person asked. Traffic here tracks human interest, not a crawl schedule. |
| Agent kind | FetcherFetches on a person's request. Appears in your logs. Request volume follows human activity. |
| User agent | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot |
| robots.txt token | ChatGPT-User |
| robots.txt compliance | Operator states robots.txt may not apply (user initiated) |
| Verification | Published IP range filehttps://openai.com/chatgpt-user.json |
| Sends referral traffic | Yes |
| Attaches a citation | Yes |
| Status | Active |
| Legacy Kymo category | ai_answer |
| Source | Operator documentationhttps://developers.openai.com/api/docs/bots |
| Verified on |
What this looks like in your logs
203.0.113.42 - - [04/Aug/2026:09:14:07 +0000] "GET /pricing HTTP/1.1" 200 18432 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot"
The part that identifies the request is the token ChatGPT-User, inside the quoted user-agent field at the end of the line. Everything before it is the ordinary shape of a Common Log Format entry, and the address shown is a documentation address rather than one OpenAI uses.
What ChatGPT-User does not do
ChatGPT-User does not guarantee a visit, because a read only becomes a visit if a person clicks the citation that came out of it.
ChatGPT-User does not crawl on a schedule, because it only requests a page when a person has already asked something that needs it.
OpenAI publishes no crawl frequency for ChatGPT-User, so any schedule you read elsewhere is somebody's estimate rather than a documented figure.
How Kymo classifies it
Kymo files ChatGPT-User under OpenAI as ai_answer, classified from the HTTP request on the server rather than from anything running in a browser.
A hit from ChatGPT-User counts on the AI Visibility page, which is the only page that counts crawls at all. An answer crawl is the only kind a person can click through from, so it is the only kind that belongs beside a visitor number.
Seen on our own sites
| Last seen | 15 Sep 2026 |
|---|---|
| Days active, last 30 days | 31 |
| Requests, last 30 days | 51,636 |
Counted by Kymo on kymo.in and remotestack.in, the two sites we run, up to 15 Sep 2026. Two sites is a small sample. Treat these numbers as proof the bot is active now.
Allow it or block it
OpenAI states that because these actions are user-initiated, robots.txt rules may not apply. ChatGPT-User does not govern whether content appears in ChatGPT search; use OAI-SearchBot for that. Hits from this agent indicate real people, so treat a spike as demand rather than crawl load.
| Allow it if | Block it if |
|---|---|
| You want OpenAI to read your live page when a person asks about you, which is the crawl most likely to send a real visitor. | You do not want your page read during a live question. Check the compliance row first: a fetcher started by a person may need an edge rule rather than a robots.txt rule. |
robots.txt directives
Both blocks below address ChatGPT-User only. Rules for one token never apply to another, even from the same operator.
Allow ChatGPT-User
User-agent: ChatGPT-User Allow: /
Block ChatGPT-User
User-agent: ChatGPT-User Disallow: /
Questions
How do I know a request claiming to be ChatGPT-User is genuine?
OpenAI publishes the IP ranges ChatGPT-User uses at https://openai.com/chatgpt-user.json. Check the requesting address against that file. A user-agent string alone proves nothing, because anyone can send one.
Does blocking ChatGPT-User also block GPTBot?
No. ChatGPT-User and GPTBot are separate tokens, and OpenAI treats each one on its own. A rule naming ChatGPT-User leaves GPTBot free to carry on collecting your content for OpenAI model training. To stop that as well, name GPTBot in a rule of its own.
Will I see ChatGPT-User in Google Analytics?
No. Google Analytics runs a JavaScript tag in a visitor's browser, and ChatGPT-User reads your HTML and leaves without running any script. Server-side logging is the only way to record it.
Does ChatGPT-User send traffic back to my site?
Yes. ChatGPT-User builds an index that OpenAI cites its sources from, and a citation there is a link a person can click. A crawl is still not a visit, so expect the read count to run far ahead of the click count.
Related crawlers
All AI crawlers and control tokens
See this bot in your own logs
ChatGPT-User arrives because a person just asked OpenAI something, and a browser tag never runs in time to record the moment.
Kymo reads the HTTP request on your server, so a crawler that never runs JavaScript is still recorded. You see which bots reached the site, which pages they took and how often, next to your human traffic.
Start free → 14-day free trial. No card required.
No account yet? Run a free AI visibility check on your own site.