BCS and Cloudflare Bot Management: how they fit together

BCS is not an alternative to Cloudflare — it is the behavioral governance layer that sits above it.

Short answer

Keep your Cloudflare Bot Management setup unchanged. Add BCS as a lightweight additional check on the automated traffic Cloudflare correctly lets through. Cloudflare handles volumetric threats and pattern-based detection; BCS classifies individual operators by observed conduct.

Where each layer sits

Internet
   │
   ▼
Cloudflare edge
  (DDoS mitigation, WAF, IP reputation,
   known-bad blocking, Bot Management if Enterprise)
   │
   ▼
Cloudflare lets the request through
   │
   ▼
Your origin server receives the request
   │
   ├─ 3-5 line middleware: POST to BCS /api/score
   │    ↓
   │    BCS returns verdict (allow / throttle / challenge / block)
   │    ↓
   └─ Policy applied by your application

What each layer is good at

ConcernCloudflare Bot ManagementBCS
Volumetric DDoS✅ ExcellentNot the purpose
Known malicious IP blocking✅ ExcellentNot the purpose
JS challenge / Turnstile✅ NativeNot the purpose
WAF rules✅ ExcellentNot the purpose
Per-operator behavioral reputationPartial, Enterprise-only✅ Purpose
Verifiable cryptographic identity for named botsCloudflare Web Bot Auth (separate product)Complementary — BCS adds conduct score to the identity
Granular policy per operatorLimited to static allow-lists✅ Dynamic score-based policy
Audit trail for AI agent conductLogs only✅ Structured behavioral record
Integration complexityCDN-level, often requires Enterprise plan3-5 lines of middleware
Price for mid-marketBot Management Enterprise-only$99/mo starter tier

Integration pattern

The common pattern is a two-layer policy:

# Site middleware — conceptual
request_passed_cloudflare = True  # Cloudflare already let it through

verdict = bcs.score(
    user_agent=request.headers["User-Agent"],
    path=request.path,
    headers=dict(request.headers),
)

if verdict["score"] >= 90 and verdict["certified"]:
    allow()  # Fast Pass for certified exemplary operators
elif verdict["action"] == "block":
    return 403
else:
    throttle_or_challenge()  # rate-limit, captcha, etc.

When this combination makes sense

You already use Cloudflare for DDoS and IP reputation. You are satisfied with how it handles volumetric threats. But:

When this combination does NOT make sense

Cloudflare Web Bot Auth vs BCS

Cloudflare's Web Bot Auth is a separate product that proves identity (cryptographic proof of who a bot is). BCS scores conduct (how the bot behaves). Both layers are complementary:

A site using both gets a complete picture: verified identity + verifiable conduct. A bot can have one without the other (e.g., a Web Bot Auth-verified new crawler with no conduct history scores neutral until behavior accumulates).

For Cloudflare users: BCS does not require any Cloudflare configuration change. The integration is entirely on your origin server. If you are interested in combining BCS with Cloudflare Workers at the edge rather than at origin, contact us — we have a reference pattern.

Free tier available. 5,000 verdicts/month, no credit card.

Start integration →

Questions or feedback: hello@botconduct.org · @botconduct