> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gc.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create vault

> Create a Contract Intelligence vault.

<Note>
  The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change.
</Note>

<Info>
  **Tool** `create_vault` · **Behavior** Additive
</Info>

Create a Contract Intelligence vault. The caller becomes its owner and the vault starts private to them, so nobody else sees it until they are added in the app. The vault is ready for documents right away: add them with `upload_file` using the returned `id` as `vault_id`, then add the columns you want extracted with `create_vault_column`. Creating a vault needs a permission an organization admin grants.

## Input parameters

<ParamField body="name" type="string">
  Vault name. Omit and GC AI picks the next free default name.
</ParamField>

<ParamField body="description" type="string">
  Optional description.
</ParamField>

## Response

<ResponseField name="vault" type="object">
  <Expandable title="properties">
    <ResponseField name="id" type="string (uuid)">
      Unique vault identifier
    </ResponseField>

    <ResponseField name="name" type="string">
      Vault name
    </ResponseField>

    <ResponseField name="description" type="string | null">
      Vault description, or null if unset
    </ResponseField>

    <ResponseField name="my_role" type="'owner' | 'editor' | 'viewer'">
      Caller's role in this vault: `owner` (manage members and settings), `editor` (add documents and edit extracted data), or `viewer` (read and annotate). A vault the caller reaches only through organization-wide visibility reports `viewer`. The role is not the whole story for writes: adding documents also needs the organization-level permission to manage vaults, so a caller can hold `editor` here and still receive `403` from `POST /vaults/{id}/documents`.
    </ResponseField>

    <ResponseField name="is_access_controlled" type="boolean">
      When true, only vault members can see the vault. When false, any member of the organization with organization-wide vault read can see it.
    </ResponseField>

    <ResponseField name="document_count" type="number">
      Documents that have finished scanning in this vault. Documents still being read are not counted yet.
    </ResponseField>

    <ResponseField name="setup_completed_at" type="string | null">
      ISO 8601 timestamp when guided setup finished, or null while the vault is still in setup. Documents added to a vault in setup are stored but not scanned until setup finishes. Vaults created through `POST /vaults` finish setup immediately, so this is always set for them.
    </ResponseField>

    <ResponseField name="archived_at" type="string | null">
      ISO 8601 timestamp when the vault was archived, or null while it is live. Archived vaults are hidden from the default list and reject changes until `POST /vaults/{id}/restore` runs.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 creation timestamp
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 last-update timestamp
    </ResponseField>
  </Expandable>
</ResponseField>
