Answering a person, run by OpenAI.

What is ChatGPT-User? OpenAI's fetcher for people's AI questions. Verifiable by IP ranges.

  • Run by OpenAI, which documents it.

  • Purpose: Answering a person. A visit means a person asked an AI assistant something, and the assistant opened this page to answer.

  • robots.txt name: ChatGPT-User.

  • Verifiable by IP ranges.

At a glance, the facts in one table.

ChatGPT-User at a glance. Taken from SenseGap's open bot directory, the same data that sorts every visit in the dashboard.

All bots
ChatGPT-User facts
ChatGPT-User
OperatorOpenAI
PurposeAnswering a person
User agent containsChatGPT-User
robots.txt nameChatGPT-User
VerificationIP ranges
Documentationplatform.openai.com

Purpose, what it does and why it came.

What ChatGPT-User does. SenseGap sorts every visit by purpose. ChatGPT-User is in the Answering a person group.

ChatGPT-User is OpenAI's fetcher that opens a page when a person asks ChatGPT something that needs it. OpenAI says custom GPTs use it too.

What a visit means

A visit means a person asked an AI assistant something, and the assistant opened this page to answer. It is the one kind of AI visit that implies a real question behind it.

That is why SenseGap pays close attention to this kind of visit. It groups the pages assistants open together to estimate what people likely asked, always labeled as an estimate. Nobody can see the actual questions. How it works.

Detection, the header SenseGap matches.

How SenseGap recognizes ChatGPT-User. By its User-Agent header. A separate check then decides whether the visit is real.

Every request carries a User-Agent header naming the software that sent it. SenseGap counts a request as ChatGPT-User when that header contains ChatGPT-User, in any letter case. The header is plain text, so any script can copy it. Matching the name is where recognition starts, not where trust starts.

Pattern matched against User-Agent
/ChatGPT-User/i

Verification, how to tell a real visit from a fake.

How to verify ChatGPT-User. OpenAI publishes its IP ranges, so a real visit can be proven.

How we verify bots
IP ranges

chatgpt-user.json

Published by OpenAI at openai.com. A real ChatGPT-User visit comes from an address in this list.

Open the list
SenseGap

Checked on every visit

SenseGap runs this check on every visit that claims to be ChatGPT-User. A pass is marked Real. A visit that sends the name and fails is marked Fake, and stays out of your other reports.

robots.txt, rules you can copy.

Block or allow ChatGPT-User in robots.txt. Its robots.txt name is ChatGPT-User. Paste a group into the robots.txt at your site's root.

Block the whole site
User-agent: ChatGPT-User
Disallow: /
Allow the whole site
User-agent: ChatGPT-User
Allow: /
Block one folder
User-agent: ChatGPT-User
Disallow: /private/

One rule catches people out. Under the robots.txt standard (RFC 9309), a crawler that finds a group naming it follows only that group and ignores your User-agent: * rules. If you add a ChatGPT-User group, repeat in it anything from the catch-all group you still want applied.

OpenAI says that because these fetches are started by a person, robots.txt rules may not apply to ChatGPT-User.

robots.txt is a request, not a lock. To enforce a block, match the User-Agent header at your server or CDN. In nginx:

Enforce it at the server
# nginx, inside a server block
if ($http_user_agent ~* "ChatGPT-User") {
    return 403;
}

SenseGap reads your robots.txt and shows, bot by bot, what you allow and which bots fetched pages you disallowed. See what you get.

Trade-off, what blocking changes.

Should you block ChatGPT-User? It depends on what you want from OpenAI. Here is what each choice means.

  • If you allow it

    The assistant can read your page while it answers, quote it and link to it.

  • If you block it

    The assistant cannot open your page when someone asks, so it answers from other sources, or from what it already knows about you.

OpenAI, every bot it runs.

More bots from OpenAI. OpenAI runs 4 bots in the directory, each with its own job.

Answering a person, other bots with the same job.

Other bots that answer people. Same purpose, different companies.

Browse the directory

FAQ, ChatGPT-User in short answers.

ChatGPT-User, answered plainly

What is ChatGPT-User?

ChatGPT-User is OpenAI's fetcher that opens a page when a person asks ChatGPT something that needs it. OpenAI says custom GPTs use it too.

Who runs ChatGPT-User?

OpenAI. OpenAI documents it at https://platform.openai.com/docs/bots.

What does a visit from ChatGPT-User mean?

A visit means a person asked an AI assistant something, and the assistant opened this page to answer. It is the one kind of AI visit that implies a real question behind it.

What user agent does ChatGPT-User use?

Its User-Agent header contains "ChatGPT-User". SenseGap matches it regardless of letter case.

How do I block ChatGPT-User?

Add "User-agent: ChatGPT-User" followed by "Disallow: /" to your robots.txt. OpenAI says that because these fetches are started by a person, robots.txt rules may not apply to ChatGPT-User. robots.txt is a request, not a lock; to enforce it, block the user agent at your server or CDN.

How do I know a visit is really ChatGPT-User?

OpenAI publishes the IP ranges ChatGPT-User uses (chatgpt-user.json), so check that the visiting address falls inside one of them. SenseGap runs these checks on every visit.

Does OpenAI publish IP ranges for ChatGPT-User?

Yes, at https://openai.com/chatgpt-user.json.

What happens if I block ChatGPT-User?

The assistant cannot open your page when someone asks, so it answers from other sources, or from what it already knows about you.

See whether ChatGPT-User visits your site. Every visit checked, with the pages it read and an estimate of what people asked.

Request beta access