For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

Bots

What is ChatGPT-User, and should you allow it?

ChatGPT-User is the agent OpenAI uses when a person's question in ChatGPT or a custom GPT needs a web page, so it reads one page on demand rather than crawling. Allow it: blocking it turns away a reader who asked for you. OpenAI says robots.txt may not apply to it, so private paths need authentication.

7 days free · card required

AI traffic · attensira.com30 days to 4 Oct 2026

230ChatGPT-User requests to attensira.com

Estimated: 3% of OpenAI's 7,536 requests · #1 of 2 live answers agents

Agents that declare live answers, requests to attensira.com, last 30 days to 4 Oct 2026
AgentShare of requestsRequests
ChatGPT-User (this page)≈230
Claude-User≈36

≈: an operator's requests split by the purpose each of its agents declares. User agents as sent, not checked against address lists.

Analyst agentAnalyst · reads the AI traffic boardAI traffic board, read over the Attensira MCP · · n=143,601 requests
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEOLast updated

How do I allow or block ChatGPT-User in robots.txt?

Paste this into the robots.txt at the root of your domain. The operator says the agent may not read robots.txt, so the group records your preference; enforce anything sensitive on the server. Beside it, the group attensira.com serves ChatGPT-User today.

robots.txt · for your sitepaste-ready
# A group naming ChatGPT-User is a request, not a# guarantee: OpenAI says robots.txt rules may not apply to# user-initiated fetches.User-agent: ChatGPT-UserDisallow: /private/ User-agent: GPTBotDisallow: /
Example · a group to paste, written for the token ChatGPT-User
attensira.com/robots.txtnamed · allowed
User-agent: ChatGPT-UserAllow: /Disallow: /api/
As served at attensira.com/robots.txt ·

We name ChatGPT-User and allow it everywhere except /api/, the same as every AI and search crawler we allow by name. Its operator states robots.txt may not apply to it, so this group is a preference at most.

Read the whole file, or write yours with the robots.txt generator.

Who runs ChatGPT-User, and what is it for?

OpenAI runs it, and we file it under user-triggered fetch. Reads one page when a person's question in ChatGPT, or an action in a custom GPT, needs it. Not a crawl and not training; OpenAI says robots.txt rules may not apply to it.

From OpenAI’s documentation, read . Why a training fetch and a search fetch are different decisions: the AI crawler guide.

Why should most sites allow ChatGPT-User?

Because it only arrives when a person asked. OpenAI documents ChatGPT-User as the agent used for certain user actions in ChatGPT and Custom GPTs: when someone asks a question, ChatGPT may visit a web page with it1. It is one fetch, made in the moment, for one reader.

That makes it the opposite of GPTBot, which OpenAI documents as the crawler collecting content that may be used for training5. A training fetch ends in a model and returns nothing you can measure. A user-triggered fetch can end with your page quoted and linked in the reply the person is reading. OpenAI states each crawler setting is independent of the others6, so you can refuse the training crawl and still welcome this one.

Refusing the fetch does not remove the question. It removes your current page from the sources the answer is built from and leaves the description of your product to whoever else wrote about it. The honest counter-case belongs to publishers whose business is the visit itself, such as news sites or paid archives, for whom a summarised answer is not worth the same as a reader on the page.

What does "robots.txt may not apply" actually mean?

OpenAI states that because these actions are initiated by a user, robots.txt rules may not apply, and that the agent is not used for crawling the web in an automatic fashion3. Read it carefully: it is neither "ChatGPT-User ignores robots.txt" nor "it obeys robots.txt". It is an operator saying the file may not bind a fetch a human asked for.

The consequence is practical. If a directory must not be read by an AI assistant, robots.txt is the wrong control. Use authentication or an address-level rule, and treat the robots.txt group as a stated preference. The block in the robots.txt section above is written that way: it scopes the ChatGPT-User rule to a private path and keeps the training rule absolute.

ChatGPT-User also does not decide whether you appear in ChatGPT search. OpenAI says it is not used to determine whether content may appear in Search and points site owners to OAI-SearchBot for search opt-outs7.

