---
title: "Create or retrieve a vault by immutable name"
method: POST
path: "/vaults"
tags: ["Vaults"]
---

# Create or retrieve a vault by immutable name

`POST /vaults`

## Request

- Base URL: `https://api.onkernel.com`
- URL: `https://api.onkernel.com/vaults`
- Auth: HTTP bearer

Free organizations can store up to 3 non-deleted vaults across all projects. Paid plans and active trials have no vault cap. Retrieving an existing vault by name succeeds even at the limit.

## Request body

- VaultRequest
  - `name` string, required: Immutable name used to create or retrieve the vault.

## Response `200`

Existing vault

- Vault
  - `created_at` string, date-time, required
  - `id` string, required
  - `name` string, required: Immutable name assigned when the vault is created.
  - `updated_at` string, date-time, required

## Other responses

- `201`: Vault created
- `400`: Bad Request – invalid input
- `401`: Unauthorized – missing or invalid authorization token
- `403`: Forbidden – insufficient permissions or plan
- `500`: Internal Server Error

## Changes

- **2026-09-06** `90bf568dec37`: 1 info
  - added the non-success response with the status `403`
- **2026-09-04** `f8926f40b092`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/onkernel/apis/kernel-api/changes/vaults/post.md)

---

[API](https://skmtc.dev/onkernel/apis/kernel-api.md) - [All operations](https://skmtc.dev/onkernel/apis/kernel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/onkernel/apis/kernel-api/revisions/0f6cf4f58fe6?raw)
