Shopping agents can fetch the commerce paths
What it checks
Issues paired live requests to PDPs, cart and policy URLs with a baseline browser UA versus each documented OpenAI agent UA, detecting WAF/CDN blocks and bot challenges that robots.txt-only audits are structurally blind to.
Why it matters
Falsifiable claim: OpenAI operates four separately-tokened agents with separately published IP ranges — OAI-SearchBot (ChatGPT search indexing), ChatGPT-User (user-initiated fetches, i.e. the shopper’s agent), GPTBot (training), OAI-AdsBot (ad landing-page validation). A PDP may return 403, 429, 503 or a bot-challenge interstitial to ChatGPT-User or OAI-SearchBot, while returning 200 to a browser UA. ChatGPT then cannot read live price and availability, and cannot follow the buy link. The product cannot be surfaced or transacted, whatever the feed quality. This block lives at the WAF/CDN edge and is therefore invisible to any audit that only parses robots.txt. Disproof condition: a site 403ing ChatGPT-User on its PDPs still showing live, accurate prices in ChatGPT.
Evidence
- OpenAI Bots / Crawler documentation — OpenAI (vendor-doc, URL verified 2026-08-20)
- Four distinct user agents with separate robots.txt tokens and separate published IP-range files: OAI-SearchBot (surfaces sites in ChatGPT search — openai.com/searchbot.json), OAI-AdsBot (validates ad landing pages — openai.com/adsbot.json), GPTBot (model training — openai.com/gptbot.json), ChatGPT-User (user-initiated actions: web visits and GPT Actions — openai.com/chatgpt-user.json). ChatGPT-User is the agent that fetches on a shopper’s behalf. Crucially these are separately controllable: blocking GPTBot does not block OAI-SearchBot or ChatGPT-User, and vice versa.
- OAI-SearchBot published IP ranges — OpenAI (dataset, URL verified 2026-08-20)
- Live JSON with creationTime (2026-01-02T11:00:00.000000) and a prefixes[] array of 35 IPv4 CIDR blocks (/24 to /28), e.g. 104.210.140.128/28 and 172.182.193.224/28. Machine-consumable, so an auditor can both spoof the documented UA and tell a merchant exactly which ranges to allowlist at the WAF.
- ACP Concepts: Security — Agentic Commerce Protocol (spec, URL verified 2026-08-20)
- All ACP endpoints use HTTPS and send/receive JSON. Bearer-token authentication between agent and seller; sellers retrieve tokens through the agent’s application. Mandatory headers: Authorization: Bearer
<token>, Content-Type: application/json, Accept: application/json.
How it scores
Tier per evidence policy: scored — grade A meets the A/B bar required for scored audits.
Example failure
A merchant sets User-agent: * / Allow: / and passes every robots.txt audit, but its Cloudflare Bot Fight Mode returns a 403 ‘Just a moment…’ interstitial to ChatGPT-User. The site scores 100 on competitor AI-readiness tools while ChatGPT literally cannot open any product page. Second pattern: robots.txt blocks GPTBot only, but the WAF rule was written against a substring match on ‘GPT’ and therefore also blocks nothing visible in robots.txt while silently 429ing OAI-SearchBot.
Sources
- OpenAI crawlers and user agents — OpenAI, vendor-doc (verified 2026-08-21)
- OAI-SearchBot published IP ranges — OpenAI, dataset (verified 2026-08-20)
- ACP Concepts: Security — Agentic Commerce Protocol, spec (verified 2026-08-20)