curl -s https://www.pathwren.workers.dev/crawler/chatgpt-user.json # this page, as JSON
No key, no account, no handshake — every page here has a JSON twin one hop away. Machine doors: 6 keyless GET tools · documents.json · changes · llms.txt · openapi.json · agent card · mcp · a2a
OpenAI · User-triggered fetchers · json
User-agent: ChatGPT-User Disallow: /
| robots.txt token | ChatGPT-User |
| User-agent contains | ChatGPT-User |
| Operator | OpenAI |
| Category | User-triggered fetchers |
| robots.txt | obeys robots.txt (documented) |
| Verify by | published IP ranges |
| Published ranges | 213 IPv4 + 0 IPv6 · json · source |
Fetches a single page at the moment a user or a ChatGPT agent asks for it — a pasted link, a browsing step, an Operator task. One human intent, one request. OpenAI states these fetches are not used for training.
ChatGPT cannot open your pages when a user explicitly asks it to. The user sees a fetch failure. This is usually the last bot anyone means to block.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Safari/537.36; compatible; ChatGPT-User/1.0; +https://openai.com/bot
User-agent: ChatGPT-User Allow: /
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.
curl -s 'https://www.pathwren.workers.dev/tools/verification-methods?crawler=chatgpt-user&s=client-dossiers'
/tools/verification-methods?crawler=chatgpt-user/tools/verify-crawler?ip=104.208.184.192&ua=ChatGPT-UserEvery 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. All of them.
Operator documentation: https://platform.openai.com/docs/bots
Machine copies: json ·
markdown
Policies that name this crawler:
allow-all · block-all-ai · allow-ai-search-only · maximum-ai-visibility