v5
latestOpenAPI 3.1.02026-08-025631,1012.8 MBCreate Namespace
Creates a new namespace with specified feature extractors and payload indexes.
Request body
Optional namespace ID override. Used for recovery/migration when recreating a namespace with a known ID. If not provided, a new ID is auto-generated.
Name of the namespace to create
Namespace mode. 'managed' (default) uses Mixpeek feature extractors. 'standalone' allows BYO vectors without extractors. If omitted and ONLY vector_configs is provided (no features/feature_extractors), standalone is inferred.
Type of namespace defining its access control and billing model.
Ownership scope for a namespace.
ORG: owned by a single organization (default). Internal_id-scoped. SYSTEM: owned by Mixpeek, visible read-only to every authenticated user. Used for curated sample corpora that power the onboarding experience. Mutations require MIXPEEK_PRIVATE_TOKEN admin auth.
Description of the namespace
Modality+features config (contract v2 §6.2, D9): feature keys from GET /v1/collections/features (e.g. ['image_search', 'faces'] or ['custom:<plugin>']). Resolved server-side to the UNION of feature extractors the namespace needs — the preferred alternative to feature_extractors (extractor names are internal implementation). A namespace hosts many collections, so multiple features spanning multiple extractors are fine here. May be combined with feature_extractors (the two merge as a union). If neither is provided, the namespace gets the standard baseline (same as the scaffolded default namespace). Managed mode only.
Enable automatic creation of Qdrant payload indexes based on filter usage patterns. When enabled, the system tracks which fields are most frequently filtered (>100 queries/24h) and automatically creates indexes to improve query performance. Background task runs every 6 hours. Expected performance improvement: 50-90% latency reduction for filtered queries. Defaults: managed namespaces off, standalone namespaces on. Set explicitly to false to opt out (including for standalone, so an agent can manage indexes itself).
Time-to-live in seconds. Namespace will be auto-deleted after this duration.
Example request
{
"features": [
"image_search",
"text_search",
"faces"
],
"namespace_name": "media_library"
}Response
Successful Response
Resource type identifier, always 'namespace'.
Unique identifier for the namespace. Format: ns_<random>.
Name of the namespace
Type of namespace defining its access control and billing model.
Ownership scope for a namespace.
ORG: owned by a single organization (default). Internal_id-scoped. SYSTEM: owned by Mixpeek, visible read-only to every authenticated user. Used for curated sample corpora that power the onboarding experience. Mutations require MIXPEEK_PRIVATE_TOKEN admin auth.
Infrastructure cluster ID for this namespace (Enterprise only). When set, this namespace uses a dedicated compute and vector cluster. If None, uses shared infrastructure or organization-level infrastructure. Format: iclstr_xxx
Description of the namespace
Number of USER (non-protected) payload indexes on this namespace — the same count the Studio Namespaces table shows per row. Populated even in the summary LIST view, which omits the heavy payload_indexes array itself (MS-833: the array is ~75% of the list payload, but its count is a single integer). Without it the table can only show '—'.
Total number of documents in this namespace
Total number of buckets in this namespace
Total number of collections in this namespace
Total number of objects across all buckets in this namespace
Enable automatic creation of Qdrant payload indexes based on filter usage patterns. When enabled, the system tracks which fields are most frequently filtered (>100 queries/24h) and automatically creates indexes to improve query performance. Background task runs every 6 hours. Expected performance improvement: 50-90% latency reduction for filtered queries.
Mapping of vector index names to inference service names. Built at namespace creation based on extractor configurations. Used by feature search to determine correct inference service for queries. Example: {'image_extractor_v1_embedding': 'google_siglip_base_v1'}
Creation-time marker for BYO vector-name handling (SP-263). False = the namespace was created with EXPLICIT vector_configs, so upserting a vector name outside those configs is rejected (422) instead of silently auto-indexed under a name nothing searches. True = fully dynamic BYO namespace (created without vector_configs): new vector names keep being inferred on first upsert. Null (namespaces that predate the marker) behaves as True so existing flows are unchanged.
Namespace mode: 'managed' (Mixpeek manages vector schemas and inference) or 'standalone' (bring-your-own vectors). Populated from the stored mvs_mode; null for namespaces that predate BYOV.
For standalone / promoted (BYO-vector) namespaces, the per-vector configs: name, dimension, metric. Populated from the stored mvs_vector_configs; null for managed namespaces with no BYO vectors.
Live vector collection status. Populated when retrieving a namespace. Includes: status (green/yellow/red), points_count, indexed_vectors_count, segments_count. None if vector collection does not exist or is unreachable.
Deep-clone / scaffold sample-data progress: 'cloning' (in flight), 'ready' (completed), 'failed' (see clone_error). Null for namespaces that were never cloned. Poll this after a scaffold instantiate with include_sample_data=true.
Error detail when clone_status='failed'; null otherwise.
For a cloned namespace, the source (golden/sample) namespace id it was cloned from.
ALWAYS PRESENT (BACKE-3008). True only after the server CONFIRMED this namespace is usable: its vector collection exists and is reachable (a served live count, the MI-2947 readiness signal) and no clone is in flight. Never a prediction or timestamp. A wizard-created namespace mid-provision reads false (poll the namespace GET; it flips true on the first confirming read and the flip is persisted). Namespaces created before the feature shipped emit true; post-ship namespaces with no stored value emit false (fail toward not-ready).
When the namespace was created
When the namespace was last updated
UTC timestamp after which the namespace is auto-deleted by the hourly cleanup_expired_namespaces reaper. Computed at create time from CreateNamespaceRequest.ttl_seconds; null means the namespace never expires.
Example response
{
"namespace_name": "product-search",
"infrastructure": {
"autoscaling_enabled": false,
"compute_tier": "shared",
"description": "Shared development namespace",
"max_concurrent_jobs": 10,
"qdrant_collection": "ns_dev",
"ray_head_node_url": "ray://shared-cluster:10001"
},
"cluster_id": "iclstr_abc123xyz",
"payload_indexes": [
{
"description": "User-created text index for full-text search",
"field_name": "metadata.description",
"is_protected": false,
"type": "text"
}
]
}