Skip to content

Rate limits and proof-of-work

Defaults per service

Setting Default Effect when exceeded
conn_drop_per_10s 500 connections silent drop before TLS
conn_per_10s 50 connections 429
req_per_10s 500 requests 429
challenge_req_per_10s 200 requests proof-of-work challenge
path_default 1000 requests per path 429
JA4 rate 1000 requests per fingerprint per 10 s challenge (or deny)
slow HTTP under 1024 bytes per 10 s challenge

All counters are per source IP and synchronised across the edge cluster. Raise or lower them per service in the portal; per-path limits go into protection rules.

Proof-of-work

Suspicious clients get an Argon2 challenge that a browser solves in milliseconds and a bot farm pays for in CPU time. Settings: difficulty (default 18), cookie lifetime after a solved challenge (default 24 hours), always_challenge for lockdown situations, and an exemption for known crawlers.

Machine clients (APIs, monitoring, webhooks) cannot solve the challenge. Give them an allow rule on their path or source, see Protection rules.