Skip to main content
POST
/
pullzone
Add Pull Zone
curl --request POST \
  --url https://api.bunny.net/pullzone \
  --header 'AccessKey: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "PreloadingScreenShowOnFirstVisit": true,
  "Name": "<string>",
  "OriginUrl": "<string>",
  "AllowedReferrers": [
    "<string>"
  ],
  "BlockedReferrers": [
    "<string>"
  ],
  "BlockNoneReferrer": true,
  "BlockedIps": [
    "<string>"
  ],
  "EnableGeoZoneUS": true,
  "EnableGeoZoneEU": true,
  "EnableGeoZoneASIA": true,
  "EnableGeoZoneSA": true,
  "EnableGeoZoneAF": true,
  "BlockRootPathAccess": true,
  "BlockPostRequests": true,
  "EnableQueryStringOrdering": true,
  "EnableWebpVary": true,
  "EnableAvifVary": true,
  "EnableMobileVary": true,
  "EnableCountryCodeVary": true,
  "EnableCountryStateCodeVary": true,
  "EnableHostnameVary": true,
  "EnableCacheSlice": true,
  "ZoneSecurityEnabled": true,
  "ZoneSecurityIncludeHashRemoteIP": true,
  "IgnoreQueryStrings": true,
  "MonthlyBandwidthLimit": 123,
  "AccessControlOriginHeaderExtensions": [
    "<string>"
  ],
  "EnableAccessControlOriginHeader": true,
  "DisableCookies": true,
  "BudgetRedirectedCountries": [
    "<string>"
  ],
  "BlockedCountries": [
    "<string>"
  ],
  "CacheControlMaxAgeOverride": 123,
  "CacheControlPublicMaxAgeOverride": 123,
  "CacheControlBrowserMaxAgeOverride": 123,
  "AddHostHeader": true,
  "AddCanonicalHeader": true,
  "EnableLogging": true,
  "LoggingIPAnonymizationEnabled": true,
  "PermaCacheStorageZoneId": 123,
  "PermaCacheType": "Automatic",
  "AWSSigningEnabled": true,
  "AWSSigningKey": "<string>",
  "AWSSigningRegionName": "<string>",
  "AWSSigningSecret": "<string>",
  "EnableOriginShield": true,
  "OriginShieldZoneCode": "<string>",
  "EnableTLS1": true,
  "EnableTLS1_1": true,
  "CacheErrorResponses": true,
  "VerifyOriginSSL": true,
  "LogForwardingEnabled": true,
  "LogForwardingHostname": "<string>",
  "LogForwardingPort": 123,
  "LogForwardingToken": "<string>",
  "LogForwardingProtocol": "UDP",
  "LoggingSaveToStorage": true,
  "LoggingStorageZoneId": 123,
  "FollowRedirects": true,
  "ConnectionLimitPerIPCount": 123,
  "RequestLimit": 123,
  "LimitRateAfter": 123,
  "LimitRatePerSecond": 123,
  "BurstSize": 123,
  "ErrorPageEnableCustomCode": true,
  "ErrorPageCustomCode": "<string>",
  "ErrorPageEnableStatuspageWidget": true,
  "ErrorPageStatuspageCode": "<string>",
  "ErrorPageWhitelabel": true,
  "OptimizerEnabled": true,
  "OptimizerTunnelEnabled": true,
  "OptimizerDesktopMaxWidth": 2500,
  "OptimizerMobileMaxWidth": 2500,
  "OptimizerImageQuality": 50,
  "OptimizerMobileImageQuality": 50,
  "OptimizerEnableWebP": true,
  "OptimizerPrerenderHtml": true,
  "OptimizerEnableManipulationEngine": true,
  "OptimizerMinifyCSS": true,
  "OptimizerMinifyJavaScript": true,
  "OptimizerWatermarkEnabled": true,
  "OptimizerWatermarkUrl": "<string>",
  "OptimizerWatermarkPosition": 0,
  "OptimizerWatermarkOffset": 123,
  "OptimizerWatermarkMinImageSize": 123,
  "OptimizerAutomaticOptimizationEnabled": true,
  "OptimizerClasses": [
    {
      "Name": "<string>",
      "Properties": {}
    }
  ],
  "OptimizerForceClasses": true,
  "OptimizerStaticHtmlWordPressPath": "<string>",
  "OptimizerStaticHtmlWordPressBypassCookie": "<string>",
  "Type": "Premium",
  "OriginRetries": 123,
  "OriginConnectTimeout": 123,
  "OriginResponseTimeout": 123,
  "UseStaleWhileUpdating": true,
  "UseStaleWhileOffline": true,
  "OriginRetry5XXResponses": true,
  "OriginRetryConnectionTimeout": true,
  "OriginRetryResponseTimeout": true,
  "OriginRetryDelay": 123,
  "DnsOriginPort": 123,
  "DnsOriginScheme": "<string>",
  "QueryStringVaryParameters": [
    "<string>"
  ],
  "OriginShieldEnableConcurrencyLimit": true,
  "OriginShieldMaxConcurrentRequests": 5000,
  "EnableCookieVary": true,
  "CookieVaryParameters": [
    "<string>"
  ],
  "EnableSafeHop": true,
  "OriginShieldQueueMaxWaitTime": 123,
  "OriginShieldMaxQueuedRequests": 15000,
  "UseBackgroundUpdate": true,
  "EnableAutoSSL": true,
  "LogAnonymizationType": "OneDigit",
  "StorageZoneId": 123,
  "EdgeScriptId": 123,
  "MiddlewareScriptId": 123,
  "EdgeScriptExecutionPhase": "Cache",
  "OriginType": "OriginUrl",
  "MagicContainersAppId": "<string>",
  "MagicContainersEndpointId": "<string>",
  "LogFormat": "Plain",
  "LogForwardingFormat": "Plain",
  "ShieldDDosProtectionType": "DetectOnly",
  "ShieldDDosProtectionEnabled": true,
  "OriginHostHeader": "<string>",
  "EnableSmartCache": true,
  "EnableRequestCoalescing": true,
  "RequestCoalescingTimeout": 123,
  "DisableLetsEncrypt": true,
  "EnableBunnyImageAi": true,
  "BunnyAiImageBlueprints": [
    {
      "Name": "<string>",
      "Properties": {}
    }
  ],
  "PreloadingScreenEnabled": true,
  "PreloadingScreenCode": "<string>",
  "PreloadingScreenLogoUrl": "<string>",
  "PreloadingScreenTheme": "Light",
  "PreloadingScreenCodeEnabled": true,
  "PreloadingScreenDelay": 5000,
  "RoutingFilters": [
    "<string>"
  ],
  "StickySessionType": "Off",
  "StickySessionCookieName": "<string>",
  "StickySessionClientHeaders": "<string>",
  "OptimizerEnableUpscaling": true,
  "EnableWebSockets": true,
  "MaxWebSocketConnections": 123
}
'

