Skip to main content

By platform

Botscope for Cloudflare

Two ways to run Botscope on a Cloudflare site: a Worker in your own zone with no DNS change, or the edge with Cloudflare kept for DNS. What each one sees.

Free plan, no card. 100,000 events a month with every feature on.

botscope.io · last 7d

This site, classified by this product. Nothing here is a mock-up.

live
requests
112,336
human
13%
AI agents
13%
stopped
0%
verdict stream
  1. signals
    • catalogue: claudebot — match (declared identity matches a catalogued agent)
    • threat_feed: datacenter — fail (listed on a subscribed feed)
    • threat_feed: web_attackers — fail (listed on a subscribed feed)
    • anomaly_score: 0.50 — pass (combined disagreement across the collected signals)
  2. signals
    • catalogue: claudebot — match (declared identity matches a catalogued agent)
    • threat_feed: datacenter — fail (listed on a subscribed feed)
    • threat_feed: web_attackers — fail (listed on a subscribed feed)
    • anomaly_score: 0.50 — pass (combined disagreement across the collected signals)
  3. signals
    • catalogue: claudebot — match (declared identity matches a catalogued agent)
    • threat_feed: datacenter — fail (listed on a subscribed feed)
    • threat_feed: web_attackers — fail (listed on a subscribed feed)
    • anomaly_score: 0.50 — pass (combined disagreement across the collected signals)

botscope.io's own traffic only — never a customer's. No addresses, no query strings, and a path is shown only when it is already a public page.

In short

  • Behind Cloudflare's proxy the A record is spoken for, so the edge needs one change: the record goes DNS-only and points at Botscope. Cloudflare stays your DNS.
  • A Worker runs inside your own zone, in front of your origin, and can refuse a request rather than only report it.
  • It reads the same catalogue and policy as the origin agent, and reports the same per-request record back.
  • Cloudflare resolves the country and the network before the Worker runs, so both are available without a lookup of ours.
  • Behind the proxy, Cloudflare terminates TLS, so the Worker does not see the client's JA4 unless your plan includes Cloudflare Bot Management. For protection against sophisticated bots, the edge is the stronger choice.

Updated 28 October 2026

01 · why the usual options run out here

Why the usual options run out here

There are three ordinary ways to put a classifier in front of a site, and being on Cloudflare removes two of them.

Pointing the domain at another edge is the first, and it costs Cloudflare's proxy: the A record already points at Cloudflare, and the edge needs it switched to DNS-only. You keep Cloudflare as your DNS provider; you give up its proxy in front of that hostname. The origin agent is the second, and it needs the origin to be PHP with somewhere to put a load directive — true of a great many sites and not of the ones sitting behind Cloudflare in front of a static build or a serverless function.

That leaves a script tag, which runs in the browser. It reports what visits and cannot refuse anything, because nothing is routed through it. For a site that came looking for enforcement, that is not the same product.

So the real choice is between the edge, with Cloudflare kept for DNS, and a Worker inside the zone, with Cloudflare's proxy kept in front. The rest of this page is about the Worker; the last section says what it gives up.

02 · what a worker changes

What a Worker changes

A Worker runs in the one place such a site still controls: its own Cloudflare zone, on every request, before the origin sees it. So the decision happens where it has to happen, and the response to a refused request is ours rather than a page the origin had to render first.

The part worth being precise about is that this is not a separate product with its own rules. It pulls the same site configuration and the same agent catalogue the origin agent pulls, from the same endpoints, and runs the same decision ladder — which is held to that by a shared set of test vectors rather than by good intentions. A policy written once in the panel means the same thing whichever enforcement point sees the request.

03 · getting it running

Getting it running

  1. 1 Download the Worker from the Cloudflare tab of the connect screen in your panel.
  2. 2 Store the site ID, API key and secret as Cloudflare secrets. They are never written into the file you would commit.
  3. 3 Set the route to your zone, so the Worker sees every request rather than a sample of them.
  4. 4 Deploy, and leave the site in observe mode until the first figures arrive.

