The traffic nobody can name
Look closely at an application's logs and you will find requests that resist explanation. They come from clients without a browser context. Their user-agent strings are generic, empty or copied from a popular browser. They do not sign their requests. They do not say who sent them. Some are harmless scripts. Some are agents working for real users. Some are tools you would rather not serve at all.
This is unknown automated traffic, and most teams handle it in one of two ways. Either it is quietly counted as human, which distorts analytics and lets risky activity through, or it is treated as hostile by default, which blocks legitimate users and agents along with everything else. Both approaches share the same flaw: they replace missing evidence with an assumption.
Proof of Actor takes the opposite view. If the evidence does not support a reliable determination, the right answer is Unknown, and Unknown should be visible, measurable and handled on purpose. The blog post why Unknown is a valid result for AI traffic makes the full case.
Why Unknown is a first-class result
Proof of Actor classifies every interaction into one of four classes: Human, Human + AI, Agent or Unknown. Unknown is not an error state or a gap in the product. It is a deliberate result with a precise meaning: the available evidence does not support a reliable determination.
That honesty has practical benefits.
- Your analytics stay accurate. Human and Agent counts only include interactions with supporting evidence, so they mean what they say.
- Your coverage is measurable. The share of Unknown on each route tells you exactly where you need more evidence.
- Your policies are safer. Uncertain cases flow into a fallback you chose, instead of being silently treated as trusted or blocked by a guess.
Unknown is never converted to Human, and it is never treated as malicious by default. You can read more in the Unknown classification glossary entry, on Detection & Limitations, and in why Unknown is a valid result for AI traffic. The websites and APIs use cases show how teams set Unknown fallbacks in practice.
Where unknown automated traffic comes from
Understanding the sources helps you decide how to handle it.
Unsigned automated clients
Request signing with HTTP Message Signatures, defined in RFC 9421, is optional, and the IETF Web Bot Auth working group is still standardizing how automated clients should authenticate this way. Without a signature, a client's identity rests on whatever it chooses to say about itself.
Copied or generic user agents
User-agent strings are trivial to set. A client claiming to be a well-known browser or crawler may be exactly that, or may be imitating it. The user-agent spoofing entry explains why this header alone cannot carry a classification. It is also why search engines document separate verification methods: Google describes reverse and forward DNS lookups plus published IP ranges for verifying Googlebot, and Bing describes the same DNS check for verifying Bingbot.
Routes without an integration
If a route has no browser integration and no server-side context beyond the basics, there is simply less to observe. Unknown on those routes is a sign of coverage, not of threat.
Missing or delayed evidence
A timeout, a blocked script or an incomplete request can leave a result without enough evidence. Proof of Actor reports that honestly instead of filling the gap.
How Proof of Actor makes Unknown manageable
Proof of Actor organizes its work into three capabilities. Each one helps with unknown automated traffic.
Detect: keep Unknown separate
Signals are checked and labeled by basis: verified, declared, inferred or unknown. When they do not support a determination, the result is Unknown with a summary of what was and was not available. Nothing is guessed into another class.
Understand: see where Unknown lives
The Understand view shows Unknown in every breakdown, by route and over time. You can see which routes have the most unknown activity, how it changes after you add an integration, and what evidence was present for individual interactions. This turns a vague worry into a concrete map.
Route: choose the fallback per route
Different routes deserve different fallbacks. A reasonable starting point for many applications:
- Public pages and documentation: allow Unknown with your standard rate limits.
- Signup and onboarding: keep your existing checks, and add review only when your own conditions call for it.
- Account changes and other sensitive actions: rely on your existing authentication and step-up controls, never on an actor guess.
- High-impact API operations: require the stronger credentials or controls your API already supports.
The guide on handling unknown traffic walks through designing these fallbacks, including fail-open and fail-closed choices for each risk tier.
Shrinking Unknown over time
The goal is not to eliminate Unknown overnight. It is to make it smaller every month, for the right reasons.
- Add integrations where it matters. A browser integration on key pages and a server-side integration on key routes increase the evidence available.
- Support signed requests. As agent operators adopt HTTP message signatures, traffic that was Unknown becomes verified Agent traffic.
- Record declarations in your own app. When your application knows AI assistance is involved, say so. That evidence is precise and cheap.
- Offer agents a front door. Publishing a structured path for agents encourages them to identify themselves rather than blend in.
Because Proof of Actor tracks Unknown by route, you can see each of these changes in the numbers.
How it works
Every interaction follows the same evidence-first path, described in full on How It Works: your application receives a request or event, the integration gathers the signals available in that context, signals are normalized and classified with an explicit basis, the result is recorded for analytics, and your application applies its own policy or simply observes.
Timeouts and missing telemetry are handled explicitly. Your integration uses the fallback you chose for that route, and the result is never upgraded to Human because evidence was missing.
What good looks like after a few months
Teams that handle unknown automated traffic well tend to reach the same healthy state. Unknown is a known quantity on every important route, tracked in the same dashboard as human and agent activity. Each route has a written fallback that the product, platform and security teams agreed on together. Verified agent traffic grows as more operators sign their requests, and those agents are served through a structured path instead of scraping pages. Sensitive actions are protected by the authentication and step-up controls the application already trusts, with actor context as an extra input rather than a gatekeeper.
Most importantly, nobody is guessing. When someone asks how much of last week's traffic was automated, the answer comes with its basis: this much verified, this much declared, this much inferred, and this much still Unknown. That is a number a team can plan around. It also changes the conversation with leadership, because the question stops being whether bots are a problem and becomes which routes deserve more evidence and which fallbacks need refining.
Start in observation mode
Proof of Actor does not block anything by default. In observation mode, results are recorded while your application responds exactly as before. Your team sees how much unknown automated traffic each route receives, compares it with outcomes you already know, and designs fallbacks based on real patterns. Policies are enabled one route at a time, only when your team is confident they fit.
Join the founding developer program
Proof of Actor is in private beta. Selected founding developer teams can receive up to 12 months of free access, within agreed usage limits, in exchange for hands-on product feedback, with direct integration support from our engineers.
If unknown automated traffic is clouding your analytics or your security decisions, apply for early access. Tell us about your application and the routes where Unknown matters most.
Explore Proof of Actor, read how it works, or see what the evidence can establish.
Sources
- RFC 9421: HTTP Message Signatures, IETF, February 2024.
- Web Bot Auth (webbotauth) working group charter, IETF.
- Verifying Googlebot and other Google crawlers, Google Search Central.
- How to verify that Bingbot is Bingbot, Bing Webmaster Blog.