Authorizations

AccessKey
string
header
required

API Access Key authorization header

Body

PreloadingScreenShowOnFirstVisit
boolean
required

Determines if the preloading screen is shown on the first load from a user.

Name
string | null
required

The name of the pull zone.

OriginUrl
string

Sets the origin URL of the Pull Zone

AllowedReferrers
string[]

Sets the list of referrer hostnames that are allowed to access the pull zone. Requests containing the header Referer: hostname that is not on the list will be rejected. If empty, all the referrers are allowed

BlockedReferrers
string[]

Sets the list of referrer hostnames that are blocked from accessing the pull zone.

BlockNoneReferrer
boolean | null
BlockedIps
string[]

Sets the list of IPs that are blocked from accessing the pull zone. Requests coming from the following IPs will be rejected. If empty, all the IPs will be allowed

EnableGeoZoneUS
boolean | null

Determines if the delivery from the North America region should be enabled for this pull zone

EnableGeoZoneEU
boolean | null

Determines if the delivery from the Europe region should be enabled for this pull zone

EnableGeoZoneASIA
boolean | null

Determines if the delivery from the Asia / Oceania regions should be enabled for this pull zone

EnableGeoZoneSA
boolean | null

Determines if the delivery from the South America region should be enabled for this pull zone

EnableGeoZoneAF
boolean | null

Determines if the delivery from the Africa region should be enabled for this pull zone

BlockRootPathAccess
boolean | null

Determines if the zone should block requests to the root of the zone.

BlockPostRequests
boolean | null