04 · what the worker verifies without a lookup

What the Worker verifies without a lookup

Bot Operator Default policy Verifiable
360Spider Qihoo 360 Allow By user agent
Alexa Archive Alexandria.org Allow By user agent
alexa site audit Amazon Allow By user agent
AlexandriaOrgBot Alexandria.org Allow By user agent
Algolia Algolia Allow By user agent
All Africa Crawler AllAfrica Global Media Allow By user agent
Atom Feed Robot RSSMicro Allow By user agent
Baidu ADS Server Proxy Baidu Allow By user agent
Baiduspider Baidu Allow By user agent
Baiduspider-render Baidu Allow By user agent

Read live from the Botscope crawler catalogue. Default policy is the catalogue default; every agent can be overridden per site.

05 · two things cloudflare answers before we are asked

Two things Cloudflare answers before we are asked

The country a request came from is resolved by Cloudflare itself, so a geographic policy needs no database of ours and no lookup on the request path.

The network is the more useful one. Cloudflare reports the originating network on every plan, which is most of what a threat feed is consulted for — whether this request came from hosting rather than from a consumer connection. That is why the Worker does not need to carry the several megabytes of address ranges the origin agent holds in memory, and why it stays small enough to run inside a request budget measured in milliseconds.

06 · where it is weaker than the origin agent

Where it is weaker than the origin agent

Matching on a TLS fingerprint needs Cloudflare's own bot-management subscription. Without one the Worker still classifies, on a coarser TLS signal — cipher, extension digest and protocol rather than a full fingerprint.

A solved browser check is recorded in Cloudflare's key-value store, which is eventually consistent. The origin agent keeps that record in memory and rejects a replay immediately; here a replay from another location within about a second can still pass, inside its own five-minute window, by somebody who already did the work.

Two behavioural checks that need state carried between requests — the subnet tarpit and session staleness — are not part of it yet.

The largest of these is the first. The client's JA4 fingerprint is visible to whoever terminates TLS, and behind the proxy that is Cloudflare, not the Worker. Without Bot Management, JA4 session continuity and the shared JA4 reputation run on a reduced signal, and those are the checks that catch a headless browser borrowing a real user agent.

So the recommendation is plain. If what you need is AI-agent visibility and per-agent policy, the Worker is enough. If you are here to stop sophisticated bots, put Botscope on the edge: keep Cloudflare for DNS, switch the record to DNS-only, and point it at Botscope.

Questions

Do I have to leave Cloudflare to use Botscope?

No. The Worker runs inside your zone and needs no DNS change. The edge does not need you to leave Cloudflare either — it stays your DNS provider, and only the record for the site goes DNS-only. What you give up on the edge is Cloudflare's proxy in front of that hostname, and what you gain is the full TLS layer.

Which one should I choose?

The Worker for AI-agent visibility and per-agent policy with no DNS change. The edge if you are here to stop sophisticated bots, because only the edge sees every client's JA4. The blog post Botscope vs. Cloudflare compares the two in full.

Does this replace Cloudflare’s own bot management?

They answer different questions. Cloudflare scores a request; this names the agent, says which check decided the outcome, and keeps that record per request so a disputed block can be looked up afterwards. Sites run both.

What does it cost in Cloudflare terms?

One Worker invocation per request, and a small number of key-value reads. Verification that needs a reverse lookup is cached for six hours, and crawler traffic repeats from the same addresses, so almost all of it is served from cache.

Can I run the Worker and the origin agent together?

Yes, and they are built to share a secret so that a visitor who completed a check at one is not asked again by the other.

Is it in the Cloudflare Apps catalogue?

That catalogue was retired — new installs stopped in January 2024 and no replacement shipped. The Worker is deployed from your own account with Cloudflare’s command-line tool.

What happens if Botscope is unreachable?

The request goes to your origin. Every failure path in the Worker passes traffic through, because it sits in front of the whole site and an outage would be worse than the traffic it was installed to stop.

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.

Related