How do I verify that a visit really came from ChatGPT-User?

A user-agent header is free text, so a log line naming ChatGPT-User is a claim until you check it.

Match the visiting IP against the published ranges in the record.

The per-agent range file is the only reliable way to tell a user-triggered fetch from a training crawl, because both can be claimed by the same header text.

How is ChatGPT-User different from Perplexity-User and Claude-User?

All three fetch a page because a person asked. They differ on the one point publishers care about most.

  • ChatGPT-User (OpenAI)

    What the operator says about robots.txt
    Rules may not apply to user-initiated actions
    Other documented detail
    Also covers GPT Actions
  • Perplexity-User (Perplexity)

    What the operator says about robots.txt
    Generally ignores robots.txt, since a user requested the fetch10
    Other documented detail
    The answer may include a link to the page9
  • Claude-User (Anthropic)

    What the operator says about robots.txt
    Honours robots.txt, as Anthropic says all its bots do11
    Other documented detail
    One shared address list for Anthropic's bots

So there is no industry norm to rely on. Advice that says "AI assistants respect robots.txt" or "they ignore it" is wrong about at least one of the three. Each operator's own words are the specification. Perplexity's side of the pair is covered on Perplexity-User, and its relation to Perplexity's crawler in PerplexityBot vs Perplexity-User.

Why does GPT Actions make this token a product decision?

OpenAI documents ChatGPT-User as also covering interactions with external applications via GPT Actions8. That takes it beyond reading pages. The same user agent may call an interface on a person's behalf.

If you publish an API, a rule about ChatGPT-User is also a rule about whether people can use your product through an assistant. Review it the way you would any integration path: which endpoints can be reached, whether authentication behaves sensibly for an assistant caller, and whether rate limits suit a caller that may retry.

How often does ChatGPT-User show up in real logs?

Rarely, compared with OpenAI's crawlers, and that is what you should expect. On attensira.com, Attensira's own AI traffic measurement recorded 7,536 requests from OpenAI's agents across 428 pages in the 30 days to 4 October 2026. Fetches for a live answer, the ChatGPT-User kind, were 3% of them, about 230 requests. The bulk was search indexing. Each of those few fetches stood for a person asking about something we publish. The counts are user agents as sent and are not checked against OpenAI's range file, so treat them as direction.

How often do sites block ChatGPT-User?

Measured by us, not reported by OpenAI: the robots.txt of the 10,000 highest-ranked domains on the Tranco list for 2026-09-01. A domain that never mentions the token wrote no policy for it.

The method and every row, with the CSV.

disallow ChatGPT-User at the root
7.1%
573 of 8,036 domains
allow it by name
4.3%
342 domains
never mention it
88.6%
7,121 domains
robots.txt study, Tranco top 10,000, n=8,036 files read ·

Why match the token and not the version?

OpenAI documents the full header with a version, ChatGPT-User/1.0, as shown in the user-agent section above2. The version increments. Match the bare token ChatGPT-User, case-insensitively, as a whole word. A filter pinned to the version stops matching silently, and under-counting the one agent that maps to real human interest is an expensive mistake.

What can Attensira show you about ChatGPT-User?

AI traffic, on Growth and Business, counts which pages AI agents fetch, grouped by operator and declared purpose, so the user-triggered fetches sit apart from the crawls. It reports user agents as sent; checking an address against openai.com/chatgpt-user.json4 stays your step. Prompt tracking then reads what ChatGPT actually answers about you every day, which is the result those fetches feed. See crawler logs for the first and the robots.txt generator for the rule.

User-AgentOpenAI
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
Researcher agentResearcherTranscribed from OpenAI documentation ·

Should I allow ChatGPT-User in my situation?

