Updated 16 September 2026
01 · where the decision belongs
Where the decision belongs
Bot logic tends to accumulate in three places at once: a rule at the CDN, a check in a controller, and a rate limiter somewhere in between. Each was right when it was added and together they are impossible to reason about.
Middleware is one place, early enough to be cheap and late enough to know about the route.
02 · applying it
Applying it
// bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
\Botscope\Laravel\Middleware\Classify::class,
]);
})
// Reading the verdict anywhere downstream
$verdict = $request->attributes->get('botscope');
$verdict->isBot(); // classified as automated
$verdict->agent(); // catalogue slug, when identified
$verdict->reason(); // why — logged with the decision
03 · agents commonly seen on application endpoints
Agents commonly seen on application endpoints
| Bot | Operator | Default policy | Verifiable |
|---|---|---|---|
| GoogleAgent-Mariner | Google DeepMind | Observe | By user agent |
| Manus-User | Butterfly Effect | Observe | By user agent |
| AmazonBuyForMe | Amazon | Observe | By user agent |
| anthropic-ai | Anthropic | Observe | By user agent |
| Claude-Web | Anthropic | Observe | By user agent |
| cohere-ai | Cohere | Observe | By user agent |
| iAskBot | iAsk | Observe | By user agent |
| iaskspider | Ai Search | Observe | By user agent |
Read live from the Botscope crawler catalogue. Default policy is the catalogue default; every agent can be overridden per site.
04 · what it does not do
What it does not do
It does not replace a rate limiter or a WAF, and it is not a DDoS layer. It classifies who is asking; volume control is a separate concern and better handled where it already is.
Questions
What does it add to request latency?
Classification is local. Verification lookups that need the network are cached after the first request from an address.
Can I test against it?
Yes. The verdict is an object on the request, so it can be faked in a test the way any other dependency is.
Does it work with Octane?
Yes, with the usual caveat about not holding request state in a singleton.
Can I enforce in one route group only?
Yes. Apply the middleware where you want it; observe mode reports everywhere without acting.
See which of these reach your site
Free plan, no card: 100,000 events a month with every feature on. Nothing is blocked until you turn enforcement on.