{"updated":"2026-09-08","columns":[{"key":"tagsLinks","label":"Tags links","question":"Does a link the assistant renders carry anything that identifies the referral?"},{"key":"referer","label":"Sends a referer","question":"Does a click from the assistant arrive with a Referer header?"},{"key":"inAppUa","label":"In-app browser identifies","question":"Does the assistant's own in-app browser say what it is in the user agent?"},{"key":"signsFetches","label":"Publishes a key directory","question":"Is there a live Web Bot Auth key directory? A directory is necessary for signed fetches but does not prove every fetch is signed."},{"key":"fetchSigned","label":"User fetch signed","question":"Does the real-time, user-triggered fetch (the one behind a citation) actually carry a Web Bot Auth signature? Measured by asking the assistant to fetch a URL that echoes the request headers back."},{"key":"dirSelfSigned","label":"Directory signed","question":"Is the key directory response itself signed, as the draft requires?"},{"key":"publishesIps","label":"Publishes IPs","question":"Is there a published IP range list for the fetchers?"}],"rows":[{"key":"chatgpt","name":"ChatGPT","vendor":"OpenAI","cells":{"tagsLinks":{"value":"yes","note":"utm_source=chatgpt.com on search citations and on inline brand links, both observed in a logged-in paid session. Links carried rel=noopener, not rel=noreferrer. A URL ChatGPT was asked to fetch directly and echoed back carried nothing. No utm_medium or utm_campaign, so GA4 reports both as (not set). Yelp links carry a separate negotiated scheme: utm_source=openai&utm_medium=feed_v2&adjust_creative=openai.","source":"Browser probe of a logged-in ChatGPT session, reading rendered link hrefs","date":"2026-09-08","verified":"hand"},"referer":{"value":"partial","note":"The web app sends its origin only. Citation and brand links on a paid account carry rel=noopener, so rel does not suppress the referer there. The desktop and mobile apps send nothing.","source":"Third-party reporting for the app policy; rel values observed directly 2026-09-08","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"The mobile apps open links in a plain in-app browser that does not identify itself. The newer desktop browser is undocumented.","source":"Edge probes across client zones","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"yes","note":"1 key published at chatgpt.com.","source":"https://chatgpt.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Asked to fetch a header-echo URL, ChatGPT's request arrived with User-Agent ChatGPT-User/1.0 and no Signature, Signature-Input or Signature-Agent header. Only agent mode signs. The fetch behind a citation is unsigned.","source":"Browser probe: httpbin.org/headers via a logged-in ChatGPT session","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"yes","note":"The directory response carries its own Signature and Signature-Input headers.","source":"https://chatgpt.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"4 lists, 289 prefixes, newest stamped 2026-09-25.","source":"https://openai.com/gptbot.json, https://openai.com/searchbot.json, https://openai.com/chatgpt-user.json, https://openai.com/adsbot.json","date":"2026-09-28","verified":"auto"}}},{"key":"claude","name":"Claude","vendor":"Anthropic","cells":{"tagsLinks":{"value":"no","note":"A request for UTM tagging was filed in a Claude Code repository and closed automatically by a bot as off topic on 2026-04-07. No human replied, so nothing has been declined.","source":"anthropics/claude-code issue 43398, checked through the GitHub API","date":"2026-09-08","verified":"hand"},"referer":{"value":"partial","note":"The web app sends its origin. The desktop and mobile apps send nothing.","source":"Third-party reporting plus edge probes","date":"2026-09-04","verified":"hand"},"inAppUa":{"value":"partial","note":"The desktop app identifies itself in the user agent (Claude/1.x, MSIX build). The mobile apps do not.","source":"Edge probes across client zones","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"claude.com returned HTTP 404.","source":"https://claude.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Asked to fetch a header-echo URL from a logged-in session, Claude's request arrived with User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-User/1.0; +claude-user@anthropic.com) and no Signature, Signature-Input or Signature-Agent header. Consistent with Anthropic publishing no key directory at all.","source":"Browser probe: httpbin.org/headers via a logged-in claude.ai session","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://claude.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"1 list, 26 prefixes, newest stamped 2026-08-18.","source":"https://claude.com/crawling/bots.json","date":"2026-09-28","verified":"auto"}}},{"key":"perplexity","name":"Perplexity","vendor":"Perplexity","cells":{"tagsLinks":{"value":"no","note":"No documented referral parameter. Comet Plus pays publishers on human visits, search citations and agent actions, with the attribution method undisclosed.","source":"Perplexity publisher program statements","date":"2026-09-08","verified":"hand"},"referer":{"value":"partial","note":"The web app sends its origin. The Comet browser passes a Referer like any Chromium browser.","source":"Third-party reporting; the origin is challenge-gated to curl","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"Comet's user agent is plain Chrome and does not identify the product.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"www.perplexity.ai returned HTTP 404.","source":"https://www.perplexity.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Measured on both surfaces. Search mode sends no request at all: its UI shows a completed fetch step, but our Worker log, the Cloudflare edge log and zero firewall events all say nothing arrived. Computer mode fetches unsigned and undeclared, and rotates: four runs in ten minutes came from Mexico (Telmex), Honduras (Cable Satelite) and two US hosting networks (DedFiberCo, Web2Objects), claiming Chrome on Windows, Edge on Windows, Vivaldi on Linux and Chrome on macOS. None carried a Perplexity identifier or is in the published IP lists. Three sent a Referer that was false, one naming yahoo.org, and all three of those also sent sec-fetch-site: none, a combination no real browser produces.","source":"verifyagents.org/echo request log, four runs 2026-09-08 17:48:55Z to 17:58:07Z, with RDAP and ASN lookups","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://www.perplexity.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"2 lists, 12 prefixes, newest stamped 2025-10-17.","source":"https://www.perplexity.ai/perplexitybot.json, https://www.perplexity.ai/perplexity-user.json","date":"2026-09-28","verified":"auto"}}},{"key":"google-ai-mode","name":"Google AI Mode","vendor":"Google","cells":{"tagsLinks":{"value":"partial","note":"adview_query_id, a 26-character per-query token, appears on some AI Mode ad clicks. Whether it ever appears on organic links is unverified.","source":"Third-party analyses, 2026-01 and 2026-05","date":"2026-05-12","verified":"hand"},"referer":{"value":"yes","note":"Sends https://www.google.com/ as the referrer, set by a meta referrer=origin tag. That makes AI Mode traffic indistinguishable from organic search in analytics.","source":"Live check of the origin's referrer policy","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"na","note":"AI Mode runs in the browser the person is already using.","source":"n/a","date":"2026-09-08","verified":"hand"},"signsFetches":{"value":"yes","note":"5 keys published at agent.bot.goog.","source":"https://agent.bot.goog/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not checked.","source":"","date":"","verified":"hand"},"dirSelfSigned":{"value":"yes","note":"The directory response carries its own Signature and Signature-Input headers.","source":"https://agent.bot.goog/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"3 lists, 1395 prefixes, newest stamped 2026-09-25.","source":"https://developers.google.com/static/crawling/ipranges/user-triggered-agents.json, https://developers.google.com/static/crawling/ipranges/user-triggered-fetchers.json, https://developers.google.com/static/search/apis/ipranges/googlebot.json","date":"2026-09-28","verified":"auto"}}},{"key":"gemini","name":"Gemini","vendor":"Google","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"partial","note":"The web app sends https://gemini.google.com/ (meta referrer=origin). The Android surface strips it.","source":"Live check of the origin's referrer policy, plus edge probes","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"partial","note":"The iOS app identifies itself (GeminiiOS, GoogleWv). The Android surface does not.","source":"Third-party user-agent reporting, from about February 2026","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"gemini.google.com returned HTTP 404.","source":"https://gemini.google.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Fetches unsigned from genuine Google infrastructure (108.177.73.199, AS15169) with a user agent of exactly \"Google\". That token is not documented on Google's crawler pages, and the address matches none of Google's five published IP lists (user-triggered-fetchers, -google, -agents, googlebot, special-crawlers), so a site following Google's own verification guidance would not identify the fetch as Google. Gemini also told the user the site had blocked it; the request was served 200.","source":"verifyagents.org/echo request log, 2026-09-08T18:24:33Z, checked against all five Google IP lists","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://gemini.google.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"1 list, 496 prefixes, newest stamped 2026-09-25.","source":"https://developers.google.com/static/crawling/ipranges/user-triggered-fetchers-google.json","date":"2026-09-28","verified":"auto"}}},{"key":"copilot","name":"Copilot","vendor":"Microsoft","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links. Inside the Bing results page, clicks report as bing/organic.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"yes","note":"Sends https://copilot.microsoft.com/ (Referrer-Policy: origin-when-cross-origin). Clicks inside the Bing results page report as bing/organic instead.","source":"Live check of the origin's referrer policy","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier in the user agent.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"www.bing.com returned HTTP 404.","source":"https://www.bing.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not measurable: the request never leaves Microsoft. Copilot reported \"Failed to get web content\" and no request reached us, confirmed by our request log, the Cloudflare edge log and zero firewall events. Its account was accurate as to outcome, though it attributed the error to the site, which was never contacted. Unverified, not a no.","source":"verifyagents.org/echo request log and Cloudflare edge log, 2026-09-08","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://www.bing.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"1 list, 28 prefixes, newest stamped 2024-01-03.","source":"https://www.bing.com/toolbox/bingbot.json","date":"2026-09-28","verified":"auto"}}},{"key":"grok","name":"Grok","vendor":"xAI","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"partial","note":"The web app sends its origin (Referrer-Policy: origin-when-cross-origin). Inside the X app there is no referrer at all.","source":"Live check of the origin's referrer policy, plus edge probes","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier. Inside the X app there is no referer at all.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"grok.com returned HTTP 404.","source":"https://grok.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Fetches unsigned and undeclared: a plain Chrome 143 on macOS user agent with no xAI identifier, from 45.41.180.0, an address RDAP attributes to a direct allocation to Web2Objects LLC. xAI publishes no IP list, so no documented method exists by which a site could identify this fetch as Grok. Notably the same RDAP registrant (handle WL-113) also covers the address one Perplexity agent run came from, so this space identifies an IP lessor rather than an assistant.","source":"verifyagents.org/echo request log, 2026-09-08T18:34:51Z, with RDAP and ASN lookups","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://grok.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"no","note":"No published IP range list found for any xAI fetcher.","source":"Live check","date":"2026-09-08","verified":"hand"}}},{"key":"meta-ai","name":"Meta AI","vendor":"Meta","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"unverified","note":"The origin blocks direct checks. In-app browsers are assumed to strip the referer.","source":"Live check returned 403","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"meta.ai returned HTTP 200 with no keys.","source":"https://meta.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not checked.","source":"","date":"","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://meta.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"no","note":"No IP list on Meta's crawler documentation. Fetches arrive from AS32934 in practice.","source":"Live check","date":"2026-09-08","verified":"hand"}}},{"key":"deepseek","name":"DeepSeek","vendor":"DeepSeek","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"unverified","note":"The origin serves an app shell to a direct request, so the app's policy is not checkable this way.","source":"Live check","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"chat.deepseek.com returned HTTP 200 with no keys.","source":"https://chat.deepseek.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not measured. chat.deepseek.com redirects to sign-in, and account creation fails with \"Current device environment error. Please try a different environment.\" No request reached the endpoint.","source":"Logged-out browser attempts, 2026-09-08","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://chat.deepseek.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"no","note":"No published IP range list found.","source":"Live check","date":"2026-09-08","verified":"hand"}}},{"key":"mistral","name":"Le Chat","vendor":"Mistral","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"unverified","note":"The origin is challenge-gated to a direct request.","source":"Live check","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"mistral.ai returned HTTP 404.","source":"https://mistral.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"no","note":"Fetches unsigned, but it is the only assistant measured that a site can verify by the documented method: user agent MistralAI-User/1.0 with a link to Mistral's robots docs, and client IP 51.12.243.114 is an exact match for one of the four addresses Mistral publishes. No Web Bot Auth signature, so the identification is spoofable and rests on the IP match, but the published verification path works and has not drifted since February 2025.","source":"verifyagents.org/echo request log, 2026-09-08T18:32:00Z, checked against mistral.ai/mistralai-user-ips.json","date":"2026-09-08","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://mistral.ai/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"1 list, 4 prefixes, newest stamped 2025-02-19.","source":"https://mistral.ai/mistralai-user-ips.json","date":"2026-09-28","verified":"auto"}}},{"key":"duckduckgo","name":"DuckAssist","vendor":"DuckDuckGo","cells":{"tagsLinks":{"value":"no","note":"Nothing on rendered links.","source":"Manual inspection","date":"2026-09-04","verified":"hand"},"referer":{"value":"yes","note":"Sends https://duckduckgo.com/ (Referrer-Policy: origin).","source":"Live check of the origin's referrer policy","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"no","note":"No product identifier.","source":"Edge probes","date":"2026-09-04","verified":"hand"},"signsFetches":{"value":"no","note":"duckduckgo.com returned HTTP 404.","source":"https://duckduckgo.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not checked.","source":"","date":"","verified":"hand"},"dirSelfSigned":{"value":"na","note":"No directory to sign.","source":"https://duckduckgo.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"yes","note":"2 lists, 972 prefixes, newest stamped 2026-09-01.","source":"https://duckduckgo.com/duckduckbot.json, https://duckduckgo.com/duckassistbot.json","date":"2026-09-28","verified":"auto"}}},{"key":"browserbase","name":"Browserbase","vendor":"Browserbase","cells":{"tagsLinks":{"value":"na","note":"Agent infrastructure, not an assistant that renders links to people.","source":"n/a","date":"2026-09-08","verified":"hand"},"referer":{"value":"na","note":"No human-facing surface.","source":"n/a","date":"2026-09-08","verified":"hand"},"inAppUa":{"value":"na","note":"No human-facing surface.","source":"n/a","date":"2026-09-08","verified":"hand"},"signsFetches":{"value":"yes","note":"2 keys published at www.browserbase.com.","source":"https://www.browserbase.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"fetchSigned":{"value":"unverified","note":"Not checked.","source":"","date":"","verified":"hand"},"dirSelfSigned":{"value":"yes","note":"The directory response carries its own Signature and Signature-Input headers.","source":"https://www.browserbase.com/.well-known/http-message-signatures-directory","date":"2026-09-28","verified":"auto"},"publishesIps":{"value":"na","note":"Customer infrastructure, not a fixed fleet.","source":"n/a","date":"2026-09-08","verified":"hand"}}}],"lastProbe":"2026-09-28T06:00:46.682Z"}