Agent Stamp

The list the stamp is willing to say out loud ·

Which AI agents does Agent Stamp name?

The published user-agent tokens, when the request was not signed. A valid signature is named from the key’s host, not from the user-agent. A failed signature stays Unknown. Copilot is not on the list. GrokAgent is named Grok. A token written Agent/Name is stamped with that name.

Declared is self-reported. Signed authenticates the request operator, not buyer intent or payment. ChatGPT-User, Claude-User, and Perplexity-User are user-triggered page fetches, not purchase evidence by themselves. Official docs: Claude-User, Perplexity-User, Google-Agent.

Unsigned

The token has to appear in the user-agent. The stamp is the name in the second column, marked declared. GrokAgent reads Grok. Agent/Muse reads Muse. A URL that only contains /Agent/ does not. GrokAgent/1.0 is Grok, not a name of 1.0.

Published shopping-agent tokens and the unsigned stamp.
TokenStamp
ChatGPT-UserChatGPT (declared)
Claude-UserClaude (declared)
Perplexity-UserPerplexity (declared)
Google-AgentGoogle Agent (declared)
Meta-ExternalFetcherMeta (declared)
MistralAI-UserMistral (declared)
DuckAssistBotDuckDuckGo (declared)
GrokAgentGrok (declared)
Agent/NameThat name (declared)

Crawlers at checkout

These tokens belong to crawlers. They read pages and do not buy, so a checkout that names one is Unknown, with a note that the name was not used: OAI-SearchBot, OAI-AdsBot, GPTBot, Claude-SearchBot, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, GoogleOther, Applebot-Extended, Meta-ExternalAgent, Amazonbot, Bytespider, cohere-ai, CCBot, Diffbot, YouBot. GPTBot is not an order.

Signed

A valid signature replaces the table above. The name comes from the host that published the key. A subdomain counts. Any other host is stamped as that host. The user-agent is not promoted to signed. Signed means the operator authenticated the request, not that a person placed an order or paid.

Key host and the signed name.
Key hostSigned name
openai.com, chatgpt.com, oaistatic.comChatGPT
anthropic.com, claude.aiClaude
perplexity.aiPerplexity
google.com, googlebot.com, agent.bot.googGoogle
amazon.com, amazonbot.amazonAmazon
facebook.com, meta.comMeta
apple.comApple
bytedance.comByteDance

Not on either list

Googlebot, AdsBot-Google, Bingbot, DuckDuckBot, Baiduspider, YandexBot, AhrefsBot, SemrushBot, PetalBot, facebookexternalhit, Twitterbot, LinkedInBot, Slackbot, Embedly, and Qwantify stay Unknown. So do curl, an empty user-agent, and a headless browser: Headless Chrome, PhantomJS, Selenium, Puppeteer, Playwright.

A normal Chrome, Safari, Firefox, Edge, Opera, or Samsung browser, with no token from the first table and no signature, is Human when a person uses the checkout. The same browser with no person at the place-order control is Unattended. A browser that reports itself as automated is Unattended too. Neither of those is given a product name. Muse, Instinct, Catch, and Grok Bot are named when they identify themselves. Copilot stays Human unless it identifies itself. A failed signature does not get a name from the first table or from the agent field.

Get the plugin