How to verify an AI agent is who it says it is
A user agent header is a claim, not proof of identity. Learn when published IP ranges are useful, how Web Bot Auth verifies signed requests, and why a verified agent still needs permission to perform sensitive actions.
Reviewed October 1, 2026 · 8 min read
On this page7 sections
To verify an AI agent, use the method its operator supports: a published IP range, validated DNS procedure or a cryptographic request signature. Matching a user agent string alone is not enough, because any client can copy that header.
Different products from the same company can use different verification methods. OpenAI publishes IP information for several crawlers, while its Cloud browser allowlisting guide describes signed requests. Identify the product before copying an allowlist rule.
Verification helps you apply access rules to the right caller. It does not prove that the customer authorized a purchase, that a request is harmless, or that the caller should see private records. Those decisions still belong to your application.
What each verification method can tell you#
Use an operator’s documented method and keep its configuration current. These signals have different strengths and limits:
| Method | What it establishes | What to check |
|---|---|---|
| User agent header | The identity a client claims | Treat it as a label until verified independently |
| Published IP range | The request came from a documented network range | Use the operator’s current list and a trustworthy client IP |
| Validated reverse and forward DNS | An address matches the operator’s documented DNS procedure | Check the exact domain rules and forward resolution |
| Request signature | A holder of a trusted private key signed the covered components | Validate the key binding, signature, scope and freshness |
An IP check remains useful where the provider supports it. Behind a proxy, obtain the client address from trusted infrastructure rather than an arbitrary forwarded header. When the provider uses signatures, follow that integration instead of inventing a static range.
How Web Bot Auth signs an agent request#
Web Bot Auth builds on HTTP Message Signatures. OpenAI’s documented Cloud browser integration uses three headers:
- Signature contains the cryptographic signature.
- Signature-Input describes the covered components and signature parameters.
- Signature-Agent identifies the claimed operator; OpenAI documents https://chatgpt.com for its Cloud browser.
Your verifier must check the complete supported profile, including which request components are signed and how timestamps, keys and algorithms are validated. A signature that covers only the destination host does not bind every method, path or body sent to that host.
A valid signature needs a trusted identity binding
Anyone can create a key pair and sign a request. To recognize a particular operator, you must establish that the verification key belongs to that operator. Accepting whichever key a caller supplies would only prove that the caller controls its own key.
Find the operator’s public key directory#
Cloudflare’s Web Bot Auth documentation describes publishing a public key directory over HTTPS at a well-known path. Its integration also requires a signed directory response. Use the provider’s supported validation procedure, including directory binding and key rotation, rather than just downloading a key and checking some bytes.
OpenAI publishes a directory you can inspect with this read-only request:
curl -fsS https://chatgpt.com/.well-known/http-message-signatures-directory # Public keys verify signatures. # The operator keeps the corresponding private signing keys.
This command lets you inspect the directory; it does not verify an incoming request. If you build a verifier, do not fetch arbitrary caller-supplied URLs without safeguards. Restrict directory retrieval, validate HTTPS and redirects, and prevent requests to private network addresses.
What an agent card adds#
The proposed signature agent card adds operator metadata, such as identity, purpose and expected behavior. The registry and card draft is separate from the request-signature protocol. Treat its fields as versioned declarations, not as a universal capability every agent already provides.
| Declared information | Operational use | Limit |
|---|---|---|
| Operator identity and contact | Resolve who operates the client | Verify the identity binding independently |
| Purpose and trigger | Distinguish collection from user-requested retrieval | A declaration does not prove how collected data is used |
| Robots token and policy support | Match published access preferences | Keep checking the operator’s documentation and behavior |
| Traffic expectations and network information | Plan capacity and investigate requests | Actual request volume can differ |
Metadata can make an access policy easier to maintain. It does not enforce the policy for you. Keep a record of the operator’s declared behavior, the version you support and what your own logs show.
Check your public access separately
The Nexez scanner checks public access and the business information returned by your site. It can surface access problems, but it does not certify an agent’s identity or test your private authorization rules.
Scan your site freeMatch access to the purpose of the request#
A training crawler, search indexer and user-requested browser serve different purposes. Decide which activities your site permits, then apply that decision using verified identity and provider-supported controls where available.
For a public catalog, allowing a recognized search or user-requested client may help people find your offers. For account details or order changes, require the normal customer authorization. Which AI crawlers to allow explains the policy choices and current operator distinctions.
Check what your CDN control actually does
Cloudflare’s September controls distinguish blocking AI traffic from disallowing training while allowing qualifying search access. Review the current setting and its scope. A broad rule can affect several purposes even when your robots.txt file distinguishes them.
A practical verification checklist#
Start with your CDN or security provider’s integration. If you maintain verification yourself, assign an owner for protocol updates, key rotation and failure handling.
- Identify the exact agent product and read its official allowlisting instructions. Do not assume a crawler and a browser agent share a verification method.
- Use your provider’s verified identity or detection identifier, with the narrowest rule needed. Bot names differ between providers.
- Inspect edge logs before changing robots.txt. A firewall challenge or block can stop a request before your application sees it.
- Test valid, expired and invalid signatures, an unknown key, a changed request and a directory outage. Log the decision without exposing credentials.
- Review existing IP rules and key caches for freshness. Preserve supported controls that still serve a purpose, and remove stale or overly broad exceptions.
Standards status and replay limits#
As of October 1, 2026, the IETF Web Bot Auth working group has an HTTP signature protocol draft. The underlying HTTP Message Signatures specification is RFC 9421; the bot-specific work is still developing. Deployed provider integrations may differ from the newest draft.
Expiration limits how long a captured signature can be reused, but does not necessarily make it single-use. The current draft explicitly discusses signatures that remain reusable against the same host. Sensitive actions need the appropriate request binding, customer authorization and duplicate-action protection in addition to bot verification.
Verification also cannot guarantee good behavior. Keep rate limits and abuse controls appropriate to the endpoint. A known operator can still send a request your application should reject.
Once access is correct, check what legitimate callers receive: accurate catalog data, a consistent business identity and a clear next step. Verification makes it possible to recognize the caller; useful content and authorized actions make the visit worthwhile.
Make your public offers easy to understand
Nexez publishes business and offer information through structured listings and supported agent interfaces. See how those listings help an allowed visitor find the right product, service or booking path.
See how it worksFrequently asked questions
Does Web Bot Auth replace robots.txt?
No. Robots.txt publishes crawling preferences, while Web Bot Auth helps establish who sent a request. Your firewall and application decide what access to permit. Continue maintaining robots.txt and check each operator’s documented behavior.
Is Web Bot Auth an official standard yet?
HTTP Message Signatures is standardized in RFC 9421. As of October 1, 2026, the bot-specific protocol is an IETF working-group draft, and related card metadata is still proposed. Follow the version your provider supports rather than assuming every deployed integration matches the latest draft.
How do I verify a signature if I am not on Cloudflare?
Check whether your CDN or firewall supports the operator’s signed traffic. If you verify at your origin, use a reviewed implementation with trusted key discovery, signature validation, freshness checks and tests for invalid requests. Protect directory fetching from arbitrary redirects and private network access.
Can a signature be stolen and replayed against my site?
Potentially. Expiration narrows the replay window, and signed components limit where a signature can be reused. A host-bound signature may still be reusable on that host before it expires. Sensitive operations also need authorization, appropriate request binding and protection against duplicate actions.
Which AI agents actually sign their requests today?
OpenAI documents signed requests for ChatGPT Work’s Cloud browser, with verification keys published under chatgpt.com. Other operators and CDN integrations also support signed traffic. Check the exact product’s official documentation, since a company’s crawler and browser agent can use different methods.
Does a signed agent mean I should trust it?
A correctly verified signature helps establish the signing identity and the integrity of the covered components. It does not authorize a customer purchase, reveal whether the request is safe, or grant access to private data. Apply your normal endpoint permissions and abuse controls.
I blocked all AI bots last year. Does this change anything?
It gives you a reason to review the scope of that block. You may want to permit recognized search or user-requested traffic while retaining limits on training collection. Make that decision by purpose and verified operator, then test the effect in your edge logs.
Keep reading
Which AI crawlers should your business allow?
Search crawlers, training crawlers and user-triggered fetchers serve different purposes.
7 min readAgent readinessHow AI systems identify your business
A website, a map listing and a review profile may all describe the same business.
7 min readAgent readinessHow to measure AI crawlers, referrals and transactions
AI-related activity does not appear in one clean analytics channel.
7 min read