ChatGPT-User user agent string
Visits a page when a ChatGPT or custom GPT user's request needs it; it does not crawl on its own. OpenAI says robots.txt rules may not apply to these user-initiated visits. Below is the exact string it sends, what each part means, and how to allow or block it.
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
At a glance
| Type | AI crawler |
| Operator | OpenAI |
| Purpose | Fetches pages a ChatGPT user asks for |
| Version | 1.0 |
| robots.txt token | ChatGPT-User |
Allow or block it in robots.txt
Block ChatGPT-User from the whole site
User-agent: ChatGPT-User
Disallow: /Allow it again
User-agent: ChatGPT-User
Allow: /
String breakdown
| Fragment | Meaning |
|---|---|
Mozilla/5.0 | Historical compatibility token. Nearly every browser claims "Mozilla/5.0" so that old servers do not serve it broken pages. |
AppleWebKit/537.36 | WebKit rendering engine, build 537.36. Chromium browsers keep this token for compatibility. |
KHTML, like Gecko | Compatibility note: the engine descends from KHTML and behaves like Gecko. Kept for legacy browser sniffers. |
compatible | Compatibility token — historically sent by IE, now mostly by bots. |
ChatGPT-User/1.0 | ChatGPT-User 1.0 — an automated crawler/bot, not a real browser. |
+https://openai.com/bot | Info page the bot operator publishes for webmasters. |
Use it in code
curl
curl -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot" https://example.comPython (requests)
import requests
requests.get("https://example.com", headers={"User-Agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot"})Playwright (Node.js)
const context = await browser.newContext({ userAgent: "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot" });
Source: Overview of OpenAI Crawlers · checked September 2026