---
title: "Create a vault"
method: POST
path: "/v1/vaults"
tags: ["Vaults"]
---

# Create a vault

`POST /v1/vaults`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/vaults`
- Auth: HTTP bearer

## Request body

- CreateVaultRequest
  - `name` string, required: Unique within the organization. Trimmed before it is stored, and the trimmed value is what must be unique. Counted in characters, not bytes.
  - `description` string
  - `mpc_custody` string: MPC custody mode to enable at creation (e.g. "2-of-2", "2-of-3")

## Response `201`

Vault created

- VaultResponse
  - `id` string, uuid, required
  - `name` string, required
  - `description` string
  - `created_by` string
  - `created_by_type` string
  - `created_at` string, date-time, required
  - `cmek_enabled` boolean: Whether client-managed encryption is enabled
  - `cmek_fingerprint` string: SHA-256 fingerprint of the CMEK key (64 hex chars)
  - `mpc_custody` string: MPC custody mode (e.g. "2-of-2", "2-of-3"), absent when MPC is not enabled
  - `mpc_threshold` integer: Number of shares required to reconstruct the key
  - `mpc_providers` string[]: List of MPC share providers (e.g. ["server", "client"])

## Other responses

- `400`: The name is empty or longer than 255 characters. Checked before the consensus gate and the quota, so a malformed request consumes neither an approval nor a rate-limit slot.
- `409`: A vault with that name already exists in this organization. Names are unique per org; this previously surfaced as a 500.

---

[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/ae109b496830?raw)
