---
title: "Copy a store"
method: POST
path: "/v1/stores/{store_identifier}/copy"
tags: ["stores"]
---

# Copy a store

`POST /v1/stores/{store_identifier}/copy`

Copy a store into a new store with the given name.

The copy keeps every file, its metadata and its indexed chunks, without
re-parsing or re-embedding anything. It runs in the background: both stores
report the progress in `copy_state`, and the new store's `status` is
`in_progress` until the copy completes. Neither store accepts file changes
while the copy runs, and the source must have no files still being processed.

Args:
    store_identifier: The ID or name of the store to copy.
    params: The name of the copy and optional description and metadata overrides.

Returns:
    Store: The new store.

## Path parameters

- `store_identifier` union, required — The ID or name of the store to copy
  - string
  - string, uuid

## Request body

- StoreCopyParams — Parameters for copying a store into a new one.
  - `name` string, required — Name for the copy. Can only contain lowercase letters, numbers, periods (.), and hyphens (-).
  - `description` string, nullable — Description of the copy; defaults to the source store's description
  - `metadata` unknown
  - `tags` string[], nullable — Tags for the copy; defaults to the source store's tags

## Response `202`

The new store; its contents arrive in the background

- Store — Model representing a store with its metadata and timestamps.
  - `id` string, required — Unique identifier for the store
  - `name` string, required — Name of the store
  - `description` string, nullable — Detailed description of the store's purpose and contents
  - `is_public` boolean — Whether the store can be accessed by anyone with valid login credentials
  - `license` string, nullable — License for public stores
  - `metadata` unknown
  - `tags` string[] — Tags for organizing stores
  - `config` StoreConfig — Configuration for a store.
    - `contextualization` union — Include additional context when embedding chunks.
      - boolean
      - ContextualizationConfig
        - `with_metadata` union — Include all metadata or specific fields in the contextualization. Supports dot notation for nested fields (e.g., 'author.name'). When True, all metadata is included (flattened). When a list, only specified fields are included.
          - boolean
          - string[]
        - `with_file_context` boolean — Use an LLM to generate a short context for each chunk that situates it within the full document, improving retrieval accuracy.
    - `save_content` boolean — Whether to save original content in the store. When False, only vectors are indexed without the original content (index-only mode). This is useful for data privacy. Note: Reranking is not supported when content is not saved.
    - `lsf` LsfStoreConfig — Learned-scoring-function settings a store opts into; an empty object enables it.
  - `bucket_id` string, nullable — Customer bucket backing this store's storage; null = platform default
  - `file_counts` FileCounts — Tracks counts of files in different states within a store.
    - `pending` integer — Number of files waiting to be processed
    - `in_progress` integer — Number of files currently being processed
    - `cancelled` integer — Number of files whose processing was cancelled
    - `completed` integer — Number of successfully processed files
    - `failed` integer — Number of files that failed processing
    - `total` integer — Total number of files
  - `expires_after` ExpiresAfter — Represents an expiration policy for a store.
    - `anchor` 'last_active_at' — Anchor date for the expiration policy
    - `days` integer — Number of days after which the store expires
  - `status` 'expired' | 'in_progress' | 'completed' | 'failed' — Status of a store.
  - `created_at` string, date-time, required — Timestamp when the store was created
  - `updated_at` string, date-time, required — Timestamp when the store was last updated
  - `last_active_at` string, date-time, nullable — Timestamp when the store was last used
  - `usage_bytes` integer — Total storage usage in bytes
  - `usage_tokens` integer — Total storage usage in tokens
  - `expires_at` string, date-time, nullable — Optional expiration timestamp for the store
  - `copy_state` StoreCopyInfo — Progress of a store copy, present on both the source and the target while it runs.
    - `role` 'source' | 'target', required — Whether this store is copied from or into
    - `status` 'in_progress' | 'failed', required — Progress of the copy
    - `peer_store_id` string, required — The other store of the copy
    - `started_at` string, date-time, required — When the copy was requested
    - `error` string, nullable — Why the copy failed, when it did
  - `object` 'store' — Type of the object

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-16** `bc159968f211` — 2 info
  - added the new optional request property `tags`
  - added the optional property `tags` to the response with the `202` status
- **2026-09-15** `957bf8ec8df8` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mixedbread/apis/mxbai-omni/changes/v1/stores/:store_identifier/copy/post.md)

---

[API](https://skmtc.dev/mixedbread/apis/mxbai-omni.md) · [All operations](https://skmtc.dev/mixedbread/apis/mxbai-omni/llms.txt) · [OpenAPI document](https://skmtc.dev/mixedbread/apis/mxbai-omni/revisions/427a5c58f68a?raw)
