## Batch create or replace origin cloud region mappings
`client.cache.originCloudRegions.bulkUpdate(OriginCloudRegionBulkUpdateParamsparams, RequestOptionsoptions?): 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`.
### Parameters
- `params: OriginCloudRegionBulkUpdateParams`
- `zone_id: string`
Path param: Identifier.
- `body: Array
`
Body param
- `origin_ip: string`
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: string`
Cloud vendor region identifier. Must be a valid region for the specified vendor as returned by the supported_regions endpoint.
- `vendor: "aws" | "azure" | "gcp" | "oci"`
Cloud vendor hosting the origin. Must be one of the supported vendors.
- `"aws"`
- `"azure"`
- `"gcp"`
- `"oci"`
### Returns
- `OriginCloudRegionBulkUpdateResponse`
Response result for a batch origin cloud region operation.
- `failed: Array`
Items that could not be applied, with error details.
- `origin_ip: string`
The origin IP address for this item.
- `error?: string`
Error message explaining why the item failed. Present only on failed items.
- `region?: string`
Cloud vendor region identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).
- `vendor?: string`
Cloud vendor identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).
- `succeeded: Array`
Items that were successfully applied.
- `origin_ip: string`
The origin IP address for this item.
- `error?: string`
Error message explaining why the item failed. Present only on failed items.
- `region?: string`
Cloud vendor region identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).
- `vendor?: string`
Cloud vendor identifier. Present on succeeded items (the new value for upsert, the deleted value for delete).
### Example
```node
import Cloudflare from 'cloudflare';
const client = new Cloudflare({
apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});
const response = await client.cache.originCloudRegions.bulkUpdate({
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',
},
],
});
console.log(response.failed);
```
#### Response
```json
{
"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
}
```