---
title: "Upsert a KV entry by explicit namespace + key"
method: PUT
path: "/api/kv/_/{namespace}/{key}"
tags: ["KV"]
---

# Upsert a KV entry by explicit namespace + key

`PUT /api/kv/_/{namespace}/{key}`

## Path parameters

- `namespace` string, required
- `key` string, required

## Request body

- object
  - `value` unknown
  - `valueType` 'json' | 'string' | 'integer'
  - `expiresInSec` integer

## Response `200`

KV entry stored

- KvEntry
  - `namespace` string, required
  - `key` string, required
  - `value` unknown
  - `valueType` 'json' | 'string' | 'integer', required
  - `expiresAt` integer, nullable, required
  - `createdAt` integer, required
  - `updatedAt` integer, required

## Other responses

- `400` — Validation error
- `403` — Caller may not write this namespace
- `409` — INCR collision: existing value_type is not 'integer'
- `413` — Body exceeds 2 MiB

---

[API](https://skmtc.net/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.net/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/desplega-ai/agent-swarm-api/versions/e2028c1ef6f5/schema)