Determines if the POST requests to this zone should be rejected.

EnableQueryStringOrdering
boolean | null

Determines if the query string ordering should be enabled.

EnableWebpVary
boolean | null

Determines if the WebP Vary feature should be enabled.

EnableAvifVary
boolean | null

Determines if the AVIF Vary feature should be enabled.

EnableMobileVary
boolean | null

Determines if the Mobile Vary feature is enabled.

EnableCountryCodeVary
boolean | null

Determines if the Country Code Vary feature should be enabled.

EnableCountryStateCodeVary
boolean | null

Determines if the Country State Code Vary feature should be enabled.

EnableHostnameVary
boolean | null

Determines if the Hostname Vary feature should be enabled.

EnableCacheSlice
boolean | null

Determines if cache slicing (Optimize for video) should be enabled for this zone

ZoneSecurityEnabled
boolean | null

Determines if the zone token authentication security should be enabled

ZoneSecurityIncludeHashRemoteIP
boolean | null

Determines if the token authentication IP validation should be enabled

IgnoreQueryStrings
boolean | null

Determines if the Pull Zone should ignore query strings when serving cached objects (Vary by Query String)

MonthlyBandwidthLimit
integer<int64> | null

Sets the monthly limit of bandwidth in bytes that the pullzone is allowed to use

AccessControlOriginHeaderExtensions
string[]

Sets the list of extensions that will return the CORS headers

EnableAccessControlOriginHeader
boolean | null

Determines if CORS headers should be enabled

DisableCookies
boolean | null

Determines if the Pull Zone should automatically remove cookies from the responses

BudgetRedirectedCountries
string[]

Sets the list of two letter Alpha2 country codes that will be redirected to the cheapest possible region

BlockedCountries
string[]

Sets the list of two letter Alpha2 country codes that will be blocked from accessing the zone

CacheControlMaxAgeOverride
integer<int64> | null

Sets the cache control override setting for this zone

CacheControlPublicMaxAgeOverride
integer<int64> | null

Sets the browser cache control override setting for this zone

CacheControlBrowserMaxAgeOverride
integer<int64> | null

(Deprecated) Sets the browser cache control override setting for this zone

AddHostHeader
boolean | null

Determines if the zone should forward the requested host header to the origin

AddCanonicalHeader
boolean | null

Determines if the canonical header should be added by this zone

EnableLogging
boolean | null

Determines if the logging should be enabled for this zone

LoggingIPAnonymizationEnabled
boolean | null

Determines if the log anonoymization should be enabled

PermaCacheStorageZoneId
integer<int64> | null

The ID of the storage zone that should be used as the Perma-Cache

PermaCacheType
enum<string>

Determines Perma-Cache behavior

Available options:
Automatic,
Manual
Example:

"Automatic"

AWSSigningEnabled
boolean | null

Determines if the AWS signing should be enabled or not

AWSSigningKey
string

Sets the AWS signing key

AWSSigningRegionName
string

Sets the AWS signing region name

AWSSigningSecret
string

Sets the AWS signing secret key

EnableOriginShield
boolean | null

Determines if the origin shield should be enabled

OriginShieldZoneCode
string

Determines the zone code where the origin shield should be set up

EnableTLS1
boolean | null

Determines if the TLS 1 should be enabled on this zone

EnableTLS1_1
boolean | null

Determines if the TLS 1.1 should be enabled on this zone

CacheErrorResponses
boolean | null

Determines if the cache error responses should be enabled on the zone

VerifyOriginSSL
boolean | null

Determines if the SSL certificate should be verified when connecting to the origin

LogForwardingEnabled
boolean | null

Sets the log forwarding token for the zone

LogForwardingHostname
string

Sets the log forwarding destination hostname for the zone

LogForwardingPort
integer<int32> | null

Sets the log forwarding port for the zone

LogForwardingToken
string

Sets the log forwarding token for the zone

LogForwardingProtocol
enum<string>

Sets the log forwarding protocol type

Available options:
UDP,
TCP,
TCPEncrypted,
DataDog
Example:

"UDP"

LoggingSaveToStorage
boolean | null

Determines if the logging permanent storage should be enabled

LoggingStorageZoneId
integer<int64> | null

Sets the Storage Zone id that should contain the logs from this Pull Zone

