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

# Create a new vault

`POST /vault`

Creates a new secure vault with dedicated S3 storage and vector search capabilities. Each vault provides isolated document storage with semantic search, OCR processing, and optional GraphRAG knowledge graph features for legal document analysis and discovery.

## Request body

- object
  - `name` string, required — Display name for the vault
  - `description` string — Optional description of the vault's purpose
  - `enableGraph` boolean — Enable knowledge graph for entity relationship mapping. Only applies when enableIndexing is true.
  - `enableIndexing` boolean — Enable vector indexing and search capabilities. Set to false for storage-only vaults.
  - `metadata` object — Optional metadata to attach to the vault (e.g., { containsPHI: true } for HIPAA compliance tracking)
  - `groupId` string — Assign the vault to a vault group for access control. Required when using a group-scoped API key.
  - `embeddingModel` 'openai/text-embedding-3-small' | 'openai/text-embedding-3-large' | 'voyage/voyage-3.5' | 'voyage/voyage-law-2' | 'cohere/embed-v4.0' | 'google/gemini-embedding-2' | 'casemark/embed-v1' | 'casemark/llama-nemotron-embed-vl-1b-v2' — Optional embedding model for this vault. Defaults to casemark/embed-v1. Determines the S3 Vectors index dimension and which model is used at both ingest and search time. The vault is locked to this model after creation — use a re-embed flow to change later. Ignored when enableIndexing is false. Note: `casemark/llama-nemotron-embed-vl-1b-v2` is a deprecated alias for `casemark/embed-v1` (retained for SDK backward compatibility); new integrations should use `casemark/embed-v1` directly.

## Response `201`

Vault created successfully

- object
  - `id` string — Unique vault identifier
  - `name` string — Vault display name
  - `description` string — Vault description
  - `filesBucket` string — S3 bucket name for document storage
  - `vectorBucket` string, nullable — S3 bucket name for vector embeddings. Null for storage-only vaults.
  - `indexName` string, nullable — Vector search index name. Null for storage-only vaults.
  - `enableIndexing` boolean — Whether vector indexing is enabled for this vault
  - `region` string — AWS region for storage
  - `embeddingProfile` object, nullable — The resolved embedding profile for this vault. Null for storage-only vaults.
    - `model` string — Embedding model catalog key
    - `provider` string — Embedding provider
    - `dimensions` integer — Vector dimension used by this vault
  - `createdAt` string, date-time — Vault creation timestamp

## Other responses

- `400` — Invalid request parameters - missing vault name
- `401` — Invalid or missing API key
- `403` — API key does not have vault service access
- `404` — Organization not found

---

[API](https://skmtc.net/casemark/apis/case-dev-api.md) · [All operations](https://skmtc.net/casemark/apis/case-dev-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/casemark/case-dev-api/versions/5b7e64e6d6f9/schema)
