Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.
Bunny Shield identifies automated traffic using behavioral fingerprinting, header anomalies, and IP reputation. Detection rules and sensitivity profiles propagate across the edge within seconds, so policy changes take effect in near real time.
Behavioral Fingerprinting: Distinguish real users from automated traffic using fingerprinting, header anomaly detection, and request behavior modeling.
Real-Time Response: Detection logic and mitigation rules propagate across the edge within seconds, so policy changes take effect almost immediately.
Customizable Rules: Set detection conditions based on HTTP headers, IP reputation, user-agent anomalies, cookie presence, request frequency, and other signals.
False Positive Resistant: Allow-listing, ASN validation, and crawl integrity filters keep legitimate crawlers and automation from being blocked.
Request integrity looks for anomalies in headers, protocol usage, and request structure.
IP address scores requests based on IP reputation, behavior, and known rate patterns.
Fingerprint sensitivity determines how assertively Bunny Shield should treat unusual browser fingerprints as bots.
Complex fingerprinting (Business or above) combines advanced entropy analysis and cross-session consistency.
These options let you tailor detection to match your traffic profile and risk tolerance. And with Edge Rules, you can disable bot detection dynamically based on headers, cookies, IP addresses, or specific endpoints, giving you full control over when and where protection applies.
Bot detection isn’t a black box. Bunny Shield shows you exactly what it’s seeing and doing, in real time:
Logged requests: Number of requests identified as bots but not challenged.
Challenged requests: Number of requests that triggered browser validation. We give you the full picture, with clear metrics and event logs that show what’s being flagged and how it’s being handled. No guesswork required.
You can utilize the Bunny Shield API to automate Bot detection configurations or integrate them into your continuous integration and continuous deployment (CI/CD) pipelines. This capability allows you to manage your security settings efficiently and consistently across different environments.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"bunny.net Documentation","colors":{"primary":"#EF6126","light":"#EF6126","dark":"#EF6126"},"logo":{"light":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37","dark":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-light.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=3610e32d68a9fa458b0116ac58ca812a"},"favicon":"https://mintcdn.com/bunnynet-cb9733c2/1bTPx1eyQm8EK8W3/favicon.png?fit=max\u0026auto=format\u0026n=1bTPx1eyQm8EK8W3\u0026q=85\u0026s=85267b63e804fac7a4dd94599bb8c6e8","navbar":{"links":[{"href":"https://bunny.net/docs/api-reference","label":"API Reference"},{"href":"https://github.com/BunnyWay","label":"GitHub"}],"primary":{"type":"button","label":"Get Started","href":"https://dash.bunny.net/auth/register"}},"footer":{"socials":{"discord":"https://discord.gg/bunnynet","github":"https://github.com/BunnyWay","x":"https://x.com/BunnyCDN","bluesky":"https://bsky.app/profile/bunny.net","linkedin":"https://www.linkedin.com/company/bunnynet","facebook":"https://www.facebook.com/bunnycdn"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","claude","chatgpt","cursor","view","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bunnynet-cb9733c2","hasAudioNarration":false,"actualSubdomain":"bunnynet-cb9733c2","customDomains":["bunny.net"],"gitSource":{"type":"github","owner":"bunnyway","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35","collectionId":"5e262b87-ade9-45d8-9b63-06888c8d59a3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"edits":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae534f2b9a26f131eb41834","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Documentation","count":752},{"language":"default","tag":"API Reference","count":318},{"language":"default","tag":"Core Platform API","count":109},{"language":"default","tag":"CDN","count":82},{"language":"default","tag":"Shield API","count":66},{"language":"default","tag":"Stream","count":66},{"language":"default","tag":"Magic Containers API","count":56},{"language":"default","tag":"Storage","count":54},{"language":"default","tag":"Guides","count":54},{"language":"default","tag":"Reference","count":52}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"type":"link","email":"support@bunny.net","url":"https://bunny.net/contact","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dark img[src*=\"/logo/frameworks/angular.svg\"],.dark img[src*=\"/logo/frameworks/eleventy.svg\"],.dark img[src*=\"/logo/frameworks/express.svg\"],.dark img[src*=\"/logo/frameworks/mariadb.svg\"],.dark img[src*=\"/logo/frameworks/nextjs.svg\"],.dark img[src*=\"/logo/frameworks/sphinx.svg\"]{filter:invert(1)}html:not(.dark) img[src*=\"/logo/frameworks/zola.svg\"]{filter:invert(1)}"}],"page":{"pagePath":"shield/bot-detection","slug":"/shield/bot-detection","pageMetadata":{"title":"Bot Detection","description":"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.","href":"/shield/bot-detection"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Bunny Shield identifies automated traffic using behavioral fingerprinting, header anomalies, and IP reputation. Detection rules and sensitivity profiles propagate across the edge within seconds, so policy changes take effect in near real time.`}),`\n`,_jsx(Heading,{level:`2`,id:`key-features`,children:`Key Features`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Behavioral Fingerprinting`}),`: Distinguish real users from automated traffic using fingerprinting, header anomaly detection, and request behavior modeling.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Real-Time Response`}),`: Detection logic and mitigation rules propagate across the edge within seconds, so policy changes take effect almost immediately.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customizable Rules`}),`: Set detection conditions based on HTTP headers, IP reputation, user-agent anomalies, cookie presence, request frequency, and other signals.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`False Positive Resistant`}),`: Allow-listing, ASN validation, and crawl integrity filters keep legitimate crawlers and automation from being blocked.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`multi-layer-request-analysis`,children:`Multi-layer request analysis`}),`\n`,_jsx(_components.p,{children:`Every request that reaches Bunny Shield is evaluated through multiple layers of analysis, each targeting a different way automation tries to hide:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request integrity checks`}),` analyzes headers, query structures, and protocol patterns to detect spoofed or malformed requests.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request body inspection`}),` for applicable methods, which will inspect payload structure and behavior to spot signs of scripted abuse.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`External intelligence`}),` uses IP and ASN reputation, rate patterns, and global behavior history to flag known abuse sources.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`sensitivity-profiles`,children:`Sensitivity profiles`}),`\n`,_jsx(_components.p,{children:`You can choose from predefined detection profiles, each tuned to different use cases:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Low`}),` (`,_jsx(_components.em,{children:`default`}),`) catches basic bots with minimal overhead using lightweight IP and header analysis.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Medium`}),` applies balanced checks across IPs, headers, and fingerprint signals to detect common automation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`High`}),` enables strict fingerprint validation, request integrity analysis, and IP behavior scoring to stop advanced or evasive bots.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom`}),` lets you configure individual detection components for total control.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=372b33768aa3709625c32ed98e307b1b`,alt:``,\"data-og-width\":`1240`,width:`1240`,\"data-og-height\":`492`,height:`492`,\"data-path\":`images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=c9087eb1188123b7476f5b5d57ed4964 280w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=687e3fc53a14482da44b3e8764eb016f 560w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=50c97dc7d7bcb0cde1eb54c0783e34ea 840w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=efcb26dcfda8fafaf40feca15e054f18 1100w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=7f049464cdf059f95d3da86153a24cb9 1650w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/8e473394675b0cd12cd9e8b427c3f6efe55cdcda921ea57d4245c7c7065abc58-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=6a2a93701c32c129811bb4bb336fab95 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`granular-detection-toggles`,children:`Granular detection toggles`}),`\n`,_jsx(_components.p,{children:`With Custom mode enabled, you can adjust:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request integrity`}),` looks for anomalies in headers, protocol usage, and request structure.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`IP address`}),` scores requests based on IP reputation, behavior, and known rate patterns.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fingerprint sensitivity`}),` determines how assertively Bunny Shield should treat unusual browser fingerprints as bots.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Complex fingerprinting`}),` (`,_jsx(_components.em,{children:`Business or above`}),`) combines advanced entropy analysis and cross-session consistency.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=928e88744d0a7ea9145ac65b7a00977c`,alt:``,\"data-og-width\":`1219`,width:`1219`,\"data-og-height\":`464`,height:`464`,\"data-path\":`images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=dadee9b87dc707cbbbadccf72b0986e8 280w, https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=2ee285f702b14f2e29bae6f40d5c90b5 560w, https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=cfd4860d173d6ae73d1b4cb9e3af988d 840w, https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=4be177d6ec2aaa2e4c0b9c6350958bd0 1100w, https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=e4824e39e06c9c82876add65d1d7d669 1650w, https://mintcdn.com/bunnynet-cb9733c2/GYo51EPI6zuebYhU/images/docs/1e86729bb9352d34a81922ae5317d1a9e4fd01c901b6845470b06f8a40beb01c-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=GYo51EPI6zuebYhU\u0026q=85\u0026s=b375de4d0936a2caa7ee89a0cec53373 2500w`}),`\n`,_jsx(_components.p,{children:`These options let you tailor detection to match your traffic profile and risk tolerance. And with Edge Rules, you can disable bot detection dynamically based on headers, cookies, IP addresses, or specific endpoints, giving you full control over when and where protection applies.`}),`\n`,_jsx(Heading,{level:`2`,id:`logging-\u0026-observability`,children:`Logging \u0026 Observability`}),`\n`,_jsx(_components.p,{children:`Bot detection isn’t a black box. Bunny Shield shows you exactly what it’s seeing and doing, in real time:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Logged requests`}),`: Number of requests identified as bots but not challenged.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Challenged requests`}),`: Number of requests that triggered browser validation. We give you the full picture, with clear metrics and event logs that show what’s being flagged and how it’s being handled. No guesswork required.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=3c74ee46001cd143f14a400cc1f78265`,alt:``,\"data-og-width\":`1238`,width:`1238`,\"data-og-height\":`347`,height:`347`,\"data-path\":`images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=09aa0614a037bfc026528ce93fb9cba1 280w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=b923dd0cb4d91b3f5d01faf352b98bae 560w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=a2230f4aa1ddf173dd2da9e885a0d24d 840w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=1ccc17186b9bc5c9df1bc66dc32b8036 1100w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=74d0914e058ed3cb334973437ccefb0e 1650w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/95b722d902c90359a27782b336dbc9d05d189ece6bc37a268f17d849a9092e25-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=01471d0aaae98c0cb62460c02f0b73ed 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`configuring-via-api`,children:`Configuring via API`}),`\n`,_jsx(_components.p,{children:`You can utilize the Bunny Shield API to automate Bot detection configurations or integrate them into your continuous integration and continuous deployment (CI/CD) pipelines. This capability allows you to manage your security settings efficiently and consistently across different environments.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Bot Detection","description":"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.","href":"/shield/bot-detection"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Key Features","slug":"key-features","depth":2,"children":[]},{"title":"Multi-layer request analysis","slug":"multi-layer-request-analysis","depth":2,"children":[]},{"title":"Sensitivity profiles","slug":"sensitivity-profiles","depth":2,"children":[]},{"title":"Granular detection toggles","slug":"granular-detection-toggles","depth":2,"children":[]},{"title":"Logging \u0026 Observability","slug":"logging-\u0026-observability","depth":2,"children":[]},{"title":"Configuring via API","slug":"configuring-via-api","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"bunnynet-cb9733c2","siteName":"bunny.net Documentation","title":"Bot Detection - bunny.net Documentation","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-30T15:28:19.098Z","gitLastModified":"2026-06-15T12:13:25.000Z","originalFileLocation":"shield/bot-detection.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\">\u003cmeta data-mint-head name=\"application-name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bot Detection - bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://bunny.net/docs/shield/bot-detection\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=Protection+Features\u0026amp;title=Bot+Detection\u0026amp;description=Identify+and+block+malicious+bots%2C+including+headless+browsers%2C+impersonators%2C+and+scrapers%2C+without+affecting+legitimate+automation+or+user+experience.\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=4bfe48131ea7c570f6b6a3f2a5ef88d83e594084a5005c366fa571c46c882ef7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Bot Detection - bunny.net Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=Protection+Features\u0026amp;title=Bot+Detection\u0026amp;description=Identify+and+block+malicious+bots%2C+including+headless+browsers%2C+impersonators%2C+and+scrapers%2C+without+affecting+legitimate+automation+or+user+experience.\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=4bfe48131ea7c570f6b6a3f2a5ef88d83e594084a5005c366fa571c46c882ef7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EF6126\">\u003clink data-mint-head rel=\"canonical\" href=\"https://bunny.net/docs/shield/bot-detection\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/shield/bot-detection.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://bunny.net/#organization\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37\"}},{\"@type\":\"WebSite\",\"@id\":\"https://bunny.net/docs#website\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net/docs\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://bunny.net/docs/shield/bot-detection#webpage\",\"url\":\"https://bunny.net/docs/shield/bot-detection\",\"name\":\"Bot Detection\",\"description\":\"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\",\"dateModified\":\"2026-06-15T12:13:25.000Z\",\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"},\"breadcrumb\":{\"@id\":\"https://bunny.net/docs/shield/bot-detection#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://bunny.net/docs/shield/bot-detection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Protection Features\",\"item\":\"https://bunny.net/docs/shield/waf\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bot Detection\",\"item\":\"https://bunny.net/docs/shield/bot-detection\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://bunny.net/docs/shield/bot-detection#article\",\"headline\":\"Bot Detection\",\"name\":\"Bot Detection\",\"description\":\"Identify and block malicious bots, including headless browsers, impersonators, and scrapers, without affecting legitimate automation or user experience.\",\"url\":\"https://bunny.net/docs/shield/bot-detection\",\"mainEntityOfPage\":{\"@id\":\"https://bunny.net/docs/shield/bot-detection#webpage\"},\"dateModified\":\"2026-06-15T12:13:25.000Z\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"},\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"bunny.net Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"bunny.net Documentation","nav":{"global":null,"products":[{"product":"Home","icon":"book-open","pages":[{"title":"Home","href":""}]},{"product":"CDN","icon":"zap","description":"Accelerate and protect your content globally","pages":[{"title":"CDN","href":"/cdn"}]},{"product":"Magic Containers","icon":"box","description":"Deploy any app anywhere with Docker","pages":[{"title":"Magic Containers","href":"/magic-containers"}]},{"product":"Edge Scripting","icon":"code","description":"Deploy serverless code at the edge","pages":[{"title":"Edge Scripting","href":"/scripting"}]},{"product":"Stream","icon":"video","description":"Video streaming and delivery platform","pages":[{"title":"Stream","href":"/stream"}]},{"product":"Storage","icon":"hard-drive","description":"Global object storage","pages":[{"title":"Storage","href":"/storage"}]},{"product":"Shield","icon":"shield","description":"Stay protected and online no matter what","tabs":[{"tab":"Documentation","groups":[{"group":"Documentation","pages":[{"title":"Bunny Shield","sidebarTitle":"Introduction","mode":"wide","href":"/shield"},{"title":"Quickstart","href":"/shield/quickstart"},{"title":"Pricing","href":"/shield/pricing"},{"title":"Bunny Shield Changelog","sidebarTitle":"Changelog","url":"/changelog?tags=Shield","href":"/shield/changelog"}]},{"group":"Protection Features","pages":[{"group":"WAF","pages":[{"title":"WAF","sidebarTitle":"Overview","href":"/shield/waf"},{"title":"Understanding Rule Engine","href":"/shield/rule-engine"},{"title":"Creating a custom WAF rule","href":"/shield/custom-waf-rule"}]},{"group":"Rate Limiting","pages":[{"title":"Rate Limiting","sidebarTitle":"Overview","href":"/shield/rate-limiting"},{"title":"Creating a rate limit rule","href":"/shield/custom-rate-limit-rule"}]},{"title":"DDoS Mitigation","description":"Protect your web applications against DDoS attacks and understand mitigation metrics and sensitivity settings.","href":"/shield/ddos"},{"title":"Bot Detection","href":"/shield/bot-detection"},{"title":"Access Lists","description":"Access Lists give you precise control over who can and cannot reach your applications. From blocking malicious proxies and anonymized botnets to allowing trusted infrastructure or internal tools, Access Lists provide real-time traffic filtering that is enforced instantly across our global edge.","href":"/shield/access-lists"},{"title":"Upload Scanning","href":"/shield/upload-scanning"},{"title":"API Guardian","href":"/shield/api-guardian"}]},{"group":"Reference","pages":[{"title":"Custom Response Pages","href":"/shield/custom-response-pages"},{"title":"Verified Bots","href":"/shield/verified-bots"},{"title":"Metrics \u0026 Logging","href":"/shield/metrics"},{"title":"Cookies","href":"/shield/cookies"},{"title":"Troubleshooting","href":"/shield/troubleshooting"},{"title":"API Reference","url":"/api-reference/shield","href":"/shield/api-reference"}]}]}]},{"product":"Optimizer","icon":"sparkles","description":"Automatic image and web optimization.","pages":[{"title":"Optimizer","href":"/optimizer"}]},{"product":"DNS","icon":"globe","description":"Unlock the true power of DNS with an ultra-fast scriptable platform","pages":[{"title":"DNS","href":"/dns"}]},{"product":"Database","icon":"database","description":"Serverless SQLite over HTTP","pages":[{"title":"Database","href":"/database"}]},{"product":"Integrations","icon":"puzzle","description":"Official and third-party plugins and integrations","pages":[{"title":"Integrations","href":"/integrations/wordpress"}]},{"product":"CLI","icon":"terminal","description":"Manage bunny.net from your terminal","pages":[{"title":"CLI","href":"/cli"}]},{"product":"API Reference","icon":"square-terminal","description":"Build \u0026 Integrate with the Platform API","pages":[{"title":"API Reference","href":"/api-reference"}]},{"product":"Partners","icon":"handshake","description":"Manage customers, pricing, and billing as a bunny.net partner","pages":[{"title":"Partners","href":"/partners"}]}]},"basePath":"","title":"Bot Detection - bunny.net Documentation","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CZTaVDTN.js","lightbox-handle-r17bVUz3.js"]}