## Write key-value pair with optional metadata `client.kv.namespaces.values.update(stringnamespaceId, stringkeyName, ValueUpdateParamsparams, RequestOptionsoptions?): ValueUpdateResponse | null` **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: ValueUpdateParams` - `account_id: string` Path param: Identifier. - `value: string | Uploadable` Body param: A byte sequence to be stored, up to 25 MiB in length. - `string` - `Uploadable` - `expiration?: number` Query param: Expires the key at a certain time, measured in number of seconds since the UNIX epoch. - `expiration_ttl?: number` Query param: Expires the key after a number of seconds. Must be at least 60. - `metadata?: unknown` Body param: Associates arbitrary JSON data with a key/value pair. ### Returns - `ValueUpdateResponse` ### 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 value = await client.kv.namespaces.values.update( '0f2ac74b498b48028cb68387c421e279', 'My-Key', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', value: 'Some Value' }, ); console.log(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": {} } ```