Documentation Index
Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Promotion converts a standalone namespace to managed mode. Existing vectors and documents stay in place. Mixpeek adds auto-embedding for queries and collection-driven processing for new content.
Map existing vector indexes to inference services and optionally add new ones.
requests.post(f"{BASE}/namespaces/product-search/promote", headers=headers, json={
"vector_mappings": [
{"existing_index": "text_embedding", "inference_service": "openai_text_3_small"}
],
"add_vectors": [
{"name": "image_embedding", "dimension": 512, "metric": "cosine", "inference_service": "clip_vit_b32"}
]
})
Parameters
Map existing indexes to inference services for auto-embedding queries.| Field | Description |
|---|
existing_index | Name of an existing vector index |
inference_service | Model to auto-embed queries (e.g., openai_text_3_small) |
New vector indexes to create during promotion.| Field | Description |
|---|
name | New index name (must not conflict with existing) |
dimension | Embedding dimension |
metric | cosine, dot, or euclidean |
inference_service | Model for auto-embedding (optional) |
Response
{
"namespace_id": "product-search",
"previous_mode": "standalone",
"mode": "managed",
"status": "active",
"vector_configs": [
{"name": "text_embedding", "dimension": 1536, "metric": "cosine"},
{"name": "image_embedding", "dimension": 512, "metric": "cosine"}
],
"vector_inference_map": {
"text_embedding": "openai_text_3_small",
"image_embedding": "clip_vit_b32"
}
}
What Changes
| Before (standalone) | After (managed) |
|---|
| Search input | Must provide pre-computed vectors | Also accepts raw text/URLs — auto-embedded |
| New content | Direct upsert only | Collections + extractors auto-process |
| Existing data | — | Preserved, no reindexing |
| Direct upsert | — | Still works alongside collections |
Rules
Promotion is one-way. Managed namespaces cannot be demoted.
- Only
standalone namespaces can be promoted
existing_index must reference an index that exists — errors list available indexes
name in add_vectors must not conflict with existing indexes
- Promotion is atomic — if validation fails, nothing changes
- Both
vector_mappings and add_vectors are optional (promote with just one or neither)
Full Workflow
Start standalone
Create a namespace and upsert your existing embeddings.curl -X POST "https://api.mixpeek.com/v1/namespaces/standalone" \
-H "Authorization: Bearer $MIXPEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"namespace_id": "legal-docs", "mode": "standalone", "vector_configs": [{"name": "text_embedding", "dimension": 1536, "metric": "cosine"}]}'
Load and validate
Upsert documents and verify search quality before promoting.# Upsert
curl -X POST "https://api.mixpeek.com/v1/namespaces/legal-docs/documents/direct" ...
# Search to validate
curl -X POST "https://api.mixpeek.com/v1/search" \
-d '{"namespace_id": "legal-docs", "queries": [{"vector_name": "text_embedding", "vector": [...], "top_k": 5}]}'
Promote
Map your embedding to the matching inference service.curl -X POST "https://api.mixpeek.com/v1/namespaces/legal-docs/promote" \
-H "Authorization: Bearer $MIXPEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vector_mappings": [{"existing_index": "text_embedding", "inference_service": "openai_text_3_small"}]}'
Use managed features
Create collections with extractors for new content. Existing documents coexist with extractor-processed documents. Queries can now send raw text instead of vectors.