## Write multiple key-value pairs `client.KV.Namespaces.BulkUpdate(ctx, namespaceID, params) (*NamespaceBulkUpdateResponse, error)` **put** `/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk` Write multiple keys and values at once. Body should be an array of up to 10,000 key-value pairs to be stored, along with optional expiration information. Existing values and expirations will be overwritten. If neither `expiration` nor `expiration_ttl` is specified, the key-value pair will never expire. If both are set, `expiration_ttl` is used and `expiration` is ignored. The entire request size must be 100 megabytes or less. ### Parameters - `namespaceID string` Namespace identifier tag. - `params NamespaceBulkUpdateParams` - `AccountID param.Field[string]` Path param: Identifier. - `Body param.Field[[]NamespaceBulkUpdateParamsBody]` Body param - `Key string` A key's name. The name may be at most 512 bytes. All printable, non-whitespace characters are valid. - `Value string` A UTF-8 encoded string to be stored, up to 25 MiB in length. - `Base64 bool` Indicates whether or not the server should base64 decode the value before storing it. Useful for writing values that wouldn't otherwise be valid JSON strings, such as images. - `Expiration float64` Expires the key at a certain time, measured in number of seconds since the UNIX epoch. - `ExpirationTTL float64` Expires the key after a number of seconds. Must be at least 60. - `Metadata unknown` Arbitrary JSON that is associated with a key. ### Returns - `type NamespaceBulkUpdateResponse struct{…}` - `SuccessfulKeyCount float64` Number of keys successfully updated. - `UnsuccessfulKeys []string` Name of the keys that failed to be fully updated. They should be retried. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/kv" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.KV.Namespaces.BulkUpdate( context.TODO(), "0f2ac74b498b48028cb68387c421e279", kv.NamespaceBulkUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: []kv.NamespaceBulkUpdateParamsBody{kv.NamespaceBulkUpdateParamsBody{ Key: cloudflare.F("My-Key"), Value: cloudflare.F("Some string"), }}, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.SuccessfulKeyCount) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "successful_key_count": 100, "unsuccessful_keys": [ "string" ] } } ```