Skip to content
Start here

Batch create or replace origin cloud region mappings

cache.origin_cloud_regions.bulk_update(OriginCloudRegionBulkUpdateParams**kwargs) -> OriginCloudRegionBulkUpdateResponse
PUT/zones/{zone_id}/origin/cloud_regions/batch

Upserts up to 100 IP-to-cloud-region mappings in a single request. Items in the request body are created or replaced; mappings not included in the request body are preserved unchanged (this is a merge operation, not a full collection replacement). 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}/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
zone_id: str

Identifier.

maxLength32
body: Iterable[Body]
origin_ip: str

Origin IP address (IPv4 or IPv6). For the single PUT endpoint (PUT /origin/cloud_regions/{origin_ip}), this field must match the path parameter or the request will be rejected with a 400 error. For the batch PUT endpoint, this field identifies which mapping to upsert.

region: str

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

vendor: Literal["aws", "azure", "gcp", "oci"]

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

One of the following:
"aws"
"azure"
"gcp"
"oci"
ReturnsExpand Collapse
class OriginCloudRegionBulkUpdateResponse:

Response result for a batch origin cloud region operation.

failed: List[Failed]

Items that could not be applied, with error details.

origin_ip: str

The origin IP address for this item.

error: Optional[str]

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

region: Optional[str]

Cloud vendor region identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).

vendor: Optional[str]

Cloud vendor identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).

succeeded: List[Succeeded]

Items that were successfully applied.

origin_ip: str

The origin IP address for this item.

error: Optional[str]

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

region: Optional[str]

Cloud vendor region identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).

vendor: Optional[str]

Cloud vendor identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).

Batch create or replace origin cloud region mappings

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.cache.origin_cloud_regions.bulk_update(
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
    body=[{
        "origin_ip": "192.0.2.1",
        "region": "us-east-1",
        "vendor": "aws",
    }, {
        "origin_ip": "2001:db8::1",
        "region": "us-central1",
        "vendor": "gcp",
    }],
)
print(response.failed)
{
  "errors": [],
  "messages": [],
  "result": {
    "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
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": {
    "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
}