---
title: "Store or update a secret"
method: PUT
path: "/v1/vaults/{vault_id}/secrets/{path}"
tags: ["Secrets"]
---

# Store or update a secret

`PUT /v1/vaults/{vault_id}/secrets/{path}`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/vaults/{vault_id}/secrets/{path}`
- Auth: HTTP bearer

## Path parameters

- `vault_id` string, uuid, required
- `path` string, required

## Request body

- PutSecretRequest
  - `type` string: Secret type (generic, password, api_key, certificate, private_key, ssh_key, env)
  - `value` string, required
  - `metadata` object
  - `expires_at` string, date-time
  - `rotation_policy` object
  - `max_access_count` integer

## Response `201`

Secret created or updated

- SecretCreatedResponse: Returned when a secret is created or updated. Extends SecretMetadataResponse with an optional client_share for MPC vaults.
  - `id` string, uuid, required
  - `path` string, required
  - `type` string, required
  - `version` integer, required
  - `metadata` object
  - `created_at` string, date-time, required
  - `expires_at` string, date-time
  - `client_share` string: Base64-encoded client key share. Returned only for MPC 2-of-2 vaults. The client must store this share securely — it is not persisted server-side.

## Other responses

- `400`: Invalid request
- `402`: x402 payment required

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/5fa0918f3b41?raw)
