## Write key-value pair with optional metadata `client.KV.Namespaces.Values.Update(ctx, namespaceID, keyName, params) (*NamespaceValueUpdateResponse, error)` **put** `/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{key_name}` Write a value identified by a key. Use URL-encoding to use special characters (for example, `:`, `!`, `%`) in the key name. Body should be the value to be stored. If JSON metadata to be associated with the key/value pair is needed, use `multipart/form-data` content type for your PUT request (see dropdown below in `REQUEST BODY SCHEMA`). Existing values, expirations, and metadata 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. ### Parameters - `namespaceID string` Namespace identifier tag. - `keyName string` A key's name. The name may be at most 512 bytes. All printable, non-whitespace characters are valid. Use percent-encoding to define key names as part of a URL. - `params NamespaceValueUpdateParams` - `AccountID param.Field[string]` Path param: Identifier. - `Value param.Field[NamespaceValueUpdateParamsValueUnion]` Body param: A byte sequence to be stored, up to 25 MiB in length. - `UnionString` - `UnionString` - `Expiration param.Field[float64]` Query param: Expires the key at a certain time, measured in number of seconds since the UNIX epoch. - `ExpirationTTL param.Field[float64]` Query param: Expires the key after a number of seconds. Must be at least 60. - `Metadata param.Field[unknown]` Body param: Associates arbitrary JSON data with a key/value pair. ### Returns - `type NamespaceValueUpdateResponse struct{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/kv" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/shared" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) value, err := client.KV.Namespaces.Values.Update( context.TODO(), "0f2ac74b498b48028cb68387c421e279", "My-Key", kv.NamespaceValueUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Value: cloudflare.F[kv.NamespaceValueUpdateParamsValueUnion](shared.UnionString("Some Value")), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", value) } ``` #### 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": {} } ```