Replace kv

Sets one key to one value and returns the revision the write created.

PUT /v1/kv/{bucket}/{key}

Addresshttps://api.hanzo.ai/v1/kv/{bucket}/{key}
MethodPUT
Operationput_kv_by_bucket_by_key
AuthAuthorization: Bearer $HANZO_API_KEY

Sets one key to one value and returns the revision the write created. Writes are versioned: each put is a new revision and the bucket retains up to its History of them per key.

Request

5 fields, body application/json (required).

FieldInTypeRequiredDescription
bucketpathstringyesBucket is the bucket, from the path.
keypathstringyesKey is the key, from the path.
bucketbodystring—Bucket is the bucket, from the path.
keybodystring—Key is the key, from the path.
valuebodystring—Value is the value, carried verbatim as UTF-8 text (typically JSON).

Response

StatusBodyMeaning
200kv.kvAckok
defaultproblem-detailsrefused

200 body — 1 field.

FieldInTypeAlwaysDescription
revisionbodyinteger (uint64)—Revision is the revision the write created.

Failure carries the platform error shape — see Errors.

Examples

hanzo kv bucket set <bucket> <key>
import { Configuration, KvApi } from 'hanzoai';

const api = new KvApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putKvByBucketByKey({ bucket: 'bucket', key: 'key', bucket: "<bucket>", key: "<key>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import KvApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = KvApi(client).put_kv_by_bucket_by_key(bucket='bucket', key='key', bucket="<bucket>", key="<key>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.KvAPI.PutKvByBucketByKey(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, kv_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = kv_api::put_kv_by_bucket_by_key(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.KvApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new KvApi(client).putKvByBucketByKey();
curl -X PUT https://api.hanzo.ai/v1/kv/<bucket>/<key> \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "bucket": "<bucket>",
       "key": "<key>"
     }'

MCP reaches kv through the kv tool, which names its 6 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_kv"
         }
       }
     }'

KV API · All Hanzo APIs · Interactive reference

Was this page useful?