Skip to content
Start here

Batch create or update origin cloud region mappings

client.Cache.OriginCloudRegions.BulkEdit(ctx, params) (*OriginCloudRegionBulkEditResponse, error)
PATCH/zones/{zone_id}/cache/origin_cloud_regions/batch

Adds or updates up to 100 IP-to-cloud-region mappings in a single request. Each item is validated independently — valid items are applied and invalid items are returned in the failed array. The vendor and region for every item are validated against the list from GET /zones/{zone_id}/cache/origin_cloud_regions/supported_regions.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
params OriginCloudRegionBulkEditParams
ZoneID param.Field[string]Optional

Path param: Identifier.

maxLength32
Body param.Field[[]OriginCloudRegionBulkEditParamsBody]

Body param

IP string

Origin IP address (IPv4 or IPv6). Normalized to canonical form before storage (RFC 5952 for IPv6).

Region string

Cloud vendor region identifier. Must be a valid region for the specified vendor as returned by the supported_regions endpoint.

Vendor OriginCloudRegionBulkEditParamsBodyVendor

Cloud vendor hosting the origin. Must be one of the supported vendors.

One of the following:
const OriginCloudRegionBulkEditParamsBodyVendorAws OriginCloudRegionBulkEditParamsBodyVendor = "aws"
const OriginCloudRegionBulkEditParamsBodyVendorAzure OriginCloudRegionBulkEditParamsBodyVendor = "azure"
const OriginCloudRegionBulkEditParamsBodyVendorGcp OriginCloudRegionBulkEditParamsBodyVendor = "gcp"
const OriginCloudRegionBulkEditParamsBodyVendorOci OriginCloudRegionBulkEditParamsBodyVendor = "oci"
ReturnsExpand Collapse
type OriginCloudRegionBulkEditResponse struct{…}

Response result for a batch origin cloud region operation.

ID OriginCloudRegionBulkEditResponseID
Editable bool

Whether the setting can be modified by the current user.

Value OriginCloudRegionBulkEditResponseValue
Failed []OriginCloudRegionBulkEditResponseValueFailed

Items that could not be applied, with error details.

OriginIP string

The origin IP address for this item.

Error stringOptional

Error message explaining why the item failed. Present only on failed items.

Region stringOptional

Cloud vendor region identifier. Present on succeeded items for patch operations.

Vendor stringOptional

Cloud vendor identifier. Present on succeeded items for patch operations.

Succeeded []OriginCloudRegionBulkEditResponseValueSucceeded

Items that were successfully applied.

OriginIP string

The origin IP address for this item.

Error stringOptional

Error message explaining why the item failed. Present only on failed items.

Region stringOptional

Cloud vendor region identifier. Present on succeeded items for patch operations.

Vendor stringOptional

Cloud vendor identifier. Present on succeeded items for patch operations.

ModifiedOn TimeOptional

Time the mapping set was last modified. Null when no items were successfully applied.

formatdate-time

Batch create or update origin cloud region mappings

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/cache"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.Cache.OriginCloudRegions.BulkEdit(context.TODO(), cache.OriginCloudRegionBulkEditParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Body: []cache.OriginCloudRegionBulkEditParamsBody{cache.OriginCloudRegionBulkEditParamsBody{
      IP: cloudflare.F("192.0.2.1"),
      Region: cloudflare.F("us-east-1"),
      Vendor: cloudflare.F(cache.OriginCloudRegionBulkEditParamsBodyVendorAws),
    }, cache.OriginCloudRegionBulkEditParamsBody{
      IP: cloudflare.F("2001:db8::1"),
      Region: cloudflare.F("us-central1"),
      Vendor: cloudflare.F(cache.OriginCloudRegionBulkEditParamsBodyVendorGcp),
    }},
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
{
  "errors": [],
  "messages": [],
  "result": {
    "editable": true,
    "id": "origin_public_cloud_region",
    "modified_on": "2026-03-01T12:00:00Z",
    "value": {
      "failed": [],
      "succeeded": [
        {
          "origin-ip": "192.0.2.1",
          "region": "us-east-1",
          "vendor": "aws"
        },
        {
          "origin-ip": "2001:db8::1",
          "region": "us-central1",
          "vendor": "gcp"
        }
      ]
    }
  },
  "success": true
}
{
  "errors": [
    {
      "code": 1164,
      "message": "Maximum number of IP mappings configured for zone."
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
{
  "errors": [
    {
      "code": 1140,
      "message": "Unable to update origin_public_cloud_region setting value. Internal error."
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
{
  "errors": [
    {
      "code": 1156,
      "message": "Failed to validate region against cloud vendor"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": {
    "editable": true,
    "id": "origin_public_cloud_region",
    "modified_on": "2026-03-01T12:00:00Z",
    "value": {
      "failed": [],
      "succeeded": [
        {
          "origin-ip": "192.0.2.1",
          "region": "us-east-1",
          "vendor": "aws"
        },
        {
          "origin-ip": "2001:db8::1",
          "region": "us-central1",
          "vendor": "gcp"
        }
      ]
    }
  },
  "success": true
}
{
  "errors": [
    {
      "code": 1164,
      "message": "Maximum number of IP mappings configured for zone."
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
{
  "errors": [
    {
      "code": 1140,
      "message": "Unable to update origin_public_cloud_region setting value. Internal error."
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
{
  "errors": [
    {
      "code": 1156,
      "message": "Failed to validate region against cloud vendor"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}