FollowRedirects
boolean | null

Determines if the zone should follow redirects return by the oprigin and cache the response

ConnectionLimitPerIPCount
integer<int32> | null

Determines the maximum number of connections per IP that will be allowed to connect to this Pull Zone

RequestLimit
integer<int32> | null

Determines the maximum number of requests per second that will be allowed to connect to this Pull Zone

LimitRateAfter
number<double> | null

Determines the amount of traffic transferred before the client is limited

LimitRatePerSecond
integer<int32> | null

Determines the maximum number of requests per second coming from a single IP before it is blocked.

BurstSize
integer<int32> | null

Determines the maximum burst requests before an IP is blocked

ErrorPageEnableCustomCode
boolean | null

Determines if custom error page code should be enabled.

ErrorPageCustomCode
string

Contains the custom error page code that will be returned

ErrorPageEnableStatuspageWidget
boolean | null

Determines if the statuspage widget should be displayed on the error pages

ErrorPageStatuspageCode
string

The statuspage code that will be used to build the status widget

ErrorPageWhitelabel
boolean | null

Determines if the error pages should be whitelabel or not

OptimizerEnabled
boolean | null

Determines if the optimizer should be enabled for this zone

OptimizerTunnelEnabled
boolean | null

Determines if the optimizer origin tunnel system should be enabled for this zone

OptimizerDesktopMaxWidth
integer<int32> | null

Determines the maximum automatic image size for desktop clients

Required range: 0 <= x <= 5000
OptimizerMobileMaxWidth
integer<int32> | null

Determines the maximum automatic image size for mobile clients

Required range: 0 <= x <= 5000
OptimizerImageQuality
integer<int32> | null

Determines the image quality for desktop clients

Required range: 1 <= x <= 100
OptimizerMobileImageQuality
integer<int32> | null

Determines the image quality for mobile clients

Required range: 1 <= x <= 100
OptimizerEnableWebP
boolean | null

Determines if the WebP optimization should be enabled

OptimizerPrerenderHtml
boolean | null

Determines if the SEO HTML prerender should be enabled

OptimizerEnableManipulationEngine
boolean | null

Determines the image manipulation should be enabled

OptimizerMinifyCSS
boolean | null

Determines if the CSS minifcation should be enabled

OptimizerMinifyJavaScript
boolean | null

Determines if the JavaScript minifcation should be enabled

OptimizerWatermarkEnabled
boolean | null

Determines if image watermarking should be enabled

OptimizerWatermarkUrl
string

Sets the URL of the watermark image

OptimizerWatermarkPosition
enum<integer>

Sets the position of the watermark image

Available options:
0,
1,
2,
3,
4,
5
OptimizerWatermarkOffset
number<double> | null

Sets the offset of the watermark image

OptimizerWatermarkMinImageSize
integer<int32> | null

Sets the minimum image size to which the watermark will be added

OptimizerAutomaticOptimizationEnabled
boolean | null

Determines if the automatic image optimization should be enabled

OptimizerClasses
object[]

Determines the list of optimizer classes

OptimizerForceClasses
boolean | null

Determines if the optimizer classes should be forced

OptimizerStaticHtmlWordPressPath
string

Wordpress html path which should be bypassed by permacache in edge rule

Wordpress cookie which should be bypassed by permacache in edge rule

Type
enum<string>

The type of the pull zone. Premium = 0, Volume = 1

Available options:
Premium,
Volume
Example:

"Premium"

OriginRetries
integer<int32> | null

The number of retries to the origin server

OriginConnectTimeout
integer<int32> | null

The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.

OriginResponseTimeout
integer<int32> | null

The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.

UseStaleWhileUpdating
boolean | null

Determines if we should use stale cache while cache is updating

UseStaleWhileOffline
boolean | null

Determines if we should use stale cache while the origin is offline

OriginRetry5XXResponses
boolean | null

Determines if we should retry the request in case of a 5XX response.

OriginRetryConnectionTimeout
boolean | null

Determines if we should retry the request in case of a connection timeout.

OriginRetryResponseTimeout
boolean | null

Determines if we should retry the request in case of a response timeout.

OriginRetryDelay
integer<int32> | null

Determines the amount of time that the CDN should wait before retrying an origin request.

