---
title: "Add Pull Zone"
method: POST
path: "/pullzone"
tags: ["Pull Zone"]
---

# Add Pull Zone

`POST /pullzone`

## Request body

- PullZoneAddModel
  - `OriginUrl` string, nullable — Sets the origin URL of the Pull Zone
  - `AllowedReferrers` string[], nullable — 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[], nullable — Sets the list of referrer hostnames that are blocked from accessing the pull zone.
  - `BlockNoneReferrer` boolean, nullable
  - `BlockedIps` string[], nullable — 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, nullable — Determines if the delivery from the North America region should be enabled for this pull zone
  - `EnableGeoZoneEU` boolean, nullable — Determines if the delivery from the Europe region should be enabled for this pull zone
  - `EnableGeoZoneASIA` boolean, nullable — Determines if the delivery from the Asia / Oceania regions should be enabled for this pull zone
  - `EnableGeoZoneSA` boolean, nullable — Determines if the delivery from the South America region should be enabled for this pull zone
  - `EnableGeoZoneAF` boolean, nullable — Determines if the delivery from the Africa region should be enabled for this pull zone
  - `IpFamilyPolicy` 0 | 1 | 2 | 3 — 0 = IPv4Only 1 = DualStack 2 = DualStackPreferIPv6 3 = IPv6Only
  - `BlockRootPathAccess` boolean, nullable — Determines if the zone should block requests to the root of the zone.
  - `BlockPostRequests` boolean, nullable — Determines if the POST requests to this zone should be rejected.
  - `EnableQueryStringOrdering` boolean, nullable — Determines if the query string ordering should be enabled.
  - `EnableWebpVary` boolean, nullable — Determines if the WebP Vary feature should be enabled.
  - `EnableAvifVary` boolean, nullable — Determines if the AVIF Vary feature should be enabled.
  - `EnableMobileVary` boolean, nullable — Determines if the Mobile Vary feature is enabled.
  - `EnableCountryCodeVary` boolean, nullable — Determines if the Country Code Vary feature should be enabled.
  - `EnableCountryStateCodeVary` boolean, nullable — Determines if the Country State Code Vary feature should be enabled.
  - `EnableHostnameVary` boolean, nullable — Determines if the Hostname Vary feature should be enabled.
  - `EnableCacheSlice` boolean, nullable — Determines if cache slicing (Optimize for video) should be enabled for this zone
  - `ZoneSecurityEnabled` boolean, nullable — Determines if the zone token authentication security should be enabled
  - `ZoneSecurityIncludeHashRemoteIP` boolean, nullable — Determines if the token authentication IP validation should be enabled
  - `IgnoreQueryStrings` boolean, nullable — Determines if the Pull Zone should ignore query strings when serving cached objects (Vary by Query String)
  - `MonthlyBandwidthLimit` integer, nullable — Sets the monthly limit of bandwidth in bytes that the pullzone is allowed to use
  - `AccessControlOriginHeaderExtensions` string[], nullable — Sets the list of extensions that will return the CORS headers
  - `EnableAccessControlOriginHeader` boolean, nullable — Determines if CORS headers should be enabled
  - `DisableCookies` boolean, nullable — Determines if the Pull Zone should automatically remove cookies from the responses
  - `BudgetRedirectedCountries` string[], nullable — Sets the list of two letter Alpha2 country codes that will be redirected to the cheapest possible region
  - `BlockedCountries` string[], nullable — Sets the list of two letter Alpha2 country codes that will be blocked from accessing the zone
  - `CacheControlMaxAgeOverride` integer, nullable — Sets the cache control override setting for this zone
  - `CacheControlPublicMaxAgeOverride` integer, nullable — Sets the browser cache control override setting for this zone
  - `CacheControlBrowserMaxAgeOverride` integer, nullable — (Deprecated) Sets the browser cache control override setting for this zone
  - `AddHostHeader` boolean, nullable — Determines if the zone should forward the requested host header to the origin
  - `AddCanonicalHeader` boolean, nullable — Determines if the canonical header should be added by this zone
  - `EnableLogging` boolean, nullable — Determines if the logging should be enabled for this zone
  - `LoggingIPAnonymizationEnabled` boolean, nullable — Determines if the log anonoymization should be enabled
  - `PermaCacheStorageZoneId` integer, nullable — The ID of the storage zone that should be used as the Perma-Cache
  - `PermaCacheType` 0 | 1, nullable — 0 = Automatic 1 = Manual
  - `AWSSigningEnabled` boolean, nullable — Determines if the AWS signing should be enabled or not
  - `AWSSigningKey` string, nullable — Sets the AWS signing key
  - `AWSSigningRegionName` string, nullable — Sets the AWS signing region name
  - `AWSSigningSecret` string, nullable — Sets the AWS signing secret key
  - `EnableOriginShield` boolean, nullable — Determines if the origin shield should be enabled
  - `OriginShieldZoneCode` string, nullable — Determines the zone code where the origin shield should be set up
  - `EnableTLS1` boolean, nullable — Determines if the TLS 1 should be enabled on this zone
  - `EnableTLS1_1` boolean, nullable — Determines if the TLS 1.1 should be enabled on this zone
  - `CacheErrorResponses` boolean, nullable — Determines if the cache error responses should be enabled on the zone
  - `VerifyOriginSSL` boolean, nullable — Determines if the SSL certificate should be verified when connecting to the origin
  - `LogForwardingEnabled` boolean, nullable — Sets the log forwarding token for the zone
  - `LogForwardingHostname` string, nullable — Sets the log forwarding destination hostname for the zone
  - `LogForwardingPort` integer, nullable — Sets the log forwarding port for the zone
  - `LogForwardingToken` string, nullable — Sets the log forwarding token for the zone
  - `LogForwardingProtocol` 0 | 1 | 2 | 3 — 0 = UDP 1 = TCP 2 = TCPEncrypted 3 = DataDog
  - `LoggingSaveToStorage` boolean, nullable — Determines if the logging permanent storage should be enabled
  - `LoggingStorageZoneId` integer, nullable — Sets the Storage Zone id that should contain the logs from this Pull Zone
  - `FollowRedirects` boolean, nullable — Determines if the zone should follow redirects return by the oprigin and cache the response
  - `ConnectionLimitPerIPCount` integer, nullable — Determines the maximum number of connections per IP that will be allowed to connect to this Pull Zone
  - `RequestLimit` integer, nullable — Determines the maximum number of requests per second that will be allowed to connect to this Pull Zone
  - `LimitRateAfter` number, double, nullable — Determines the amount of traffic transferred before the client is limited
  - `LimitRatePerSecond` integer, nullable — Determines the maximum number of requests per second coming from a single IP before it is blocked.
  - `BurstSize` integer, nullable — Determines the maximum burst requests before an IP is blocked
  - `ErrorPageEnableCustomCode` boolean, nullable — Determines if custom error page code should be enabled.
  - `ErrorPageCustomCode` string, nullable — Contains the custom error page code that will be returned
  - `ErrorPageEnableStatuspageWidget` boolean, nullable — Determines if the statuspage widget should be displayed on the error pages
  - `ErrorPageStatuspageCode` string, nullable — The statuspage code that will be used to build the status widget
  - `ErrorPageWhitelabel` boolean, nullable — Determines if the error pages should be whitelabel or not
  - `OptimizerEnabled` boolean, nullable — Determines if the optimizer should be enabled for this zone
  - `OptimizerTunnelEnabled` boolean, nullable — Determines if the optimizer origin tunnel system should be enabled for this zone
  - `OptimizerDesktopMaxWidth` integer, nullable — Determines the maximum automatic image size for desktop clients
  - `OptimizerMobileMaxWidth` integer, nullable — Determines the maximum automatic image size for mobile clients
  - `OptimizerImageQuality` integer, nullable — Determines the image quality for desktop clients
  - `OptimizerMobileImageQuality` integer, nullable — Determines the image quality for mobile clients
  - `OptimizerEnableWebP` boolean, nullable — Determines if the WebP optimization should be enabled
  - `OptimizerPrerenderHtml` boolean, nullable — Determines if the SEO HTML prerender should be enabled
  - `OptimizerEnableManipulationEngine` boolean, nullable — Determines the image manipulation should be enabled
  - `OptimizerMinifyCSS` boolean, nullable — Determines if the CSS minifcation should be enabled
  - `OptimizerMinifyJavaScript` boolean, nullable — Determines if the JavaScript minifcation should be enabled
  - `OptimizerWatermarkEnabled` boolean, nullable — Determines if image watermarking should be enabled
  - `OptimizerWatermarkUrl` string, nullable — Sets the URL of the watermark image
  - `OptimizerWatermarkPosition` 0 | 1 | 2 | 3 | 4 | 5 — 0 = BottomLeft 1 = BottomRight 2 = TopLeft 3 = TopRight 4 = Center 5 = CenterStretch
  - `OptimizerWatermarkOffset` number, double, nullable — Sets the offset of the watermark image
  - `OptimizerWatermarkMinImageSize` integer, nullable — Sets the minimum image size to which the watermark will be added
  - `OptimizerAutomaticOptimizationEnabled` boolean, nullable — Determines if the automatic image optimization should be enabled
  - `OptimizerClasses` PullZoneOptimizerClassModel[], nullable — Determines the list of optimizer classes
    - `Name` string, nullable — The name of the optimizer class that will be used in the query string
    - `Properties` object, nullable — The list of settings and values the class will send to the optimizer
  - `OptimizerForceClasses` boolean, nullable — Determines if the optimizer classes should be forced
  - `OptimizerStaticHtmlEnabled` boolean, nullable — Determines whether optimizer static html feature enabled
  - `OptimizerStaticHtmlWordPressPath` string, nullable — Wordpress html path which should be bypassed by permacache in edge rule
  - `OptimizerStaticHtmlWordPressBypassCookie` string, nullable — Wordpress cookie which should be bypassed by permacache in edge rule
  - `Type` 0 | 1 — 0 = Premium 1 = Volume
  - `OriginRetries` integer, nullable — The number of retries to the origin server
  - `OriginConnectTimeout` integer, nullable — The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.
  - `OriginResponseTimeout` integer, nullable — The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.
  - `UseStaleWhileUpdating` boolean, nullable — Determines if we should use stale cache while cache is updating
  - `UseStaleWhileOffline` boolean, nullable — Determines if we should use stale cache while the origin is offline
  - `OriginRetry5XXResponses` boolean, nullable — Determines if we should retry the request in case of a 5XX response.
  - `OriginRetryConnectionTimeout` boolean, nullable — Determines if we should retry the request in case of a connection timeout.
  - `OriginRetryResponseTimeout` boolean, nullable — Determines if we should retry the request in case of a response timeout.
  - `OriginRetryDelay` integer, nullable — Determines the amount of time that the CDN should wait before retrying an origin request.
  - `DnsOriginPort` integer, nullable — Determines the origin port of the pull zone.
  - `DnsOriginScheme` string, nullable — Determines the origin scheme of the pull zone.
  - `QueryStringVaryParameters` string[], nullable — Contains the list of vary parameters that will be used for vary cache by query string. Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, all parameters will be used to construct the key.
  - `OriginShieldEnableConcurrencyLimit` boolean, nullable — Determines if the origin shield concurrency limit is enabled.
  - `OriginShieldMaxConcurrentRequests` integer, nullable — Determines the number of maximum concurrent requests allowed to the origin.
  - `EnableCookieVary` boolean, nullable — Determines if the Cookie Vary feature is enabled.
  - `CookieVaryParameters` string[], nullable — Contains the list of vary parameters that will be used for vary cache by cookie string.Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, cookie vary will not be used.
  - `EnableSafeHop` boolean, nullable
  - `OriginShieldQueueMaxWaitTime` integer, nullable — Determines the max queue wait time
  - `OriginShieldMaxQueuedRequests` integer, nullable — Determines the max number of origin requests that will remain in the queue
  - `UseBackgroundUpdate` boolean, nullable — Determines if cache update is performed in the background.
  - `EnableAutoSSL` boolean, nullable — If set to true, any hostnames added to this Pull Zone will automatically enable SSL.
  - `LogAnonymizationType` 0 | 1 — 0 = OneDigit 1 = Drop
  - `StorageZoneId` integer, nullable — The ID of the storage zone that will be used as the origin
  - `EdgeScriptId` integer, nullable — The ID of the edge script that will be used as the origin
  - `MiddlewareScriptId` integer, nullable — The ID of the middleware script
  - `EdgeScriptExecutionPhase` 0 | 1 — 0 = Cache 1 = LoadBalancer
  - `OriginType` 0 | 1 | 2 | 3 | 4 | 5 | 6 — 0 = OriginUrl 1 = DnsAccelerate 2 = StorageZone 3 = LoadBalancer 4 = EdgeScript 5 = MagicContainers 6 = PushZone
  - `MagicContainersAppId` string, nullable
  - `MagicContainersEndpointId` string, nullable
  - `LogFormat` 0 | 1 — 0 = Plain 1 = JSON
  - `LogForwardingFormat` 0 | 1 — 0 = Plain 1 = JSON
  - `ShieldDDosProtectionType` 0 | 1 | 2 — 0 = DetectOnly 1 = ActiveStandard 2 = ActiveAggressive
  - `ShieldDDosProtectionEnabled` boolean, nullable
  - `OriginHostHeader` string, nullable — Sets the host header that will be sent to the origin
  - `EnableSmartCache` boolean, nullable
  - `EnableRequestCoalescing` boolean, nullable — Determines if request coalescing is currently enabled.
  - `RequestCoalescingTimeout` integer, nullable — Determines the lock time for coalesced requests.
  - `DisableLetsEncrypt` boolean, nullable — If set to true, the built-in let's encrypt will be disabled and requests are passed to the origin.
  - `EnableBunnyImageAi` boolean, nullable
  - `BunnyAiImageBlueprints` BunnyAiImageBlueprintModel[], nullable
    - `Name` string, nullable
    - `Properties` object, nullable
  - `PreloadingScreenEnabled` boolean, nullable — Determines if the preloading screen is currently enabled
  - `PreloadingScreenCode` string, nullable — The custom preloading screen coed
  - `PreloadingScreenLogoUrl` string, nullable — The preloading screen logo URL
  - `PreloadingScreenShowOnFirstVisit` boolean — Determines if the preloading screen is shown on the first load from a user.
  - `PreloadingScreenTheme` 0 | 1 — 0 = Light 1 = Dark
  - `PreloadingScreenCodeEnabled` boolean, nullable — Determines if the custom preloader screen should be enabled
  - `PreloadingScreenDelay` integer, nullable — The delay in miliseconds after which the preloading screen will be displayed (0 - 10000ms)
  - `RoutingFilters` string[], nullable — The list of routing filters enabled for this zone
  - `StickySessionType` 0 | 1 — 0 = Off 1 = On
  - `StickySessionCookieName` string, nullable — Sticky Session Cookie Name
  - `StickySessionClientHeaders` string, nullable — A set of comma-separated header names used to identify clients
  - `OptimizerEnableUpscaling` boolean, nullable — Determines if Optimizer is allowed to upscale images
  - `EnableWebSockets` boolean, nullable — Determines if WebSocket connections are allowed for this Pull Zone.
  - `MaxWebSocketConnections` integer, nullable — The maximum global simultaneous WebSocket connections allowed for this Pull Zone. Allowed tiers: 500, 1,000, 2,500, 5,000, 10,000, 25,000. If you send a non-tier value, the value is rounded up to the next tier. Values over 25,000 are rejected, please contact sales if required.
  - `CacheKeyHeaders` string, nullable — Vary Cache by Request Headers (comma delimited)
  - `Name` string, required — The name of the pull zone.

## Response `201`

The Pull Zone was successfuly added

## Other responses

- `400` — Failed adding Pull Zone
- `401` — The request authorization failed
- `500` — Internal Server Error

---

[API](https://skmtc.net/bunny/apis/bunny-net-cdn-logging.md) · [All operations](https://skmtc.net/bunny/apis/bunny-net-cdn-logging/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bunny/bunny-net-cdn-logging/versions/9e622620664b/schema)