Concrete cases, and what each one implies for this agent.

  • You blocked every OpenAI token you could find, and now people report that ChatGPT cannot open your documentation when they paste a link to it.

    Remove ChatGPT-User from the block list and keep the GPTBot rule.

    The fetch you blocked was made because a person asked for that page. It is the one OpenAI agent whose traffic corresponds one-to-one with somebody wanting to read you, and blocking it removes that reader without affecting the training crawler at all.

  • Your compliance team wants a robots.txt guarantee that no OpenAI agent will ever read a particular directory.

    Write the rule, and tell them robots.txt alone does not deliver that guarantee for user-initiated fetches.

    OpenAI states that because these actions are initiated by a user, robots.txt rules may not apply. A directory that must not be readable needs authentication or an IP control, not a line in a text file that the operator has told you may not bind this agent.

  • A burst of ChatGPT-User hits looks nothing like a person clicking, and you suspect the header is being borrowed.

    Match the source addresses against openai.com/chatgpt-user.json before you conclude anything about ChatGPT.

    The header is free text, and the user-triggered tokens are attractive to scrapers precisely because sites leave them allowed. A verified address also tells you it was the user-triggered agent rather than the training crawler, which is a distinction no header can prove on its own.

What else do people ask?

What is ChatGPT-User?
ChatGPT-User is the agent OpenAI documents as being used for certain user actions in ChatGPT and Custom GPTs. When someone asks ChatGPT a question, it may visit a web page using this agent. It is one fetch made for one person, not a crawl of your site.
Does ChatGPT-User obey robots.txt?
OpenAI's own wording is that because these actions are initiated by a user, robots.txt rules may not apply. That is a hedge, not a promise either way, so this page records its position as not bound. If a directory must not be read, protect it with authentication or an address-level control.
Does blocking ChatGPT-User remove me from ChatGPT search?
No. OpenAI directs site owners to OAI-SearchBot for search opt-outs; ChatGPT-User is not the agent that decides whether your pages can appear in ChatGPT's search results. Blocking it only affects fetches a person triggered.

Where do these facts come from?

11 claims on this page, each with the page it was read from; last checked . The numbers in the text point here.

  1. OpenAI documents ChatGPT-User as the agent used for certain user actions in ChatGPT and Custom GPTs, visiting a web page when a user asks a question.

    developers.openai.com · retrieved

    “used for certain user actions in ChatGPT and Custom GPTs”
  2. OpenAI documents ChatGPT-User's user agent as "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot".

    developers.openai.com · retrieved · changes often, check the source

  3. OpenAI states that because ChatGPT-User actions are initiated by a user, robots.txt rules may not apply, and that the agent is not used for crawling the web in an automatic fashion.

    developers.openai.com · retrieved

    “Because these actions are initiated by a user, robots.txt rules may not apply”
  4. OpenAI publishes the addresses ChatGPT-User fetches from as a machine-readable file at openai.com/chatgpt-user.json, one of four per-agent range files.

    developers.openai.com · retrieved

  5. OpenAI documents GPTBot, a separate robots.txt token, as the agent used to crawl content that may be used in training its generative AI foundation models.

    developers.openai.com · retrieved

  6. OpenAI states that each crawler setting is independent of the others, so a site can allow one agent while disallowing another.

    developers.openai.com · retrieved

    “Each setting is independent of the others”
  7. OpenAI documents ChatGPT-User as also covering interactions with external applications via GPT Actions.

    developers.openai.com · retrieved

  8. Perplexity documents Perplexity-User as visiting a web page when users ask a question to help provide an accurate answer, and including a link to the page in its response.

    docs.perplexity.ai · retrieved

    “When users ask Perplexity a question, it might visit a web page to help provide an accurate answer and include a link to the page in its response.”
  9. Perplexity states that since a user requested the fetch, the Perplexity-User fetcher generally ignores robots.txt rules.

    docs.perplexity.ai · retrieved

    “Since a user requested the fetch, this fetcher generally ignores robots.txt rules.”
  10. Anthropic states that its bots, Claude-User among them, respect "do not crawl" signals by honouring industry standard directives in robots.txt.

    support.claude.com · retrieved

    “Anthropic's Bots respect "do not crawl" signals by honoring industry standard directives in robots.txt”

Want whatever it takes to win the answer?

7 days free · card required