DnsOriginPort
integer<int32> | null

Determines the origin port of the pull zone.

DnsOriginScheme
string

Determines the origin scheme of the pull zone.

QueryStringVaryParameters
string[]
OriginShieldEnableConcurrencyLimit
boolean | null

Determines if the origin shield concurrency limit is enabled.

OriginShieldMaxConcurrentRequests
integer<int32> | null

Determines the number of maximum concurrent requests allowed to the origin.

Required range: 1 <= x <= 10000

Determines if the Cookie Vary feature is enabled.

EnableSafeHop
boolean | null
OriginShieldQueueMaxWaitTime
integer<int32> | null

Determines the max queue wait time

OriginShieldMaxQueuedRequests
integer<int32> | null

Determines the max number of origin requests that will remain in the queue

Required range: 0 <= x <= 30000
UseBackgroundUpdate
boolean | null

Determines if cache update is performed in the background.

EnableAutoSSL
boolean | null

If set to true, any hostnames added to this Pull Zone will automatically enable SSL.

LogAnonymizationType
enum<string>

Sets the log anonymization type for this pull zone

Available options:
OneDigit,
Drop
Example:

"OneDigit"

StorageZoneId
integer<int64> | null

The ID of the storage zone that will be used as the origin

EdgeScriptId
integer<int64> | null

The ID of the edge script that will be used as the origin

MiddlewareScriptId
integer<int64> | null

The ID of the middleware script

EdgeScriptExecutionPhase
enum<string>

The execution phase of the edge script

Available options:
Cache,
LoadBalancer
Example:

"Cache"

OriginType
enum<string>

Determine the type of the origin for this Pull Zone

Available options:
OriginUrl,
DnsAccelerate,
StorageZone,
LoadBalancer,
EdgeScript,
MagicContainers,
PushZone
Example:

"OriginUrl"

MagicContainersAppId
string
MagicContainersEndpointId
string
LogFormat
enum<string>

0 = Plain
1 = JSON

Available options:
Plain,
JSON
Example:

"Plain"

LogForwardingFormat
enum<string>

0 = Plain
1 = JSON

Available options:
Plain,
JSON
Example:

"Plain"

ShieldDDosProtectionType
enum<string>

0 = DetectOnly
1 = ActiveStandard
2 = ActiveAggressive

Available options:
DetectOnly,
ActiveStandard,
ActiveAggressive
Example:

"DetectOnly"

ShieldDDosProtectionEnabled
boolean | null
OriginHostHeader
string

Sets the host header that will be sent to the origin

EnableSmartCache
boolean | null
EnableRequestCoalescing
boolean | null

Determines if request coalescing is currently enabled.

RequestCoalescingTimeout
integer<int32> | null

Determines the lock time for coalesced requests.

DisableLetsEncrypt
boolean | null

If set to true, the built-in let's encrypt will be disabled and requests are passed to the origin.

EnableBunnyImageAi
boolean | null
BunnyAiImageBlueprints
object[]
PreloadingScreenEnabled
boolean | null

Determines if the preloading screen is currently enabled

PreloadingScreenCode
string

The custom preloading screen coed

PreloadingScreenLogoUrl
string

The preloading screen logo URL

PreloadingScreenTheme
enum<string>

The currently configured preloading screem theme. (0 - Light, 1 - Dark)

Available options:
Light,
Dark
Example:

"Light"

PreloadingScreenCodeEnabled
boolean | null

Determines if the custom preloader screen should be enabled

PreloadingScreenDelay
integer<int32> | null

The delay in miliseconds after which the preloading screen will be displayed (0 - 10000ms)

Required range: 0 <= x <= 10000
RoutingFilters
string[]

The list of routing filters enabled for this zone

StickySessionType
enum<string>

Whether to use a Sticky Session mechanism for this pull zone

Available options:
Off,
On
Example:

"Off"

Sticky Session Cookie Name

StickySessionClientHeaders
string

A set of comma-separated header names used to identify clients

OptimizerEnableUpscaling
boolean | null

Determines if Optimizer should automatically upscale images

EnableWebSockets
boolean | null

Determines if WebSocket connections are allowed for this Pull Zone.

MaxWebSocketConnections
integer<int32> | null

Response

The Pull Zone was successfuly added