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.
Access Lists decide which clients can reach your origin based on identifiers like IP, CIDR range, ASN, or country. Curated threat feeds and your own custom rules run together at the edge, so policy changes apply globally without touching your backend.
Bunny Shield maintains a library of continuously updated reputation feeds that are deployed instantly across the edge. These feeds protect against evolving threats without manual upkeep:
Advanced: VPNs, common datacenters, Tor exit nodes, FireHOL Level 1, AbuseIPDB, NetMountains
Business: Includes all Advanced feeds plus Blocklist DE, ThreatFox, StopForumSpam, SpamHaus DROP, and more
Enterprise: Includes all Advanced and Business feeds, plus support for custom feed integrations
Access Lists can be managed through the Bunny Shield API. This makes it simple to automate access policies, integrate with existing tools, or apply consistent controls across your infrastructure.
{"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/access-lists","slug":"/shield/access-lists","pageMetadata":{"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"},"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: \"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.\"\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={li:`li`,ol:`ol`,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:`Access Lists decide which clients can reach your origin based on identifiers like IP, CIDR range, ASN, or country. Curated threat feeds and your own custom rules run together at the edge, so policy changes apply globally without touching your backend.`}),`\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:`Flexible Controls`}),`: Allow, block, challenge, or log traffic based on IPs, CIDRs, ASNs, or entire countries.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Curated Threat Lists`}),`: Continuously updated feeds from leading reputation sources, available on Advanced, Business, and Enterprise plans.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom Lists`}),`: Build your own access policies, from trusted networks through to high-risk regions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instant Enforcement`}),`: Rules propagate globally within seconds and are applied directly at the edge without adding latency or backend complexity.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`multi-layer-access-control`,children:`Multi-layer Access Control`}),`\n`,_jsx(_components.p,{children:`Access Lists combine curated intelligence with your own rules:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Curated threat feeds`}),` cover VPNs, Tor nodes, abusive datacenters, and active attack sources.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom rules`}),` allow you to define access logic for IPs, CIDRs, ASNs, or countries.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ASN-based filtering`}),` gives you broad control over provider networks to stop botnets hiding behind hosting providers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Country-level rules`}),` make it easy to allow or block entire regions.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`access-list-modes`,children:`Access List Modes`}),`\n`,_jsx(_components.p,{children:`Each Access List rule gives you full control over how Bunny Shield should handle matched traffic:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Allow`}),`: Pass trusted traffic through without restriction.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Block`}),`: Drop malicious requests at the edge instantly.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Challenge`}),`: Trigger browser verification for suspicious traffic without blocking it outright.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Log`}),`: Record traffic patterns for analysis without applying enforcement.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`action-precedence`,children:`Action Precedence`}),`\n`,_jsx(_components.p,{children:`When multiple rules apply to the same request, Bunny Shield follows a defined order of precedence:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bypass`}),`: Always takes priority. Requests that match a Bypass skip further evaluation from Bunny Shield.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Allow`}),`: Trusted traffic is passed through without restriction.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Block`}),`: Requests are denied immediately if they match a block rule.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Challenge`}),`: Suspicious requests are challenged if no higher-priority action applies.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Log`}),`: If no other action matches, requests can be logged for monitoring and analysis.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This order keeps trusted traffic from being blocked and applies security actions consistently across your rules.`}),`\n`,_jsx(Heading,{level:`2`,id:`curated-threat-intelligence`,children:`Curated Threat Intelligence`}),`\n`,_jsx(_components.p,{children:`Bunny Shield maintains a library of continuously updated reputation feeds that are deployed instantly across the edge. These feeds protect against evolving threats without manual upkeep:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Advanced`}),`: VPNs, common datacenters, Tor exit nodes, FireHOL Level 1, AbuseIPDB, NetMountains`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Business`}),`: Includes all Advanced feeds plus Blocklist DE, ThreatFox, StopForumSpam, SpamHaus DROP, and more`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enterprise`}),`: Includes all Advanced and Business feeds, plus support for custom feed integrations`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=4a6e8015765588d968c93eef4af066d6`,alt:``,\"data-og-width\":`1145`,width:`1145`,\"data-og-height\":`1286`,height:`1286`,\"data-path\":`images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=73504a1f90e4ebb1c7dd01a25d497eff 280w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=7a311dca1a32db2d2f6f288a6176f045 560w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=4fe9a56c61bacf6ccf3d0db1e4d03809 840w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=97b6de486f38eaecf3209c4090cece65 1100w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=3d579565ed8e1012e03bd130e33902dc 1650w, https://mintcdn.com/bunnynet-cb9733c2/L57MhyfuZyBVCcmn/images/docs/78d3b9ba31a96c349979acef3aeedeea5dcafc51a6f188b263399a2433e4d116-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L57MhyfuZyBVCcmn\u0026q=85\u0026s=3845fe68a727732cad7ddc28b68475ce 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`custom-access-lists`,children:`Custom Access Lists`}),`\n`,_jsx(_components.p,{children:`Custom Access Lists give you complete control over your traffic:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Allow internal ASNs or office IP ranges`}),`\n`,_jsx(_components.li,{children:`Block abusive regions during sensitive launches`}),`\n`,_jsx(_components.li,{children:`Challenge suspicious networks while monitoring behavior`}),`\n`,_jsx(_components.li,{children:`Apply unique lists to different zones or endpoints`}),`\n`]}),`\n`,_jsx(_components.p,{children:`All custom rules update globally within seconds.`}),`\n`,_jsx(Heading,{level:`2`,id:`logging-and-observability`,children:`Logging and Observability`}),`\n`,_jsx(_components.p,{children:`Access Lists provide visibility into every decision, so you always know what is being allowed, blocked, or challenged:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Logged events`}),`: Requests matched by access rules without being blocked`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Actioned events`}),`: Requests that were blocked or challenged`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Curated feed hits`}),`: Requests flagged by built-in reputation lists`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=5d5f06ef4eae378f0049f42e46f3f2d1`,alt:``,\"data-og-width\":`1112`,width:`1112`,\"data-og-height\":`114`,height:`114`,\"data-path\":`images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=b3ca821c9569705b69857b46636d3f41 280w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=3d50ab42bb93001a169e70e0841da46e 560w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=e3cf9adf6ed64a4421349c2f4726c6f3 840w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=af5103b14db4aa9ac37ab93b5d6f1762 1100w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=79ef1114590d9151df6c1cb1f6c338ce 1650w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/d2ee99d63b88b84e7703df109b6d19ffb3bdeb88a99833fc03843c742c24b5dd-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=86894af4b8a8cb246a3a7fe8b969a0f8 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`configuring-via-api`,children:`Configuring via API`}),`\n`,_jsx(_components.p,{children:`Access Lists can be managed through the Bunny Shield API. This makes it simple to automate access policies, integrate with existing tools, or apply consistent controls across your infrastructure.`})]})}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":"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"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Key Features","slug":"key-features","depth":2,"children":[]},{"title":"Multi-layer Access Control","slug":"multi-layer-access-control","depth":2,"children":[]},{"title":"Access List Modes","slug":"access-list-modes","depth":2,"children":[]},{"title":"Action Precedence","slug":"action-precedence","depth":2,"children":[]},{"title":"Curated Threat Intelligence","slug":"curated-threat-intelligence","depth":2,"children":[]},{"title":"Custom Access Lists","slug":"custom-access-lists","depth":2,"children":[]},{"title":"Logging and Observability","slug":"logging-and-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":"Access Lists - bunny.net Documentation","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-30T15:28:19.099Z","gitLastModified":"2026-05-19T11:35:23.000Z","originalFileLocation":"shield/access-lists.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=\"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.\">\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=\"Access Lists - bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"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.\">\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/access-lists\">\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=Access+Lists\u0026amp;description=Access+Lists+give+you+precise+control+over+who+can+and+cannot+reach+your+applications.+From+blocking+malicious+proxies+and+anonymized+botnets+to+allowing+truste\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=f59961de37f7be54f1125b528c06ba3e4ffea953443afa8d8da010856a62099c\">\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=\"Access Lists - bunny.net Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"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.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=Protection+Features\u0026amp;title=Access+Lists\u0026amp;description=Access+Lists+give+you+precise+control+over+who+can+and+cannot+reach+your+applications.+From+blocking+malicious+proxies+and+anonymized+botnets+to+allowing+truste\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=f59961de37f7be54f1125b528c06ba3e4ffea953443afa8d8da010856a62099c\">\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/access-lists\">\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/access-lists.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/access-lists#webpage\",\"url\":\"https://bunny.net/docs/shield/access-lists\",\"name\":\"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.\",\"dateModified\":\"2026-05-19T11:35:23.000Z\",\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"},\"breadcrumb\":{\"@id\":\"https://bunny.net/docs/shield/access-lists#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://bunny.net/docs/shield/access-lists#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Protection Features\",\"item\":\"https://bunny.net/docs/shield/waf\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access Lists\",\"item\":\"https://bunny.net/docs/shield/access-lists\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://bunny.net/docs/shield/access-lists#article\",\"headline\":\"Access Lists\",\"name\":\"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.\",\"url\":\"https://bunny.net/docs/shield/access-lists\",\"mainEntityOfPage\":{\"@id\":\"https://bunny.net/docs/shield/access-lists#webpage\"},\"dateModified\":\"2026-05-19T11:35:23.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","href":"/shield/ddos"},{"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"},{"title":"Access Lists","href":"/shield/access-lists"},{"title":"Upload Scanning","description":"Keep your platform safe from harmful uploads. Automatically scan files for viruses, malware, and CSAM to stop threats before they spread.","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":"Access Lists - bunny.net Documentation","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CZTaVDTN.js","lightbox-handle-r17bVUz3.js"]}