This endpoint partially updates a cluster (PATCH operation).
Only provided fields will be updated. At minimum, metadata can always be updated.
Immutable fields like cluster_id, status, and computed fields cannot be modified.
Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.
Namespace id (ns_...), not the namespace name. This scopes the request rather than authenticating it, and it is required on every operation marked x-mixpeek-namespace-scoped.
Updated LLM labeling configuration. Takes effect on the next POST /v1/clusters/{id}/execute — use this to correct a null labeling_inputs mapping that produced schema-metadata labels, without re-embedding or re-running HDBSCAN.
Updated post-HDBSCAN face-identity merge configuration. Takes effect on the next POST /v1/clusters/{id}/execute. Pass an object with enabled=false to turn the merge pass off without removing the config; pass null in the patch to leave the stored value untouched.
Updated per-execution document cap. Takes effect on the next POST /v1/clusters/{id}/execute. Omit to leave the stored value untouched; set to an integer to change it. KMeans supports up to 1M; O(N²) algorithms are capped at 100K by the engine.
Updated source clusters of a composite cluster. Each must be a vector cluster in this namespace with this cluster's feature_uris, and a cluster cannot name itself. The cluster's input collections become the sources' input collections. Takes effect on the next POST /v1/clusters/{id}/execute.
Updated layout-stability mode: 'align' keeps the map stable across runs (default behavior), 'transform' reuses the previous run's saved projection when compatible, 'none' re-layouts every run. Takes effect on the next POST /v1/clusters/{id}/execute. Omit to leave the stored value untouched.
Makes this a composite cluster: it groups the centroids of these clusters' runs instead of documents. Each id must be a vector cluster in this namespace with the same feature_uris as this one. Executing a composite cluster without a mode runs mode 'composite' over the newest completed run of each source cluster, one per partition (a partition is a run's filters). Vector clusters only.
Optional filters to pre-filter documents before clustering (same format as list documents). Applied during the vector store scroll before parquet export. Useful for clustering subsets like: status='active', category='electronics', etc.
Optional configuration for LLM-based cluster labeling. When provided with enabled=True, clusters will have semantic labels generated by LLM instead of generic labels like 'Cluster 0'. When not provided or enabled=False, uses fallback labels.
If True, cluster results are written back to source collection(s) in-place instead of creating new output collections. Documents will be enriched with cluster_id, cluster_label, distance_to_centroid, and optionally other metadata. Similar to taxonomy enrichment pattern.
Configuration for source collection enrichment (only used if enrich_source_collection=True). Controls which fields are added to source documents and field naming conventions.
Automatically execute this cluster whenever a batch completes on any of its input collections. When True, a ClusterApplicationConfig entry is added to each input collection's cluster_applications field at creation time. The cluster will then auto-trigger after each batch completion (subject to cooldown and document threshold). When False (default), the cluster must be executed manually via the API.
Minimum number of documents required before auto-executing cluster. Only used when auto_execute_on_batch=True. If the collection has fewer documents than this threshold, clustering is skipped.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mixpeek","colors":{"primary":"#FC5185","light":"#FFA0BD","dark":"#364F6B"},"logo":{"light":"https://mintcdn.com/mixpeek/QQyAGObvvz8PjpE0/logo/light.png?fit=max\u0026auto=format\u0026n=QQyAGObvvz8PjpE0\u0026q=85\u0026s=ac5ab550180057404fe833886513775f","dark":"https://mintcdn.com/mixpeek/QQyAGObvvz8PjpE0/logo/dark.png?fit=max\u0026auto=format\u0026n=QQyAGObvvz8PjpE0\u0026q=85\u0026s=e18979c495dbd68be4fc44473098773e"},"favicon":"https://mintcdn.com/mixpeek/QQyAGObvvz8PjpE0/favicon.png?fit=max\u0026auto=format\u0026n=QQyAGObvvz8PjpE0\u0026q=85\u0026s=8be5d2f6dc7e4cb44127a0493d57cde1","api":{"openapi":"api-reference/openapi.json","mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":["https://api.mixpeek.com"]}},"background":{"image":"https://mintcdn.com/mixpeek/QQyAGObvvz8PjpE0/images/background.png?fit=max\u0026auto=format\u0026n=QQyAGObvvz8PjpE0\u0026q=85\u0026s=a68d0aa9f5eba448bcf67f5f410a6c90","color":{"dark":"#121212"}},"navbar":{"links":[{"href":"https://mixpeek.com/contact","label":"Talk to Engineers"}],"primary":{"type":"button","label":"Use Mixpeek","href":"https://studio.mixpeek.com/?utm_source=docs\u0026utm_medium=docs_navbar\u0026utm_campaign=mvs_onramp"}},"footer":{"socials":{"website":"https://mixpeek.com/","github":"https://github.com/mixpeek"}},"integrations":{"posthog":{"apiKey":"phc_x1G3IrW97qXoodTPWbyBK8dbZ3H7x5k5aZPCXmRvuWw","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["view","claude","chatgpt","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Homepage","icon":"house","href":"https://mixpeek.com"},{"anchor":"Engineering Blog","icon":"newspaper","href":"https://mixpeek.com/blog"},{"anchor":"API Swagger","icon":"file-code","href":"https://api.mixpeek.com/docs"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mixpeek","hasAudioNarration":false,"actualSubdomain":"mixpeek","customDomains":["docs.mixpeek.com"],"gitSource":{"type":"github","owner":"mixpeek","repo":"mixpeek","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeff52f552e9ea17aa8eeb5","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":536},{"language":"default","tag":"Documentation","count":195},{"language":"default","tag":"Advanced","count":140},{"language":"default","tag":"Administer","count":77},{"language":"default","tag":"Buckets","count":70},{"language":"default","tag":"Organization","count":62},{"language":"default","tag":"Retrievers","count":61},{"language":"default","tag":"Integrate \u0026 operate","count":59},{"language":"default","tag":"Build retrievers","count":55},{"language":"default","tag":"Apps","count":53}]},"assistantConfig":{"deflection":{"enabled":true,"email":"ethan@mixpeek.com"}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/clusters/partially-update-cluster","slug":"/api-reference/clusters/partially-update-cluster","pageMetadata":{"openapi":"patch /v1/clusters/{cluster_identifier}","title":"Partially Update Cluster","description":"This endpoint partially updates a cluster (PATCH operation).\n Only provided fields will be updated. At minimum, metadata can always be updated.\n Immutable fields like cluster_id, status, and computed fields cannot be modified.","href":"/api-reference/clusters/partially-update-cluster"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"This endpoint partially updates a cluster (PATCH operation).\\nOnly provided fields will be updated. At minimum, metadata can always be updated.\\nImmutable fields like cluster_id, status, and computed fields cannot be modified.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"patch /v1/clusters/{cluster_identifier}","title":"Partially Update Cluster","description":"This endpoint partially updates a cluster (PATCH operation).\n Only provided fields will be updated. At minimum, metadata can always be updated.\n Immutable fields like cluster_id, status, and computed fields cannot be modified.","href":"/api-reference/clusters/partially-update-cluster"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/mixpeek/fd427c04b3bf84bb/custom.js","/docs/_mintlify/custom/mixpeek/e878da59c725dc0d/scripts/test_first_touch.js"],"openApiReferenceData":{"operation":{"tags":["Clusters"],"summary":"Partially Update Cluster","description":"This endpoint partially updates a cluster (PATCH operation).\n Only provided fields will be updated. At minimum, metadata can always be updated.\n Immutable fields like cluster_id, status, and computed fields cannot be modified.","operationId":"patch_cluster_v1_clusters__cluster_identifier__patch","parameters":["26a7820b-b69f-4c3a-959f-b2d644814f3e"],"requestBody":"8fcb04e3-090c-4b05-b5b3-00fdbb341467","responses":{"200":"05a250c3-6942-44c0-bf66-4929d2a4a1eb","400":"2b871eb7-4713-41fb-afbb-71d032f6910d","401":"eda70920-f7c8-4aaf-9bbd-d240bb395664","403":"a81f8b2b-9fe9-4dc5-9d56-96617f2a9913","404":"819146f2-65fd-4ada-8c1b-3fbdfd4e229a","422":"cb62c2a3-cc8c-4ae3-b162-2d0a0340398c","429":"a2259c07-14b0-459a-aa88-8cf5b7584e6f","500":"be67cc28-6bd5-4557-9e9c-6da3fee3af84","503":"3a31ad79-9c5d-42a1-a13d-374e3afc23b9"},"x-mixpeek-plan":{"minimum_tier":null,"requires_selected_plan":false,"permissions":["write"]},"x-mixpeek-namespace-scoped":true,"security":["3f0d5301-3f15-4d84-9f00-dfe4012d78b4"],"method":"patch","type":"path","servers":["a3ca4d02-9041-4306-8eae-afdf7d554be4"],"path":"/v1/clusters/{cluster_identifier}","baseUrlOptions":["https://api.mixpeek.com"],"title":"Partially Update Cluster","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"26a7820b-b69f-4c3a-959f-b2d644814f3e":{"name":"cluster_identifier","in":"path","required":true,"schema":{"type":"string","description":"Cluster ID or name","title":"Cluster Identifier","isRequired":true,"uniqueKey":"","typeLabel":"string"},"description":"Cluster ID or name"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_name":{"oneOf":[{"type":"string","title":"Cluster Name","description":"Updated name for the cluster","uniqueKey":"cluster_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cluster Name","description":"Updated name for the cluster","uniqueKey":"cluster_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"cluster_name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Updated description for the cluster","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Updated description for the cluster","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Updated metadata for the cluster","additionalProperties":true,"uniqueKey":"metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Updated metadata for the cluster","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"Metadata · object | null"},"llm_labeling":{"oneOf":[{"type":"object","title":"LLMLabeling","description":"Updated LLM labeling configuration. Takes effect on the next `POST /v1/clusters/{id}/execute` — use this to correct a null `labeling_inputs` mapping that produced schema-metadata labels, without re-embedding or re-running HDBSCAN.","example":{"enabled":true,"include_keywords":true,"include_summary":true,"labeling_inputs":{"input_mappings":[{"input_key":"title","path":"title","source_type":"payload"},{"input_key":"description","path":"description","source_type":"payload"},{"input_key":"text","path":"text","source_type":"payload"}]},"model_name":"gpt-4o-mini-2024-07-18","provider":"openai"},"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether to generate labels for clusters using LLM. When enabled, clusters will have semantic labels like 'High-Performance Laptops' instead of generic labels like 'Cluster 0'.","default":false,"uniqueKey":"llm_labeling.oneOf.0.enabled","typeLabel":"boolean"},"labeling_inputs":{"oneOf":[{"type":"object","title":"LLMLabelingInput","description":"Input configuration for LLM labeling. Supports flexible input mappings for multimodal inputs (text, images, videos, audio). Use input_mappings for advanced multimodal labeling with providers like Gemini. If not provided (null/undefined), the full document payload is serialized as JSON and sent to the LLM — WARNING: in practice this produces schema-metadata labels (e.g. 'Mid-Timeline Video Events' with keywords like ['start_time', 'end_time']) because the LLM describes whatever field names it sees. For meaningful labels, set input_mappings that point at semantic fields (title, description, thumbnail_url, document_blobs[].url for image/video content) rather than relying on the default.","required":["input_mappings"],"properties":{"input_mappings":{"items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"Key used in the constructed inputs payload.","isRequired":true,"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].input_key","typeLabel":"string"},"source_type":{"oneOf":[{"type":"string","title":"InputSourceType","description":"Source of the value (payload, literal, vector).","enum":["payload","literal","vector","blob"],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Source of the value (payload, literal, vector).","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type","typeLabel":"enum\u003cstring> | null"},"path":{"oneOf":[{"type":"string","title":"Path","description":"Dot-notation path when source_type is PAYLOAD or VECTOR. PAYLOAD paths resolve from the document's ROOT fields — each document/source_document dict IS the payload (e.g. path 'text' reads {'text': ...}); a {'payload': {...}} envelope is also accepted as a fallback.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"Dot-notation path when source_type is PAYLOAD or VECTOR. PAYLOAD paths resolve from the document's ROOT fields — each document/source_document dict IS the payload (e.g. path 'text' reads {'text': ...}); a {'payload': {...}} envelope is also accepted as a fallback.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path","typeLabel":"string | null"},"override":{"oneOf":[{"title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override.oneOf.0","typeLabel":"any"},{"type":"null","title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override","typeLabel":"any | null"}},"type":"object","required":["input_key"],"title":"InputMapping","description":"Declarative mapping for building inputs from various sources.\n\n- input_key: The key used in the constructed inputs payload\n- source_type: Where to fetch the value (payload, literal, vector)\n- path: Dot-notation path when source_type is PAYLOAD or VECTOR\n- override: Static value when source_type is LITERAL","examples":[{"input_key":"query_text","path":"content.title","source_type":"payload"},{"input_key":"lang","override":"en","source_type":"literal"},{"input_key":"image_vector","path":"features.clip_vit_l_14","source_type":"vector"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX]","typeLabel":"InputMapping · object"},"type":"array","minItems":1,"title":"Input Mappings","description":"Flexible input mappings for constructing LLM context. Supports multimodal inputs (text, image_url, video_url, audio_url). Each mapping specifies how to extract data from document payloads. At least one input mapping is required.","isRequired":true,"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings","typeLabel":"InputMapping · object[]"}},"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0","typeLabel":"LLMLabelingInput · object"},{"type":"null","description":"Input configuration for LLM labeling. Supports flexible input mappings for multimodal inputs (text, images, videos, audio). Use input_mappings for advanced multimodal labeling with providers like Gemini. If not provided (null/undefined), the full document payload is serialized as JSON and sent to the LLM — WARNING: in practice this produces schema-metadata labels (e.g. 'Mid-Timeline Video Events' with keywords like ['start_time', 'end_time']) because the LLM describes whatever field names it sees. For meaningful labels, set input_mappings that point at semantic fields (title, description, thumbnail_url, document_blobs[].url for image/video content) rather than relying on the default.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs","typeLabel":"LLMLabelingInput · object | null"},"provider":{"oneOf":[{"type":"string","title":"LLMProvider","description":"LLM provider to use for labeling. Supported providers:\n- openai: GPT models (GPT-4o, GPT-4o-mini, GPT-4.1, O3-mini)\n- google: Gemini models (Gemini 2.5 Flash, Gemini 1.5 Flash)\n- anthropic: Claude models (Claude 3.5 Sonnet, Claude 3.5 Haiku)\n- typesafe: Jev (jev-latest). Picks each cluster's label from candidate_labels with a calibrated probability instead of writing one. Text only: it reads the representative documents' text fields.\n\nIf not specified, automatically inferred from model_name.","enum":["openai","google","anthropic","typesafe"],"example":"openai","uniqueKey":"llm_labeling.oneOf.0.provider.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"LLM provider to use for labeling. Supported providers:\n- openai: GPT models (GPT-4o, GPT-4o-mini, GPT-4.1, O3-mini)\n- google: Gemini models (Gemini 2.5 Flash, Gemini 1.5 Flash)\n- anthropic: Claude models (Claude 3.5 Sonnet, Claude 3.5 Haiku)\n- typesafe: Jev (jev-latest). Picks each cluster's label from candidate_labels with a calibrated probability instead of writing one. Text only: it reads the representative documents' text fields.\n\nIf not specified, automatically inferred from model_name.","example":"openai","uniqueKey":"llm_labeling.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.provider","typeLabel":"enum\u003cstring> | null"},"model_name":{"oneOf":[{"type":"string","title":"OpenAIModel","description":"OpenAI model identifiers for LLM generation.\n\nModels listed in order of capability and cost (highest to lowest).\nAll models support vision (images) except O3-mini.\n\nValues:\n GPT_4O: Latest GPT-4 Omni model (2024-08-06)\n - Use for: Production, highest quality generation\n - Context: 128K tokens\n - Vision: Yes\n - Cost: $2.50/1M input, $10/1M output\n - Performance: 200-500ms per request\n - When to use: Need best quality, willing to pay premium\n\n GPT_41: GPT-4.1 (2025-04-14)\n - Use for: Future-proofed pipelines\n - Context: 128K tokens\n - Vision: Yes\n - Cost: TBD (expected similar to GPT-4o)\n - When to use: Want latest model features\n\n GPT_4O_MINI: Smaller, faster GPT-4 Omni (2024-07-18)\n - Use for: High-volume, cost-sensitive workloads\n - Context: 128K tokens\n - Vision: Yes\n - Cost: $0.15/1M input, $0.60/1M output\n - Performance: 100-200ms per request\n - When to use: Good balance of quality and cost\n\n GPT_41_MINI: Smaller GPT-4.1 (2025-04-14)\n - Use for: Future cost-optimized pipelines\n - Context: 128K tokens\n - Vision: Yes\n - Cost: TBD (expected similar to GPT-4o-mini)\n - When to use: Want latest features at lower cost\n\n O3_MINI: Reasoning-optimized model (2025-01-31)\n - Use for: Complex reasoning, math, code\n - Context: 200K tokens\n - Vision: No\n - Cost: TBD\n - When to use: Need advanced reasoning capabilities\n\nExamples:\n - Use GPT_4O for caption generation with images (best quality)\n - Use GPT_4O_MINI for high-volume video scene summarization (cost-effective)\n - Use O3_MINI for complex entity extraction requiring reasoning","enum":["gpt-4o-2024-08-06","gpt-4o-mini-2024-07-18","gpt-4.1-2025-04-14","gpt-4.1-mini-2025-04-14","o3-mini-2025-01-31"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","title":"GoogleModel","description":"Google Gemini model identifiers for LLM generation.\n\nGemini models excel at multimodal understanding with best-in-class video support.\nAll models support text, images, video, audio, and PDFs.\n\nValues:\n GEMINI_3_5_FLASH_LITE: Gemini 3.5 Flash Lite model (recommended, the default)\n - Use for: Fastest generation, cost-effective multimodal\n - Context: 1M tokens\n - Multimodal: Text, images, video, audio, PDFs\n - When to use: Default choice for all Gemini use cases\n\n GEMINI_2_5_FLASH_LITE: Gemini 2.5 Flash Lite model\n - Kept so stored configs that name it still validate. The Gemini\n developer API no longer serves it to new keys; Vertex does.\n\n GEMINI_2_5_PRO: Gemini 2.5 Pro model\n - Use for: Higher quality reasoning, complex tasks\n - Context: 1M tokens\n\n GEMINI_2_5_FLASH: Gemini 2.5 Flash model\n - Kept for backward compatibility.\n\n GEMINI_3_1_FLASH_LITE: Gemini 3.1 Flash-Lite model\n - Use for: Fast, low-cost generation on the 3.1 generation","enum":["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-3.1-flash-lite","gemini-3.5-flash-lite"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.1","typeLabel":"enum\u003cstring>"},{"type":"string","title":"AnthropicModel","description":"Anthropic Claude model identifiers for LLM generation.\n\nClaude models excel at long context, complex reasoning, and safety.\nAll models support text and images.\n\nValues:\n CLAUDE_3_5_SONNET: Most capable Claude model\n - Use for: Complex reasoning, long documents, safety-critical\n - Context: 200K tokens\n - Vision: Yes\n - Cost: $3/1M input, $15/1M output\n - Performance: 300-800ms per request\n - When to use: Need best reasoning, safety, or long context\n\n CLAUDE_3_5_HAIKU: Fast, cost-effective Claude model\n - Use for: High-volume, quick summaries\n - Context: 200K tokens\n - Vision: Yes\n - Cost: $0.25/1M input, $1.25/1M output\n - Performance: 100-300ms per request\n - When to use: Good balance of quality and cost\n\nExamples:\n - Use CLAUDE_3_5_SONNET for complex entity extraction from contracts (best reasoning)\n - Use CLAUDE_3_5_HAIKU for high-volume content moderation (cost-effective)","enum":["claude-sonnet-4-5-20250929","claude-haiku-4-5-20251001","claude-3-5-sonnet-20241022","claude-3-5-haiku-20241022"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.2","typeLabel":"enum\u003cstring>"},{"type":"string","title":"TypeSafeModel","description":"TypeSafe AI Jev model identifiers.\n\nJev answers typed questions (choice, score, yes/no) with calibrated\nprobabilities. It reads text only and does not generate text, so it fits\ndecision steps: classification, filtering, relevance scoring, and choosing\na label or cluster branch from a fixed set.\n\nValues:\n JEV_LATEST: Most recent stable Jev release (moves on new releases)\n JEV_PREVIEW: Most recent Jev release, stable or not\n JEV_1_13: Pinned Jev 1.13; use when you tuned thresholds on it","enum":["jev-latest","jev-preview","jev-1.13.0"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.3","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Model Name","description":"REQUIRED when enabled=True. Specific LLM model to use for cluster labeling. All models are defined as enums for type safety.\n\nOpenAI Models (provider='openai'):\n- gpt-4o-2024-08-06: Highest quality, best for production ($2.50/$10 per 1M tokens)\n- gpt-4o-mini-2024-07-18: Cost-effective, recommended for most use cases ($0.15/$0.60 per 1M tokens)\n- gpt-4.1-2025-04-14: Latest model, future-proofed\n- gpt-4.1-mini-2025-04-14: Latest cost-optimized model\n- o3-mini-2025-01-31: Advanced reasoning, best for complex clustering\n\nGoogle Models (provider='google'):\n- gemini-3.5-flash-lite: Fastest, latest multimodal model, recommended ($0.30/$2.50 per 1M tokens)\n\nAnthropic Models (provider='anthropic'):\n- claude-3-5-sonnet-20241022: Best reasoning, 200K context ($3/$15 per 1M tokens)\n- claude-3-5-haiku-20241022: Fast, cost-effective ($0.25/$1.25 per 1M tokens)\n\nRecommendation:\n- Use gemini-3.5-flash-lite (DEFAULT) - multimodal support\n- Use gpt-4o-mini-2024-07-18 for OpenAI compatibility\n- Use gpt-4o-2024-08-06 for highest quality when cost is not a concern","example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.4","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.model_name","typeLabel":"enum\u003cstring> · enum\u003cstring> · enum\u003cstring> · enum\u003cstring> · null"},"include_summary":{"type":"boolean","title":"Include Summary","description":"Whether to generate cluster summaries","default":true,"uniqueKey":"llm_labeling.oneOf.0.include_summary","typeLabel":"boolean"},"include_keywords":{"type":"boolean","title":"Include Keywords","description":"Whether to extract keywords for clusters","default":true,"uniqueKey":"llm_labeling.oneOf.0.include_keywords","typeLabel":"boolean"},"max_samples_per_cluster":{"oneOf":[{"type":"integer","title":"Max Samples Per Cluster","description":"Maximum representative documents to send to LLM per cluster for semantic analysis. When null (default), automatically scales based on cluster size and spread — smaller/tighter clusters get fewer samples, larger/sparser clusters get more (range 3-20). Set explicitly to override with a fixed value.","maximum":20,"minimum":1,"uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Samples Per Cluster","description":"Maximum representative documents to send to LLM per cluster for semantic analysis. When null (default), automatically scales based on cluster size and spread — smaller/tighter clusters get fewer samples, larger/sparser clusters get more (range 3-20). Set explicitly to override with a fixed value.","uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster","typeLabel":"integer | null"},"sample_text_max_length":{"type":"integer","maximum":500,"minimum":50,"title":"Sample Text Max Length","description":"Maximum characters per document sample text","default":200,"uniqueKey":"llm_labeling.oneOf.0.sample_text_max_length","typeLabel":"integer"},"sample_selection_strategy":{"type":"string","enum":["nearest","representative"],"title":"Sample Selection Strategy","description":"How representative documents are chosen for the labeling LLM. 'nearest' (default): the N members closest to the cluster centroid — maximally prototypical, but adjacent clusters can yield near-identical sample sets and therefore near-identical labels. 'representative': a mixed panel of ~40% nearest-to-centroid, ~40% diversity picks (farthest-point coverage of the cluster's extent), and ~20% high-density examples — differentiates similar clusters at the same sample count and LLM cost.","default":"nearest","uniqueKey":"llm_labeling.oneOf.0.sample_selection_strategy","typeLabel":"enum\u003cstring>"},"use_embedding_dedup":{"type":"boolean","title":"Use Embedding Dedup","description":"Enable embedding-based label deduplication to prevent near-duplicate labels (requires sentence-transformers)","default":true,"uniqueKey":"llm_labeling.oneOf.0.use_embedding_dedup","typeLabel":"boolean"},"embedding_similarity_threshold":{"type":"number","maximum":1,"minimum":0.5,"title":"Embedding Similarity Threshold","description":"Cosine similarity threshold for duplicate label detection (labels above this are considered duplicates)","default":0.8,"uniqueKey":"llm_labeling.oneOf.0.embedding_similarity_threshold","typeLabel":"number"},"cache_ttl_seconds":{"type":"integer","maximum":2592000,"minimum":0,"title":"Cache Ttl Seconds","description":"Time-to-live for cached labels in seconds. Labels for clusters with identical representative documents will be reused within this TTL window, reducing LLM API costs. Default: 604800 (7 days). Set to 0 to disable caching.","default":604800,"uniqueKey":"llm_labeling.oneOf.0.cache_ttl_seconds","typeLabel":"integer"},"labeling_context":{"oneOf":[{"type":"string","title":"Labeling Context","description":"OPTIONAL. Freeform domain context about the data being clustered, injected into the labeling prompt as a clearly-delimited 'Domain context provided by the user' block. Unlike custom_prompt, this does NOT replace the default prompt — it grounds the default labeler so labels use the right domain vocabulary. Example: 'These are scenes from pharmaceutical TV ads' turns generic labels like 'People Talking Outdoors' into 'Patient Testimonial Scenes'. Max 2000 characters.","maxLength":2000,"example":"These are scenes from pharmaceutical TV advertisements","uniqueKey":"llm_labeling.oneOf.0.labeling_context.oneOf.0","typeLabel":"string"},{"type":"null","title":"Labeling Context","description":"OPTIONAL. Freeform domain context about the data being clustered, injected into the labeling prompt as a clearly-delimited 'Domain context provided by the user' block. Unlike custom_prompt, this does NOT replace the default prompt — it grounds the default labeler so labels use the right domain vocabulary. Example: 'These are scenes from pharmaceutical TV ads' turns generic labels like 'People Talking Outdoors' into 'Patient Testimonial Scenes'. Max 2000 characters.","example":"These are scenes from pharmaceutical TV advertisements","uniqueKey":"llm_labeling.oneOf.0.labeling_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_context","typeLabel":"string | null"},"custom_prompt":{"oneOf":[{"type":"string","title":"Custom Prompt","description":"OPTIONAL. Custom prompt template for LLM labeling. NOT REQUIRED - uses default discriminative prompt if not provided. When provided, completely replaces the default prompt. Your custom prompt receives cluster information but you must format it yourself. Use when: - Need domain-specific labeling (e.g., medical, legal, technical) - Want different label format (e.g., emoji labels, code names) - Require specific output structure - Have custom business logic for categorization Default prompt includes: cluster document samples, forbidden labels for uniqueness, and JSON response format. See engine/clusters/labeling/prompts.py for reference. Example: 'Analyze these product clusters and generate SHORT category names (2-3 words max) focusing on product type and price range. Return JSON: [{\"cluster_id\": \"cl_0\", \"label\": \"...\"}]'","example":"Analyze these document clusters and generate technical labels (2-3 words). Focus on programming languages and frameworks mentioned. Return JSON: [{'cluster_id': 'cl_0', 'label': '...', 'keywords': [...]}]","uniqueKey":"llm_labeling.oneOf.0.custom_prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Custom Prompt","description":"OPTIONAL. Custom prompt template for LLM labeling. NOT REQUIRED - uses default discriminative prompt if not provided. When provided, completely replaces the default prompt. Your custom prompt receives cluster information but you must format it yourself. Use when: - Need domain-specific labeling (e.g., medical, legal, technical) - Want different label format (e.g., emoji labels, code names) - Require specific output structure - Have custom business logic for categorization Default prompt includes: cluster document samples, forbidden labels for uniqueness, and JSON response format. See engine/clusters/labeling/prompts.py for reference. Example: 'Analyze these product clusters and generate SHORT category names (2-3 words max) focusing on product type and price range. Return JSON: [{\"cluster_id\": \"cl_0\", \"label\": \"...\"}]'","example":"Analyze these document clusters and generate technical labels (2-3 words). Focus on programming languages and frameworks mentioned. Return JSON: [{'cluster_id': 'cl_0', 'label': '...', 'keywords': [...]}]","uniqueKey":"llm_labeling.oneOf.0.custom_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.custom_prompt","typeLabel":"string | null"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","additionalProperties":true,"uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.response_shape","typeLabel":"string | Response Shape · object | null"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","description":"Provider-specific parameters forwarded to the LLM service. For OpenAI: temperature, max_tokens, top_p, json_output, etc. For Google: temperature, top_k, max_output_tokens, json_output, etc.","uniqueKey":"llm_labeling.oneOf.0.parameters","typeLabel":"Parameters · object"},"candidate_labels":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.0","typeLabel":"string[]"},{"type":"object","title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties","typeLabel":"string | null"},"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1","typeLabel":"Candidate Labels · object"},{"type":"null","title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.2","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels","typeLabel":"string[] | Candidate Labels · object | null"}},"uniqueKey":"llm_labeling.oneOf.0","typeLabel":"LLMLabeling · object"},{"type":"null","description":"Updated LLM labeling configuration. Takes effect on the next `POST /v1/clusters/{id}/execute` — use this to correct a null `labeling_inputs` mapping that produced schema-metadata labels, without re-embedding or re-running HDBSCAN.","uniqueKey":"llm_labeling.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling","typeLabel":"LLMLabeling · object | null"},"filters":{"oneOf":[{"type":"object","title":"Filters","description":"Updated pre-filter for clustering input documents. Overrides the cluster's stored filter on subsequent execute calls.","additionalProperties":true,"uniqueKey":"filters.oneOf.0","typeLabel":"Filters · object"},{"type":"null","title":"Filters","description":"Updated pre-filter for clustering input documents. Overrides the cluster's stored filter on subsequent execute calls.","uniqueKey":"filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters","typeLabel":"Filters · object | null"},"face_cluster_merge":{"oneOf":[{"type":"object","title":"FaceClusterMergeConfig","description":"Updated post-HDBSCAN face-identity merge configuration. Takes effect on the next `POST /v1/clusters/{id}/execute`. Pass an object with enabled=false to turn the merge pass off without removing the config; pass null in the patch to leave the stored value untouched.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Run the merge pass. Set False to disable without removing the config.","default":true,"uniqueKey":"face_cluster_merge.oneOf.0.enabled","typeLabel":"boolean"},"centroid_cosine_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Centroid Cosine Threshold","description":"Minimum centroid cosine similarity for a candidate merge.","default":0.55,"uniqueKey":"face_cluster_merge.oneOf.0.centroid_cosine_threshold","typeLabel":"number"},"bbox_iou_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Bbox Iou Threshold","description":"Minimum bbox IoU on overlapping frames to satisfy the spatial half.","default":0.4,"uniqueKey":"face_cluster_merge.oneOf.0.bbox_iou_threshold","typeLabel":"number"},"scene_jaccard_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Scene Jaccard Threshold","description":"Minimum Jaccard similarity of scene-id sets to satisfy the spatial half.","default":0.3,"uniqueKey":"face_cluster_merge.oneOf.0.scene_jaccard_threshold","typeLabel":"number"},"bbox_field":{"type":"string","title":"Bbox Field","description":"Document-payload field holding the face bbox (list/tuple of 4 floats).","default":"bbox","uniqueKey":"face_cluster_merge.oneOf.0.bbox_field","typeLabel":"string"},"frame_field":{"type":"string","title":"Frame Field","description":"Document-payload field holding the frame identifier used to pair bboxes.","default":"frame_number","uniqueKey":"face_cluster_merge.oneOf.0.frame_field","typeLabel":"string"},"scene_field":{"type":"string","title":"Scene Field","description":"Document-payload field holding the scene identifier used for Jaccard.","default":"scene_id","uniqueKey":"face_cluster_merge.oneOf.0.scene_field","typeLabel":"string"}},"uniqueKey":"face_cluster_merge.oneOf.0","typeLabel":"FaceClusterMergeConfig · object"},{"type":"null","description":"Updated post-HDBSCAN face-identity merge configuration. Takes effect on the next `POST /v1/clusters/{id}/execute`. Pass an object with enabled=false to turn the merge pass off without removing the config; pass null in the patch to leave the stored value untouched.","uniqueKey":"face_cluster_merge.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_cluster_merge","typeLabel":"FaceClusterMergeConfig · object | null"},"sample_size":{"oneOf":[{"type":"integer","title":"Sample Size","description":"Updated per-execution document cap. Takes effect on the next `POST /v1/clusters/{id}/execute`. Omit to leave the stored value untouched; set to an integer to change it. KMeans supports up to 1M; O(N²) algorithms are capped at 100K by the engine.","maximum":1000000,"uniqueKey":"sample_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Sample Size","description":"Updated per-execution document cap. Takes effect on the next `POST /v1/clusters/{id}/execute`. Omit to leave the stored value untouched; set to an integer to change it. KMeans supports up to 1M; O(N²) algorithms are capped at 100K by the engine.","uniqueKey":"sample_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"sample_size","typeLabel":"integer | null"},"algorithm_params":{"oneOf":[{"type":"object","title":"Algorithm Params","description":"Updated algorithm parameters (e.g. min_cluster_size, min_samples for HDBSCAN). Takes effect on the next `POST /v1/clusters/{id}/execute`.","additionalProperties":true,"uniqueKey":"algorithm_params.oneOf.0","typeLabel":"Algorithm Params · object"},{"type":"null","title":"Algorithm Params","description":"Updated algorithm parameters (e.g. min_cluster_size, min_samples for HDBSCAN). Takes effect on the next `POST /v1/clusters/{id}/execute`.","uniqueKey":"algorithm_params.oneOf.1","typeLabel":"null"}],"uniqueKey":"algorithm_params","typeLabel":"Algorithm Params · object | null"},"source_cluster_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"source_cluster_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Source Cluster Ids","description":"Updated source clusters of a composite cluster. Each must be a vector cluster in this namespace with this cluster's feature_uris, and a cluster cannot name itself. The cluster's input collections become the sources' input collections. Takes effect on the next `POST /v1/clusters/{id}/execute`.","minItems":1,"uniqueKey":"source_cluster_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Source Cluster Ids","description":"Updated source clusters of a composite cluster. Each must be a vector cluster in this namespace with this cluster's feature_uris, and a cluster cannot name itself. The cluster's input collections become the sources' input collections. Takes effect on the next `POST /v1/clusters/{id}/execute`.","uniqueKey":"source_cluster_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"source_cluster_ids","typeLabel":"string[] | null"},"layout_stability":{"oneOf":[{"type":"string","title":"Layout Stability","description":"Updated layout-stability mode: 'align' keeps the map stable across runs (default behavior), 'transform' reuses the previous run's saved projection when compatible, 'none' re-layouts every run. Takes effect on the next `POST /v1/clusters/{id}/execute`. Omit to leave the stored value untouched.","enum":["none","transform","align"],"uniqueKey":"layout_stability.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Layout Stability","description":"Updated layout-stability mode: 'align' keeps the map stable across runs (default behavior), 'transform' reuses the previous run's saved projection when compatible, 'none' re-layouts every run. Takes effect on the next `POST /v1/clusters/{id}/execute`. Omit to leave the stored value untouched.","uniqueKey":"layout_stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"layout_stability","typeLabel":"enum\u003cstring> | null"}},"type":"object","title":"PatchClusterRequest","description":"Request model for partially updating a cluster (PATCH operation).","uniqueKey":"","typeLabel":"PatchClusterRequest · object"},"examples":{"Example":{"title":"Example","value":{"cluster_name":"\u003cstring>","description":"\u003cstring>","metadata":{},"llm_labeling":{"enabled":true,"include_keywords":true,"include_summary":true,"labeling_inputs":{"input_mappings":[{"input_key":"title","path":"title","source_type":"payload"},{"input_key":"description","path":"description","source_type":"payload"},{"input_key":"text","path":"text","source_type":"payload"}]},"model_name":"gpt-4o-mini-2024-07-18","provider":"openai"},"filters":{},"face_cluster_merge":{"enabled":true,"centroid_cosine_threshold":0.55,"bbox_iou_threshold":0.4,"scene_jaccard_threshold":0.3,"bbox_field":"bbox","frame_field":"frame_number","scene_field":"scene_id"},"sample_size":123,"algorithm_params":{},"source_cluster_ids":["\u003cstring>"]}}},"exampleType":"generated"}},"description":"Keys this body does not declare are refused with 422 extra_forbidden naming the accepted keys (since 2026-11-02).","x-unknown-keys":{"until":"2026-11-02","then":"422 extra_forbidden"},"exampleType":"generated"},"responses":{"05a250c3-6942-44c0-bf66-4929d2a4a1eb":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"collection_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"collection_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Collection Ids","description":"Collections to cluster together","minItems":1,"uniqueKey":"collection_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Collection Ids","description":"Collections to cluster together","uniqueKey":"collection_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"collection_ids","typeLabel":"string[] | null"},"source_cluster_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"source_cluster_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Source Cluster Ids","description":"Makes this a composite cluster: it groups the centroids of these clusters' runs instead of documents. Each id must be a vector cluster in this namespace with the same feature_uris as this one. Executing a composite cluster without a mode runs mode 'composite' over the newest completed run of each source cluster, one per partition (a partition is a run's filters). Vector clusters only.","minItems":1,"uniqueKey":"source_cluster_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Source Cluster Ids","description":"Makes this a composite cluster: it groups the centroids of these clusters' runs instead of documents. Each id must be a vector cluster in this namespace with the same feature_uris as this one. Executing a composite cluster without a mode runs mode 'composite' over the newest completed run of each source cluster, one per partition (a partition is a run's filters). Vector clusters only.","uniqueKey":"source_cluster_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"source_cluster_ids","typeLabel":"string[] | null"},"cluster_name":{"oneOf":[{"type":"string","title":"Cluster Name","description":"Optional human-friendly name for the clustering job","uniqueKey":"cluster_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cluster Name","description":"Optional human-friendly name for the clustering job","uniqueKey":"cluster_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"cluster_name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Optional description of the cluster, stored with it","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Optional description of the cluster, stored with it","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Additional user-defined metadata for the cluster","uniqueKey":"metadata","typeLabel":"Metadata · object"},"cluster_type":{"type":"string","enum":["vector","attribute"],"title":"ClusterType","description":"Vector or attribute clustering","default":"vector","uniqueKey":"cluster_type","typeLabel":"enum\u003cstring>"},"vector_config":{"oneOf":[{"type":"object","title":"VectorBasedConfig","description":"Required when cluster_type is 'vector'","required":["clustering_method"],"example":{"algorithm_params":{"min_cluster_size":10,"min_samples":5},"clustering_method":"hdbscan","feature_uri":"mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding","sample_size":1000},"properties":{"clustering_method":{"type":"string","enum":["kmeans","dbscan","hdbscan","agglomerative","spectral","gaussian_mixture","mean_shift","optics","leiden","evoc","attribute_based","auto"],"title":"ClusteringAlgorithm","description":"Clustering algorithm to use","isRequired":true,"uniqueKey":"vector_config.oneOf.0.clustering_method","typeLabel":"enum\u003cstring>"},"feature_uri":{"oneOf":[{"type":"string","title":"Feature Uri","description":"DEPRECATED: Use feature_uris instead. Canonical feature URI for the vector embedding to cluster. Format: 'mixpeek://{extractor}@{version}/{output}'. For multi-feature clustering, use feature_uris (plural) instead.","example":"mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding","uniqueKey":"vector_config.oneOf.0.feature_uri.oneOf.0","typeLabel":"string"},{"type":"null","title":"Feature Uri","description":"DEPRECATED: Use feature_uris instead. Canonical feature URI for the vector embedding to cluster. Format: 'mixpeek://{extractor}@{version}/{output}'. For multi-feature clustering, use feature_uris (plural) instead.","example":"mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding","uniqueKey":"vector_config.oneOf.0.feature_uri.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.feature_uri","typeLabel":"string | null"},"feature_uris":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"vector_config.oneOf.0.feature_uris.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Feature Uris","description":"RECOMMENDED. List of feature URIs to cluster. Format: 'mixpeek://{extractor}@{version}/{output}'. For single-feature clustering, provide a list with one element. For multi-feature clustering, provide multiple feature URIs. Each feature must exist in all input collections.","minItems":1,"example":["mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1"],"uniqueKey":"vector_config.oneOf.0.feature_uris.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Feature Uris","description":"RECOMMENDED. List of feature URIs to cluster. Format: 'mixpeek://{extractor}@{version}/{output}'. For single-feature clustering, provide a list with one element. For multi-feature clustering, provide multiple feature URIs. Each feature must exist in all input collections.","example":["mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1"],"uniqueKey":"vector_config.oneOf.0.feature_uris.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.feature_uris","typeLabel":"string[] | null"},"sample_size":{"oneOf":[{"type":"integer","title":"Sample Size","description":"Number of samples to use for clustering. If not set, defaults are applied per algorithm to prevent out-of-memory: HDBSCAN/DBSCAN/OPTICS: 50,000 (O(N²) memory), Spectral/Agglomerative: 50,000, KMeans/GaussianMixture/MeanShift: 100,000. KMeans/GMM hard max: 1,000,000; O(N²) algorithms: 100,000.","maximum":1000000,"uniqueKey":"vector_config.oneOf.0.sample_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Sample Size","description":"Number of samples to use for clustering. If not set, defaults are applied per algorithm to prevent out-of-memory: HDBSCAN/DBSCAN/OPTICS: 50,000 (O(N²) memory), Spectral/Agglomerative: 50,000, KMeans/GaussianMixture/MeanShift: 100,000. KMeans/GMM hard max: 1,000,000; O(N²) algorithms: 100,000.","uniqueKey":"vector_config.oneOf.0.sample_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.sample_size","typeLabel":"integer | null"},"kmeans_parameters":{"oneOf":[{"type":"object","title":"KMeansParams","description":"Parameters for K-Means clustering algorithm.","properties":{"n_clusters":{"type":"integer","maximum":1000,"minimum":2,"title":"N Clusters","description":"Number of clusters to form","default":8,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.n_clusters","typeLabel":"integer"},"max_iter":{"type":"integer","maximum":10000,"minimum":1,"title":"Max Iter","description":"Maximum number of iterations","default":300,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.max_iter","typeLabel":"integer"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.random_state","typeLabel":"integer | null"},"n_init":{"type":"integer","minimum":1,"title":"N Init","description":"Number of times k-means will run with different centroid seeds","default":10,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.n_init","typeLabel":"integer"},"tol":{"type":"number","exclusiveMinimum":0,"title":"Tol","description":"Tolerance for convergence","default":0.0001,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.tol","typeLabel":"number"},"init":{"type":"string","title":"Init","description":"Method for initialization ('k-means++' or 'random')","default":"k-means++","uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.init","typeLabel":"string"},"verbose":{"type":"integer","minimum":0,"title":"Verbose","description":"Verbosity mode","default":0,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.verbose","typeLabel":"integer"},"copy_x":{"type":"boolean","title":"Copy X","description":"If True, the original data is not modified","default":true,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.copy_x","typeLabel":"boolean"},"algorithm":{"type":"string","title":"Algorithm","description":"K-means algorithm to use ('lloyd', 'elkan', or 'auto')","default":"lloyd","uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0.algorithm","typeLabel":"string"}},"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.0","typeLabel":"KMeansParams · object"},{"type":"object","title":"Kmeans Parameters","description":"Parameters for K-means clustering (deprecated, use algorithm_params)","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.1","typeLabel":"Kmeans Parameters · object"},{"type":"null","title":"Kmeans Parameters","description":"Parameters for K-means clustering (deprecated, use algorithm_params)","uniqueKey":"vector_config.oneOf.0.kmeans_parameters.oneOf.2","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.kmeans_parameters","typeLabel":"KMeansParams · object | Kmeans Parameters · object | null"},"dbscan_parameters":{"oneOf":[{"type":"object","title":"DBSCANParams","description":"Parameters for DBSCAN clustering algorithm.","properties":{"eps":{"type":"number","exclusiveMinimum":0,"title":"Eps","description":"Maximum distance between two samples for one to be considered in the neighborhood of the other","default":0.5,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.eps","typeLabel":"number"},"min_samples":{"type":"integer","minimum":1,"title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point","default":5,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.min_samples","typeLabel":"integer"},"metric":{"type":"string","title":"Metric","description":"Metric to use for distance computation","default":"euclidean","uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.metric","typeLabel":"string"},"metric_params":{"additionalProperties":true,"type":"object","title":"Metric Params","description":"Additional keyword arguments for the metric function","uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.metric_params","typeLabel":"Metric Params · object"},"algorithm":{"type":"string","title":"Algorithm","description":"Algorithm to compute pointwise distances and find nearest neighbors ('auto', 'ball_tree', 'kd_tree', 'brute')","default":"auto","uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.algorithm","typeLabel":"string"},"leaf_size":{"type":"integer","minimum":1,"title":"Leaf Size","description":"Leaf size passed to BallTree or KDTree","default":30,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.leaf_size","typeLabel":"integer"},"p":{"type":"number","exclusiveMinimum":0,"title":"P","description":"The power of the Minkowski metric to be used to calculate distance between points","default":2,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.p","typeLabel":"number"},"n_jobs":{"type":"integer","title":"N Jobs","description":"The number of parallel jobs to run (-1 means using all processors)","default":1,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0.n_jobs","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.0","typeLabel":"DBSCANParams · object"},{"type":"object","title":"Dbscan Parameters","description":"Parameters for DBSCAN clustering (deprecated, use algorithm_params)","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.1","typeLabel":"Dbscan Parameters · object"},{"type":"null","title":"Dbscan Parameters","description":"Parameters for DBSCAN clustering (deprecated, use algorithm_params)","uniqueKey":"vector_config.oneOf.0.dbscan_parameters.oneOf.2","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.dbscan_parameters","typeLabel":"DBSCANParams · object | Dbscan Parameters · object | null"},"hdbscan_parameters":{"oneOf":[{"type":"object","title":"HDBSCANParams","description":"Parameters for HDBSCAN clustering algorithm.","properties":{"min_cluster_size":{"type":"integer","minimum":2,"title":"Min Cluster Size","description":"Minimum number of samples in a cluster","default":5,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.min_cluster_size","typeLabel":"integer"},"min_samples":{"oneOf":[{"type":"integer","title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point. Defaults to min_cluster_size if None","minimum":1,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.min_samples.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point. Defaults to min_cluster_size if None","uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.min_samples.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.min_samples","typeLabel":"integer | null"},"cluster_selection_epsilon":{"type":"number","minimum":0,"title":"Cluster Selection Epsilon","description":"A distance threshold for cluster selection. Clusters below this value will be merged","default":0,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.cluster_selection_epsilon","typeLabel":"number"},"max_cluster_size":{"oneOf":[{"type":"integer","title":"Max Cluster Size","description":"Maximum number of samples in a cluster. Clusters above this size will be split","minimum":1,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.max_cluster_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Cluster Size","description":"Maximum number of samples in a cluster. Clusters above this size will be split","uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.max_cluster_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.max_cluster_size","typeLabel":"integer | null"},"metric":{"type":"string","title":"Metric","description":"Metric to use for distance computation","default":"euclidean","uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.metric","typeLabel":"string"},"alpha":{"type":"number","exclusiveMinimum":0,"title":"Alpha","description":"A distance scaling parameter","default":1,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.alpha","typeLabel":"number"},"cluster_selection_method":{"type":"string","title":"Cluster Selection Method","description":"Method to select clusters from the condensed tree ('eom' or 'leaf')","default":"eom","uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.cluster_selection_method","typeLabel":"string"},"allow_single_cluster":{"type":"boolean","title":"Allow Single Cluster","description":"Allow HDBSCAN to find only a single cluster","default":false,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.allow_single_cluster","typeLabel":"boolean"},"prediction_data":{"type":"boolean","title":"Prediction Data","description":"Whether to generate extra data for predicting cluster membership","default":false,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.prediction_data","typeLabel":"boolean"},"match_reference_implementation":{"type":"boolean","title":"Match Reference Implementation","description":"Whether to match the reference implementation exactly","default":false,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0.match_reference_implementation","typeLabel":"boolean"}},"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.0","typeLabel":"HDBSCANParams · object"},{"type":"object","title":"Hdbscan Parameters","description":"Parameters for HDBSCAN clustering (deprecated, use algorithm_params)","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.1","typeLabel":"Hdbscan Parameters · object"},{"type":"null","title":"Hdbscan Parameters","description":"Parameters for HDBSCAN clustering (deprecated, use algorithm_params)","uniqueKey":"vector_config.oneOf.0.hdbscan_parameters.oneOf.2","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.hdbscan_parameters","typeLabel":"HDBSCANParams · object | Hdbscan Parameters · object | null"},"algorithm_params":{"oneOf":[{"type":"object","title":"KMeansParams","description":"Parameters for K-Means clustering algorithm.","properties":{"n_clusters":{"type":"integer","maximum":1000,"minimum":2,"title":"N Clusters","description":"Number of clusters to form","default":8,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.n_clusters","typeLabel":"integer"},"max_iter":{"type":"integer","maximum":10000,"minimum":1,"title":"Max Iter","description":"Maximum number of iterations","default":300,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.max_iter","typeLabel":"integer"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.random_state","typeLabel":"integer | null"},"n_init":{"type":"integer","minimum":1,"title":"N Init","description":"Number of times k-means will run with different centroid seeds","default":10,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.n_init","typeLabel":"integer"},"tol":{"type":"number","exclusiveMinimum":0,"title":"Tol","description":"Tolerance for convergence","default":0.0001,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.tol","typeLabel":"number"},"init":{"type":"string","title":"Init","description":"Method for initialization ('k-means++' or 'random')","default":"k-means++","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.init","typeLabel":"string"},"verbose":{"type":"integer","minimum":0,"title":"Verbose","description":"Verbosity mode","default":0,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.verbose","typeLabel":"integer"},"copy_x":{"type":"boolean","title":"Copy X","description":"If True, the original data is not modified","default":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.copy_x","typeLabel":"boolean"},"algorithm":{"type":"string","title":"Algorithm","description":"K-means algorithm to use ('lloyd', 'elkan', or 'auto')","default":"lloyd","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0.algorithm","typeLabel":"string"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.0","typeLabel":"KMeansParams · object"},{"type":"object","title":"DBSCANParams","description":"Parameters for DBSCAN clustering algorithm.","properties":{"eps":{"type":"number","exclusiveMinimum":0,"title":"Eps","description":"Maximum distance between two samples for one to be considered in the neighborhood of the other","default":0.5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.eps","typeLabel":"number"},"min_samples":{"type":"integer","minimum":1,"title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point","default":5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.min_samples","typeLabel":"integer"},"metric":{"type":"string","title":"Metric","description":"Metric to use for distance computation","default":"euclidean","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.metric","typeLabel":"string"},"metric_params":{"additionalProperties":true,"type":"object","title":"Metric Params","description":"Additional keyword arguments for the metric function","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.metric_params","typeLabel":"Metric Params · object"},"algorithm":{"type":"string","title":"Algorithm","description":"Algorithm to compute pointwise distances and find nearest neighbors ('auto', 'ball_tree', 'kd_tree', 'brute')","default":"auto","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.algorithm","typeLabel":"string"},"leaf_size":{"type":"integer","minimum":1,"title":"Leaf Size","description":"Leaf size passed to BallTree or KDTree","default":30,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.leaf_size","typeLabel":"integer"},"p":{"type":"number","exclusiveMinimum":0,"title":"P","description":"The power of the Minkowski metric to be used to calculate distance between points","default":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.p","typeLabel":"number"},"n_jobs":{"type":"integer","title":"N Jobs","description":"The number of parallel jobs to run (-1 means using all processors)","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1.n_jobs","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.1","typeLabel":"DBSCANParams · object"},{"type":"object","title":"HDBSCANParams","description":"Parameters for HDBSCAN clustering algorithm.","properties":{"min_cluster_size":{"type":"integer","minimum":2,"title":"Min Cluster Size","description":"Minimum number of samples in a cluster","default":5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.min_cluster_size","typeLabel":"integer"},"min_samples":{"oneOf":[{"type":"integer","title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point. Defaults to min_cluster_size if None","minimum":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.min_samples.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point. Defaults to min_cluster_size if None","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.min_samples.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.min_samples","typeLabel":"integer | null"},"cluster_selection_epsilon":{"type":"number","minimum":0,"title":"Cluster Selection Epsilon","description":"A distance threshold for cluster selection. Clusters below this value will be merged","default":0,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.cluster_selection_epsilon","typeLabel":"number"},"max_cluster_size":{"oneOf":[{"type":"integer","title":"Max Cluster Size","description":"Maximum number of samples in a cluster. Clusters above this size will be split","minimum":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.max_cluster_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Cluster Size","description":"Maximum number of samples in a cluster. Clusters above this size will be split","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.max_cluster_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.max_cluster_size","typeLabel":"integer | null"},"metric":{"type":"string","title":"Metric","description":"Metric to use for distance computation","default":"euclidean","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.metric","typeLabel":"string"},"alpha":{"type":"number","exclusiveMinimum":0,"title":"Alpha","description":"A distance scaling parameter","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.alpha","typeLabel":"number"},"cluster_selection_method":{"type":"string","title":"Cluster Selection Method","description":"Method to select clusters from the condensed tree ('eom' or 'leaf')","default":"eom","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.cluster_selection_method","typeLabel":"string"},"allow_single_cluster":{"type":"boolean","title":"Allow Single Cluster","description":"Allow HDBSCAN to find only a single cluster","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.allow_single_cluster","typeLabel":"boolean"},"prediction_data":{"type":"boolean","title":"Prediction Data","description":"Whether to generate extra data for predicting cluster membership","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.prediction_data","typeLabel":"boolean"},"match_reference_implementation":{"type":"boolean","title":"Match Reference Implementation","description":"Whether to match the reference implementation exactly","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2.match_reference_implementation","typeLabel":"boolean"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.2","typeLabel":"HDBSCANParams · object"},{"type":"object","title":"AgglomerativeParams","description":"Parameters for Agglomerative clustering algorithm.","properties":{"n_clusters":{"oneOf":[{"type":"integer","title":"N Clusters","description":"Number of clusters to find. Can be None if distance_threshold is not None","default":2,"minimum":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.n_clusters.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Clusters","description":"Number of clusters to find. Can be None if distance_threshold is not None","default":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.n_clusters.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.n_clusters","typeLabel":"integer | null"},"affinity":{"type":"string","title":"Affinity","description":"Metric used to compute linkage. Can be 'euclidean', 'l1', 'l2', 'manhattan', 'cosine', or 'precomputed'","default":"euclidean","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.affinity","typeLabel":"string"},"memory":{"oneOf":[{"type":"string","title":"Memory","description":"Path to the caching directory","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.memory.oneOf.0","typeLabel":"string"},{"type":"null","title":"Memory","description":"Path to the caching directory","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.memory","typeLabel":"string | null"},"connectivity":{"oneOf":[{"title":"Connectivity","description":"Connectivity matrix. Defines which samples are neighbors","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.connectivity.oneOf.0","typeLabel":"any"},{"type":"null","title":"Connectivity","description":"Connectivity matrix. Defines which samples are neighbors","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.connectivity.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.connectivity","typeLabel":"any | null"},"compute_full_tree":{"type":"string","title":"Compute Full Tree","description":"Whether to compute the full tree ('auto', True, or False)","default":"auto","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.compute_full_tree","typeLabel":"string"},"linkage":{"type":"string","title":"Linkage","description":"Linkage criterion ('ward', 'complete', 'average', 'single')","default":"ward","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.linkage","typeLabel":"string"},"distance_threshold":{"oneOf":[{"type":"number","title":"Distance Threshold","description":"The linkage distance threshold above which clusters will not be merged","minimum":0,"exclusiveMinimum":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.distance_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Distance Threshold","description":"The linkage distance threshold above which clusters will not be merged","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.distance_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.distance_threshold","typeLabel":"number | null"},"compute_distances":{"type":"boolean","title":"Compute Distances","description":"Whether to compute distances between clusters","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3.compute_distances","typeLabel":"boolean"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.3","typeLabel":"AgglomerativeParams · object"},{"type":"object","title":"SpectralParams","description":"Parameters for Spectral clustering algorithm.","properties":{"n_clusters":{"type":"integer","minimum":2,"title":"N Clusters","description":"Number of clusters to form","default":8,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_clusters","typeLabel":"integer"},"eigen_solver":{"oneOf":[{"type":"string","title":"Eigen Solver","description":"The eigenvalue decomposition strategy ('arpack', 'lobpcg', 'amg', or None)","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.eigen_solver.oneOf.0","typeLabel":"string"},{"type":"null","title":"Eigen Solver","description":"The eigenvalue decomposition strategy ('arpack', 'lobpcg', 'amg', or None)","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.eigen_solver.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.eigen_solver","typeLabel":"string | null"},"n_components":{"oneOf":[{"type":"integer","title":"N Components","description":"Number of eigenvectors to use for spectral embedding","minimum":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_components.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Components","description":"Number of eigenvectors to use for spectral embedding","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_components.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_components","typeLabel":"integer | null"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.random_state","typeLabel":"integer | null"},"n_init":{"type":"integer","minimum":1,"title":"N Init","description":"Number of times k-means will run with different centroid seeds","default":10,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_init","typeLabel":"integer"},"gamma":{"type":"number","exclusiveMinimum":0,"title":"Gamma","description":"Kernel coefficient for rbf, poly, sigmoid, laplacian and chi2 kernels","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.gamma","typeLabel":"number"},"affinity":{"type":"string","title":"Affinity","description":"How to construct the affinity matrix ('nearest_neighbors', 'rbf', 'precomputed', 'precomputed_nearest_neighbors')","default":"rbf","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.affinity","typeLabel":"string"},"n_neighbors":{"type":"integer","minimum":1,"title":"N Neighbors","description":"Number of neighbors to use when constructing the affinity matrix using nearest neighbors","default":10,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_neighbors","typeLabel":"integer"},"eigen_tol":{"type":"number","minimum":0,"title":"Eigen Tol","description":"Stopping criterion for eigendecomposition","default":0,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.eigen_tol","typeLabel":"number"},"assign_labels":{"type":"string","title":"Assign Labels","description":"Strategy to assign labels in the embedding space ('kmeans' or 'discretize')","default":"kmeans","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.assign_labels","typeLabel":"string"},"degree":{"type":"number","title":"Degree","description":"Degree of the polynomial kernel. Ignored by other kernels","default":3,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.degree","typeLabel":"number"},"coef0":{"type":"number","title":"Coef0","description":"Zero coefficient for polynomial and sigmoid kernels","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.coef0","typeLabel":"number"},"kernel_params":{"oneOf":[{"type":"object","title":"Kernel Params","description":"Parameters for the kernel function","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.kernel_params.oneOf.0","typeLabel":"Kernel Params · object"},{"type":"null","title":"Kernel Params","description":"Parameters for the kernel function","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.kernel_params.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.kernel_params","typeLabel":"Kernel Params · object | null"},"n_jobs":{"type":"integer","title":"N Jobs","description":"Number of parallel jobs to run (-1 means using all processors)","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.n_jobs","typeLabel":"integer"},"verbose":{"type":"boolean","title":"Verbose","description":"Verbosity mode","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4.verbose","typeLabel":"boolean"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.4","typeLabel":"SpectralParams · object"},{"type":"object","title":"GaussianMixtureParams","description":"Parameters for Gaussian Mixture Model clustering.","properties":{"n_components":{"type":"integer","minimum":1,"title":"N Components","description":"Number of mixture components","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.n_components","typeLabel":"integer"},"covariance_type":{"type":"string","title":"Covariance Type","description":"Type of covariance parameters ('full', 'tied', 'diag', 'spherical')","default":"full","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.covariance_type","typeLabel":"string"},"tol":{"type":"number","exclusiveMinimum":0,"title":"Tol","description":"Convergence threshold","default":0.001,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.tol","typeLabel":"number"},"reg_covar":{"type":"number","minimum":0,"title":"Reg Covar","description":"Regularization added to the diagonal of covariance","default":0.000001,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.reg_covar","typeLabel":"number"},"max_iter":{"type":"integer","minimum":1,"title":"Max Iter","description":"Maximum number of EM iterations","default":100,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.max_iter","typeLabel":"integer"},"n_init":{"type":"integer","minimum":1,"title":"N Init","description":"Number of initializations to perform","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.n_init","typeLabel":"integer"},"init_params":{"type":"string","title":"Init Params","description":"Method used to initialize weights, means and covariances ('kmeans' or 'random')","default":"kmeans","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.init_params","typeLabel":"string"},"weights_init":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.weights_init.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Weights Init","description":"Initial weights","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.weights_init.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Weights Init","description":"Initial weights","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.weights_init.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.weights_init","typeLabel":"any[] | null"},"means_init":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.means_init.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Means Init","description":"Initial means","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.means_init.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Means Init","description":"Initial means","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.means_init.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.means_init","typeLabel":"any[] | null"},"precisions_init":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.precisions_init.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Precisions Init","description":"Initial precisions","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.precisions_init.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Precisions Init","description":"Initial precisions","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.precisions_init.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.precisions_init","typeLabel":"any[] | null"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducibility","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.random_state","typeLabel":"integer | null"},"warm_start":{"type":"boolean","title":"Warm Start","description":"If True, use the solution of the last fit as initialization","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.warm_start","typeLabel":"boolean"},"verbose":{"type":"integer","minimum":0,"title":"Verbose","description":"Enable verbose output","default":0,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.verbose","typeLabel":"integer"},"verbose_interval":{"type":"integer","minimum":1,"title":"Verbose Interval","description":"Number of iterations between each verbose message","default":10,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5.verbose_interval","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.5","typeLabel":"GaussianMixtureParams · object"},{"type":"object","title":"MeanShiftParams","description":"Parameters for Mean Shift clustering algorithm.","properties":{"bandwidth":{"oneOf":[{"type":"number","title":"Bandwidth","description":"Bandwidth used in the RBF kernel. If None, estimated using sklearn.cluster.estimate_bandwidth","minimum":0,"exclusiveMinimum":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.bandwidth.oneOf.0","typeLabel":"number"},{"type":"null","title":"Bandwidth","description":"Bandwidth used in the RBF kernel. If None, estimated using sklearn.cluster.estimate_bandwidth","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.bandwidth.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.bandwidth","typeLabel":"number | null"},"bandwidth_quantile":{"type":"number","maximum":1,"exclusiveMinimum":0,"title":"Bandwidth Quantile","description":"Quantile of pairwise distances used to estimate bandwidth when bandwidth is None. sklearn's own default of 0.3 merges every cluster into one on embedding data: with k equally sized clusters only 1/k of pairs are within-cluster, so a quantile above 1/k measures the distance BETWEEN clusters. 0.1 suits up to roughly ten clusters; lower it if you expect more.","default":0.1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.bandwidth_quantile","typeLabel":"number"},"seeds":{"oneOf":[{"type":"array","items":{"items":{"type":"number","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.seeds.oneOf.0.items.[INDEX].items.[INDEX]","typeLabel":"number"},"type":"array","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.seeds.oneOf.0.items.[INDEX]","typeLabel":"number[]"},"title":"Seeds","description":"Seeds used to initialize kernels. If None, all points are used as seeds","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.seeds.oneOf.0","typeLabel":"number[][]"},{"type":"null","title":"Seeds","description":"Seeds used to initialize kernels. If None, all points are used as seeds","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.seeds.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.seeds","typeLabel":"number[][] | null"},"bin_seeding":{"type":"boolean","title":"Bin Seeding","description":"If true, initial kernel locations are discretized into a grid to speed up algorithm","default":false,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.bin_seeding","typeLabel":"boolean"},"min_bin_freq":{"type":"integer","minimum":1,"title":"Min Bin Freq","description":"Minimum number of seeds within a bin for the bin to be considered","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.min_bin_freq","typeLabel":"integer"},"cluster_all":{"type":"boolean","title":"Cluster All","description":"If true, all points are clustered, even orphans. If false, orphans are given label -1","default":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.cluster_all","typeLabel":"boolean"},"n_jobs":{"type":"integer","title":"N Jobs","description":"Number of parallel jobs to run (-1 means using all processors)","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.n_jobs","typeLabel":"integer"},"max_iter":{"type":"integer","minimum":1,"title":"Max Iter","description":"Maximum number of iterations per seed point before the algorithm stops","default":300,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6.max_iter","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.6","typeLabel":"MeanShiftParams · object"},{"type":"object","title":"OPTICSParams","description":"Parameters for OPTICS clustering algorithm.","properties":{"min_samples":{"type":"integer","minimum":2,"title":"Min Samples","description":"Number of samples in a neighborhood for a point to be considered a core point","default":5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.min_samples","typeLabel":"integer"},"max_eps":{"oneOf":[{"type":"number","title":"Max Eps","description":"Maximum distance between two samples. Default (None) means no maximum distance","minimum":0,"exclusiveMinimum":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.max_eps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Eps","description":"Maximum distance between two samples. Default (None) means no maximum distance","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.max_eps.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.max_eps","typeLabel":"number | null"},"metric":{"type":"string","title":"Metric","description":"Metric to use for distance computation","default":"minkowski","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.metric","typeLabel":"string"},"p":{"type":"number","exclusiveMinimum":0,"title":"P","description":"Parameter for the Minkowski metric","default":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.p","typeLabel":"number"},"metric_params":{"oneOf":[{"type":"object","title":"Metric Params","description":"Additional keyword arguments for the metric function","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.metric_params.oneOf.0","typeLabel":"Metric Params · object"},{"type":"null","title":"Metric Params","description":"Additional keyword arguments for the metric function","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.metric_params.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.metric_params","typeLabel":"Metric Params · object | null"},"cluster_method":{"type":"string","title":"Cluster Method","description":"Method to extract clusters ('xi' or 'dbscan')","default":"xi","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.cluster_method","typeLabel":"string"},"eps":{"oneOf":[{"type":"number","title":"Eps","description":"Maximum distance for DBSCAN cluster extraction method","minimum":0,"exclusiveMinimum":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.eps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Eps","description":"Maximum distance for DBSCAN cluster extraction method","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.eps.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.eps","typeLabel":"number | null"},"xi":{"type":"number","maximum":1,"minimum":0,"title":"Xi","description":"Minimum steepness on the reachability plot for cluster boundary (xi method)","default":0.05,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.xi","typeLabel":"number"},"predecessor_correction":{"type":"boolean","title":"Predecessor Correction","description":"Correct clusters based on predecessors (xi method)","default":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.predecessor_correction","typeLabel":"boolean"},"min_cluster_size":{"oneOf":[{"type":"number","title":"Min Cluster Size","description":"Minimum number of samples in a cluster. Can be a fraction if \u003c 1.0","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.min_cluster_size.oneOf.0","typeLabel":"number"},{"type":"null","title":"Min Cluster Size","description":"Minimum number of samples in a cluster. Can be a fraction if \u003c 1.0","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.min_cluster_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.min_cluster_size","typeLabel":"number | null"},"algorithm":{"type":"string","title":"Algorithm","description":"Algorithm to compute pointwise distances ('auto', 'ball_tree', 'kd_tree', 'brute')","default":"auto","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.algorithm","typeLabel":"string"},"leaf_size":{"type":"integer","minimum":1,"title":"Leaf Size","description":"Leaf size passed to BallTree or KDTree","default":30,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.leaf_size","typeLabel":"integer"},"n_jobs":{"type":"integer","title":"N Jobs","description":"Number of parallel jobs to run (-1 means using all processors)","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7.n_jobs","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.7","typeLabel":"OPTICSParams · object"},{"type":"object","title":"LeidenParams","description":"Parameters for Leiden graph community-detection clustering.","properties":{"resolution":{"type":"number","maximum":100,"exclusiveMinimum":0,"title":"Resolution","description":"Resolution for the Leiden objective. Higher values yield more, smaller communities; lower values yield fewer, larger ones. Leiden discovers the cluster count from the graph — there is no fixed n_clusters.","default":1,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.resolution","typeLabel":"number"},"n_neighbors":{"type":"integer","maximum":200,"minimum":2,"title":"N Neighbors","description":"Number of nearest neighbours per node when building the kNN graph. Larger values give a denser graph (smoother communities) at higher build cost.","default":30,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.n_neighbors","typeLabel":"integer"},"metric":{"type":"string","title":"Metric","description":"Distance metric for kNN graph construction (cosine or euclidean).","default":"cosine","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.metric","typeLabel":"string"},"min_cluster_size":{"type":"integer","minimum":0,"title":"Min Cluster Size","description":"Communities smaller than this are relabelled as noise (cluster_id -1). 0 keeps every community.","default":0,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.min_cluster_size","typeLabel":"integer"},"objective_function":{"type":"string","enum":["RBConfiguration","modularity","CPM"],"title":"Objective Function","description":"Leiden quality function. RBConfiguration and CPM honour the resolution parameter; modularity ignores it.","default":"RBConfiguration","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.objective_function","typeLabel":"enum\u003cstring>"},"n_iterations":{"type":"integer","title":"N Iterations","description":"Leiden optimisation passes. -1 runs until no further improvement; a small positive value (e.g. 2) is faster and usually sufficient.","default":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.n_iterations","typeLabel":"integer"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducible partitions.","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducible partitions.","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8.random_state","typeLabel":"integer | null"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.8","typeLabel":"LeidenParams · object"},{"type":"object","title":"EVoCParams","description":"Parameters for EVoC (Embedding Vector Oriented Clustering).","properties":{"noise_level":{"type":"number","maximum":1,"minimum":0,"title":"Noise Level","description":"How aggressively points are set aside as noise (cluster_id -1). Lower values keep more points in clusters; higher values demand denser, more confident clusters. 0.5 is a balanced default.","default":0.5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.noise_level","typeLabel":"number"},"base_min_cluster_size":{"type":"integer","minimum":2,"title":"Base Min Cluster Size","description":"Minimum number of points for a cluster at the base layer of the cluster hierarchy. Larger values create fewer, bigger clusters.","default":5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.base_min_cluster_size","typeLabel":"integer"},"approx_n_clusters":{"oneOf":[{"type":"integer","title":"Approx N Clusters","description":"Optional hint for roughly how many clusters to aim for. EVoC picks the hierarchy layer closest to this count. Leave unset to let EVoC choose the granularity from the data.","minimum":2,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.approx_n_clusters.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Approx N Clusters","description":"Optional hint for roughly how many clusters to aim for. EVoC picks the hierarchy layer closest to this count. Leave unset to let EVoC choose the granularity from the data.","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.approx_n_clusters.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.approx_n_clusters","typeLabel":"integer | null"},"n_neighbors":{"type":"integer","maximum":200,"minimum":2,"title":"N Neighbors","description":"Number of nearest neighbours per point when building the kNN graph. Larger values give a denser graph at higher build cost.","default":15,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.n_neighbors","typeLabel":"integer"},"min_samples":{"type":"integer","minimum":1,"title":"Min Samples","description":"Number of neighbouring samples for a point to be considered a core point (density estimation, as in HDBSCAN).","default":5,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.min_samples","typeLabel":"integer"},"random_state":{"oneOf":[{"type":"integer","title":"Random State","description":"Random seed for reproducible clusterings.","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.random_state.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Random State","description":"Random seed for reproducible clusterings.","default":42,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.random_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9.random_state","typeLabel":"integer | null"}},"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.9","typeLabel":"EVoCParams · object"},{"type":"object","title":"Algorithm Params","description":"Algorithm-specific parameters","additionalProperties":true,"uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.10","typeLabel":"Algorithm Params · object"},{"type":"null","title":"Algorithm Params","description":"Algorithm-specific parameters","uniqueKey":"vector_config.oneOf.0.algorithm_params.oneOf.11","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.algorithm_params","typeLabel":"KMeansParams · object | DBSCANParams · object | HDBSCANParams · object | AgglomerativeParams · object | SpectralParams · object | GaussianMixtureParams · object | MeanShiftParams · object | OPTICSParams · object | LeidenParams · object | EVoCParams · object | Algorithm Params · object | null"},"multi_feature_strategy":{"type":"string","enum":["concatenate","independent","weighted"],"title":"Multi Feature Strategy","description":"Strategy for handling multiple feature vectors:\n- concatenate: Combine embeddings into one vector, single clustering\n- independent: Run separate clustering per feature\n- weighted: Learn optimal feature weights","default":"concatenate","uniqueKey":"vector_config.oneOf.0.multi_feature_strategy","typeLabel":"enum\u003cstring>"},"normalize_features":{"type":"boolean","title":"Normalize Features","description":"Apply L2 normalization to each feature block before concatenation. Prevents feature dominance when combining different modalities. Only applies when multi_feature_strategy='concatenate'.","default":true,"uniqueKey":"vector_config.oneOf.0.normalize_features","typeLabel":"boolean"},"feature_weights":{"oneOf":[{"type":"object","title":"Feature Weights","description":"Optional per-feature weights (0.0-1.0) for concatenation strategy. Keys are feature URIs, values are weights. Example: {'mixpeek://text@v1/emb': 0.7, 'mixpeek://image@v1/emb': 0.3}. Defaults to equal weights (1.0) if not specified. Only applies when multi_feature_strategy='concatenate'. If multi_feature_strategy='weighted' and this is None, weights are learned automatically using weight_learning_config.","example":{"mixpeek://image_extractor@v1/embedding":0.3,"mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1":0.7},"additionalProperties":{"type":"number","uniqueKey":"vector_config.oneOf.0.feature_weights.oneOf.0.additionalProperties","typeLabel":"number"},"uniqueKey":"vector_config.oneOf.0.feature_weights.oneOf.0","typeLabel":"Feature Weights · object"},{"type":"null","title":"Feature Weights","description":"Optional per-feature weights (0.0-1.0) for concatenation strategy. Keys are feature URIs, values are weights. Example: {'mixpeek://text@v1/emb': 0.7, 'mixpeek://image@v1/emb': 0.3}. Defaults to equal weights (1.0) if not specified. Only applies when multi_feature_strategy='concatenate'. If multi_feature_strategy='weighted' and this is None, weights are learned automatically using weight_learning_config.","example":{"mixpeek://image_extractor@v1/embedding":0.3,"mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1":0.7},"uniqueKey":"vector_config.oneOf.0.feature_weights.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.feature_weights","typeLabel":"Feature Weights · object | null"},"weight_learning_config":{"oneOf":[{"type":"object","title":"WeightLearningConfig","description":"Configuration for automatic feature weight learning. Only used when multi_feature_strategy='weighted' and feature_weights is None. If feature_weights is provided, manual weights are used instead of learning. If this is None when learning is needed, default WeightLearningConfig is used.","example":{"max_iterations":20,"method":"bayesian","metric":"silhouette","random_state":42,"sample_size":5000},"properties":{"method":{"type":"string","enum":["grid_search","bayesian"],"title":"Method","description":"Weight learning method:\n- bayesian: Gaussian process optimization (recommended, scales to 5+ features)\n- grid_search: Exhaustive search (limited to 2-3 features, simpler but slower)","default":"bayesian","examples":["bayesian","grid_search"],"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.method","typeLabel":"enum\u003cstring>"},"max_iterations":{"type":"integer","maximum":100,"minimum":5,"title":"Max Iterations","description":"Maximum optimization iterations:\n- grid_search: Number of values to try per feature (total: max_iterations^n_features)\n- bayesian: Number of weight combinations to evaluate\nRecommended: 20 for bayesian, 5 for grid_search","default":20,"examples":[20,50],"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.max_iterations","typeLabel":"integer"},"metric":{"type":"string","enum":["silhouette","davies_bouldin","calinski_harabasz"],"title":"Metric","description":"Clustering quality metric to optimize:\n- silhouette: Measures how similar points are to their cluster vs other clusters (range: [-1, 1], higher is better)\n- davies_bouldin: Ratio of within-cluster to between-cluster distances (range: [0, ∞], lower is better)\n- calinski_harabasz: Ratio of between-cluster to within-cluster variance (range: [0, ∞], higher is better)\nRecommended: silhouette (most general-purpose)","default":"silhouette","examples":["silhouette","davies_bouldin","calinski_harabasz"],"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.metric","typeLabel":"enum\u003cstring>"},"sample_size":{"oneOf":[{"type":"integer","title":"Sample Size","description":"Optional: Learn weights on a random sample (speeds up large datasets).\nIf provided and dataset has more documents, weights are learned on sample_size random documents, then applied to full dataset.\nRecommended: 5000 for datasets >10k documents","minimum":100,"example":5000,"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.sample_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Sample Size","description":"Optional: Learn weights on a random sample (speeds up large datasets).\nIf provided and dataset has more documents, weights are learned on sample_size random documents, then applied to full dataset.\nRecommended: 5000 for datasets >10k documents","example":5000,"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.sample_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.sample_size","typeLabel":"integer | null"},"random_state":{"type":"integer","title":"Random State","description":"Random seed for reproducibility of weight learning","default":42,"examples":[42],"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0.random_state","typeLabel":"integer"}},"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.0","typeLabel":"WeightLearningConfig · object"},{"type":"null","description":"Configuration for automatic feature weight learning. Only used when multi_feature_strategy='weighted' and feature_weights is None. If feature_weights is provided, manual weights are used instead of learning. If this is None when learning is needed, default WeightLearningConfig is used.","example":{"max_iterations":20,"method":"bayesian","metric":"silhouette","sample_size":5000},"uniqueKey":"vector_config.oneOf.0.weight_learning_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.weight_learning_config","typeLabel":"WeightLearningConfig · object | null"},"output_strategy":{"type":"string","enum":["single","per_feature"],"title":"Output Strategy","description":"Output collection creation strategy:\n- single: Create one collection with all feature vectors\n- per_feature: Create separate collections for each feature (for hierarchical taxonomies)","default":"single","uniqueKey":"vector_config.oneOf.0.output_strategy","typeLabel":"enum\u003cstring>"},"effective_feature_method":{"type":"string","enum":["mean","median","medoid"],"title":"Effective Feature Method","description":"Method for calculating cluster centroids:\n- mean: Average of all vectors in cluster\n- median: Median vector (robust to outliers)\n- medoid: Actual cluster member closest to centroid","default":"mean","uniqueKey":"vector_config.oneOf.0.effective_feature_method","typeLabel":"enum\u003cstring>"},"enrich_source":{"type":"boolean","title":"Enrich Source","description":"Whether to enrich source documents with cluster_id","default":false,"uniqueKey":"vector_config.oneOf.0.enrich_source","typeLabel":"boolean"},"face_cluster_merge":{"oneOf":[{"type":"object","title":"FaceClusterMergeConfig","description":"Optional post-HDBSCAN agglomerative merge pass for face identity clusters. HDBSCAN over ArcFace 512d face embeddings tends to over-split the same person across pose/lighting variants. When provided with enabled=true, two clusters merge if their centroid cosine meets the threshold AND one of the spatial signals (bbox IoU on overlapping frames, scene-id Jaccard) clears its threshold. Leave null (default) for non-face clusterings — existing behavior is preserved.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Run the merge pass. Set False to disable without removing the config.","default":true,"uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.enabled","typeLabel":"boolean"},"centroid_cosine_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Centroid Cosine Threshold","description":"Minimum centroid cosine similarity for a candidate merge.","default":0.55,"uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.centroid_cosine_threshold","typeLabel":"number"},"bbox_iou_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Bbox Iou Threshold","description":"Minimum bbox IoU on overlapping frames to satisfy the spatial half.","default":0.4,"uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.bbox_iou_threshold","typeLabel":"number"},"scene_jaccard_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Scene Jaccard Threshold","description":"Minimum Jaccard similarity of scene-id sets to satisfy the spatial half.","default":0.3,"uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.scene_jaccard_threshold","typeLabel":"number"},"bbox_field":{"type":"string","title":"Bbox Field","description":"Document-payload field holding the face bbox (list/tuple of 4 floats).","default":"bbox","uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.bbox_field","typeLabel":"string"},"frame_field":{"type":"string","title":"Frame Field","description":"Document-payload field holding the frame identifier used to pair bboxes.","default":"frame_number","uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.frame_field","typeLabel":"string"},"scene_field":{"type":"string","title":"Scene Field","description":"Document-payload field holding the scene identifier used for Jaccard.","default":"scene_id","uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0.scene_field","typeLabel":"string"}},"uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.0","typeLabel":"FaceClusterMergeConfig · object"},{"type":"null","description":"Optional post-HDBSCAN agglomerative merge pass for face identity clusters. HDBSCAN over ArcFace 512d face embeddings tends to over-split the same person across pose/lighting variants. When provided with enabled=true, two clusters merge if their centroid cosine meets the threshold AND one of the spatial signals (bbox IoU on overlapping frames, scene-id Jaccard) clears its threshold. Leave null (default) for non-face clusterings — existing behavior is preserved.","uniqueKey":"vector_config.oneOf.0.face_cluster_merge.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.face_cluster_merge","typeLabel":"FaceClusterMergeConfig · object | null"},"preprocessing_steps":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","title":"TSNEParams","properties":{"method":{"type":"string","const":"tsne","title":"Method","default":"tsne","uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0.method","typeLabel":"string"},"n_components":{"type":"integer","maximum":256,"minimum":2,"title":"N Components","default":2,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0.n_components","typeLabel":"integer"},"random_state":{"type":"integer","title":"Random State","default":42,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0.random_state","typeLabel":"integer"},"perplexity":{"type":"number","exclusiveMinimum":0,"title":"Perplexity","default":30,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0.perplexity","typeLabel":"number"},"learning_rate":{"type":"number","exclusiveMinimum":0,"title":"Learning Rate","default":200,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0.learning_rate","typeLabel":"number"}},"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"TSNEParams · object"},{"type":"object","title":"UMAPParams","properties":{"method":{"type":"string","const":"umap","title":"Method","default":"umap","uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.method","typeLabel":"string"},"n_components":{"type":"integer","maximum":256,"minimum":2,"title":"N Components","default":50,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.n_components","typeLabel":"integer"},"random_state":{"type":"integer","title":"Random State","default":42,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.random_state","typeLabel":"integer"},"n_neighbors":{"type":"integer","minimum":2,"title":"N Neighbors","default":30,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.n_neighbors","typeLabel":"integer"},"min_dist":{"type":"number","maximum":1,"minimum":0,"title":"Min Dist","default":0,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.min_dist","typeLabel":"number"},"metric":{"type":"string","title":"Metric","description":"Distance metric for UMAP. 'cosine' is best for normalized embeddings.","default":"cosine","uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1.metric","typeLabel":"string"}},"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"UMAPParams · object"},{"type":"object","title":"WhiteningParams","properties":{"method":{"type":"string","const":"whitening","title":"Method","default":"whitening","uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.2.method","typeLabel":"string"},"regularization":{"type":"number","minimum":0,"title":"Regularization","description":"Eigenvalue floor to prevent division by near-zero values.","default":0.00001,"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.2.regularization","typeLabel":"number"}},"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.2","typeLabel":"WhiteningParams · object"},{"type":"object","title":"NoReduction","properties":{"method":{"type":"string","const":"none","title":"Method","default":"none","uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.3.method","typeLabel":"string"}},"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX].oneOf.3","typeLabel":"NoReduction · object"}],"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0.items.[INDEX]","typeLabel":"TSNEParams · object | UMAPParams · object | WhiteningParams · object | NoReduction · object"},"title":"Preprocessing Steps","description":"Ordered list of preprocessing steps applied before clustering. Steps execute in order. Common patterns:\n- [whitening, umap]: Decorrelate then reduce — best for high-dimensional embeddings\n- [umap]: UMAP pre-reduction only (defaults: 50D, cosine, n_neighbors=30)\n- [whitening]: Whitening only — improves density-based clustering without dimension reduction\n\nIf set, overrides any default dimensionality reduction.","example":[{"method":"whitening","regularization":0.00001},{"method":"umap","min_dist":0,"n_components":50,"n_neighbors":30}],"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.0","typeLabel":"(TSNEParams · object | UMAPParams · object | WhiteningParams · object | NoReduction · object)[]"},{"type":"null","title":"Preprocessing Steps","description":"Ordered list of preprocessing steps applied before clustering. Steps execute in order. Common patterns:\n- [whitening, umap]: Decorrelate then reduce — best for high-dimensional embeddings\n- [umap]: UMAP pre-reduction only (defaults: 50D, cosine, n_neighbors=30)\n- [whitening]: Whitening only — improves density-based clustering without dimension reduction\n\nIf set, overrides any default dimensionality reduction.","example":[{"method":"whitening","regularization":0.00001},{"method":"umap","min_dist":0,"n_components":50,"n_neighbors":30}],"uniqueKey":"vector_config.oneOf.0.preprocessing_steps.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.preprocessing_steps","typeLabel":"(TSNEParams · object | UMAPParams · object | WhiteningParams · object | NoReduction · object)[] | null"},"hierarchical":{"type":"boolean","title":"Hierarchical","description":"Enable recursive sub-clustering. After initial clustering, each cluster with enough members is sub-divided using UMAP+HDBSCAN recursively. Produces hierarchical cluster IDs (e.g., cl_0_sub_1_sub_0).","default":false,"uniqueKey":"vector_config.oneOf.0.hierarchical","typeLabel":"boolean"},"max_hierarchy_depth":{"type":"integer","maximum":5,"minimum":1,"title":"Max Hierarchy Depth","description":"Maximum recursion depth for hierarchical sub-clustering.","default":3,"uniqueKey":"vector_config.oneOf.0.max_hierarchy_depth","typeLabel":"integer"},"vis_n_components":{"type":"integer","enum":[2,3],"title":"Vis N Components","description":"Number of dimensions for visualization coordinates (2 or 3). When 3, the z coordinate is populated for depth/size-based rendering. Stored on the cluster and used as the default for all executions.","default":2,"uniqueKey":"vector_config.oneOf.0.vis_n_components","typeLabel":"enum\u003cinteger>"},"layout_stability":{"oneOf":[{"type":"string","title":"Layout Stability","description":"How the visualization layout behaves across re-executions. 'align' (the default when unset): re-fit the projection as usual, then register the new layout onto the previous run's coordinates with a least-squares similarity transform computed over shared documents — the map keeps its shape and orientation, so users don't lose their bearings. 'transform': additionally reuse the previous run's saved projection reducer when compatible (same features/dimensionality), so existing documents stay pixel-stable and new documents land in the established frame; falls back to 'align', then to a raw layout. 'none': independent re-layout every run (pre- behavior). Pure post-processing of coordinates — cluster assignments are never affected. The execution record reports what was actually applied in layout_stability_applied.","enum":["none","transform","align"],"uniqueKey":"vector_config.oneOf.0.layout_stability.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Layout Stability","description":"How the visualization layout behaves across re-executions. 'align' (the default when unset): re-fit the projection as usual, then register the new layout onto the previous run's coordinates with a least-squares similarity transform computed over shared documents — the map keeps its shape and orientation, so users don't lose their bearings. 'transform': additionally reuse the previous run's saved projection reducer when compatible (same features/dimensionality), so existing documents stay pixel-stable and new documents land in the established frame; falls back to 'align', then to a raw layout. 'none': independent re-layout every run (pre- behavior). Pure post-processing of coordinates — cluster assignments are never affected. The execution record reports what was actually applied in layout_stability_applied.","uniqueKey":"vector_config.oneOf.0.layout_stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config.oneOf.0.layout_stability","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"vector_config.oneOf.0","typeLabel":"VectorBasedConfig · object"},{"type":"null","description":"Required when cluster_type is 'vector'","uniqueKey":"vector_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"vector_config","typeLabel":"VectorBasedConfig · object | null"},"attribute_config":{"oneOf":[{"type":"object","title":"AttributeBasedConfig","description":"Required when cluster_type is 'attribute'","required":["attributes"],"example":{"attributes":["category"],"hierarchical_grouping":false},"properties":{"attributes":{"items":{"type":"string","uniqueKey":"attribute_config.oneOf.0.attributes.items.[INDEX]","typeLabel":"string"},"type":"array","minItems":1,"title":"Attributes","description":"List of attribute field names to use for clustering. Documents will be grouped by unique combinations of these attribute values. Supports dot-notation for nested fields (e.g., 'metadata.category'). Order matters for hierarchical grouping: first attribute is top-level, subsequent are nested.","examples":[["category"],["category","brand"],["status","priority"],["metadata.author","metadata.topic"]],"isRequired":true,"uniqueKey":"attribute_config.oneOf.0.attributes","typeLabel":"string[]"},"hierarchical_grouping":{"type":"boolean","title":"Hierarchical Grouping","description":"Whether to create hierarchical clusters based on attribute order. When True: Creates parent clusters for each unique value of the first attribute, then child clusters for subsequent attributes within each parent. When False: Creates flat clusters for each unique combination of all attributes. Example with ['category', 'brand']: hierarchical=True → 'Electronics' (parent) → 'Apple', 'Samsung' (children). hierarchical=False → 'Electronics_Apple', 'Electronics_Samsung' (flat).","default":false,"uniqueKey":"attribute_config.oneOf.0.hierarchical_grouping","typeLabel":"boolean"},"aggregation_method":{"oneOf":[{"type":"string","title":"Aggregation Method","description":"Method for aggregating attribute values when creating cluster centroids. Options: 'most_frequent' (default), 'first', 'last'. Most use cases should use the default.","example":"most_frequent","uniqueKey":"attribute_config.oneOf.0.aggregation_method.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aggregation Method","description":"Method for aggregating attribute values when creating cluster centroids. Options: 'most_frequent' (default), 'first', 'last'. Most use cases should use the default.","example":"most_frequent","uniqueKey":"attribute_config.oneOf.0.aggregation_method.oneOf.1","typeLabel":"null"}],"uniqueKey":"attribute_config.oneOf.0.aggregation_method","typeLabel":"string | null"}},"uniqueKey":"attribute_config.oneOf.0","typeLabel":"AttributeBasedConfig · object"},{"type":"null","description":"Required when cluster_type is 'attribute'","uniqueKey":"attribute_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"attribute_config","typeLabel":"AttributeBasedConfig · object | null"},"filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Optional filters to pre-filter documents before clustering (same format as list documents). Applied during the vector store scroll before parquet export. Useful for clustering subsets like: status='active', category='electronics', etc.","properties":{"AND":{"oneOf":[{"type":"array","items":{"oneOf":[{},{"type":"object","title":"FilterCondition","description":"Represents a single filter condition.\n\nAttributes:\n field: The field to filter on\n operator: The comparison operator\n value: The value to compare against","required":["field","value"],"properties":{"field":{"type":"string","title":"Field","description":"Field name to filter on","isRequired":true,"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.field","typeLabel":"string"},"value":{"oneOf":[{"type":"object","title":"DynamicValue","description":"A value that should be dynamically resolved from the query request.","required":["field"],"properties":{"field":{"type":"string","title":"Field","description":"The dot-notation path to the value in the runtime query request, e.g., 'inputs.user_id'","examples":["inputs.query_text","filters.AND[0].value"],"isRequired":true,"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.field","typeLabel":"string"},"type":{"type":"string","const":"dynamic","title":"Type","default":"dynamic","uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0","typeLabel":"DynamicValue · object"},{"title":"Value","description":"Value to compare against","isRequired":true,"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value","typeLabel":"DynamicValue · object | any"},"operator":{"description":"Comparison operator","enum":["eq","ne","gt","lt","gte","lte","in","nin","contains","starts_with","ends_with","regex","exists","is_null","text","phrase","words","geo_radius","geo_bounding_box","geo_polygon"],"title":"FilterOperator","type":"string","default":"eq","uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"filters.oneOf.0.AND.oneOf.0.items.[INDEX]","typeLabel":"FilterCondition · object"},"title":"And","description":"Logical AND operation - all conditions must be true","example":[{"field":"name","operator":"eq","value":"John"},{"field":"age","operator":"gte","value":30}],"uniqueKey":"filters.oneOf.0.AND.oneOf.0","typeLabel":"FilterCondition · object[]"},{"type":"null","title":"And","description":"Logical AND operation - all conditions must be true","example":[{"field":"name","operator":"eq","value":"John"},{"field":"age","operator":"gte","value":30}],"uniqueKey":"filters.oneOf.0.AND.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.oneOf.0.AND","typeLabel":"FilterCondition · object[] | null"},"OR":{"oneOf":[{"type":"array","items":{"oneOf":[{},{"type":"object","title":"FilterCondition","description":"Represents a single filter condition.\n\nAttributes:\n field: The field to filter on\n operator: The comparison operator\n value: The value to compare against","required":["field","value"],"properties":{"field":{"type":"string","title":"Field","description":"Field name to filter on","isRequired":true,"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.field","typeLabel":"string"},"value":{"oneOf":[{"type":"object","title":"DynamicValue","description":"A value that should be dynamically resolved from the query request.","required":["field"],"properties":{"field":{"type":"string","title":"Field","description":"The dot-notation path to the value in the runtime query request, e.g., 'inputs.user_id'","examples":["inputs.query_text","filters.AND[0].value"],"isRequired":true,"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.field","typeLabel":"string"},"type":{"type":"string","const":"dynamic","title":"Type","default":"dynamic","uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0","typeLabel":"DynamicValue · object"},{"title":"Value","description":"Value to compare against","isRequired":true,"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value","typeLabel":"DynamicValue · object | any"},"operator":{"description":"Comparison operator","enum":["eq","ne","gt","lt","gte","lte","in","nin","contains","starts_with","ends_with","regex","exists","is_null","text","phrase","words","geo_radius","geo_bounding_box","geo_polygon"],"title":"FilterOperator","type":"string","default":"eq","uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"filters.oneOf.0.OR.oneOf.0.items.[INDEX]","typeLabel":"FilterCondition · object"},"title":"Or","description":"Logical OR operation - at least one condition must be true","example":[{"field":"status","operator":"eq","value":"active"},{"field":"role","operator":"eq","value":"admin"}],"uniqueKey":"filters.oneOf.0.OR.oneOf.0","typeLabel":"FilterCondition · object[]"},{"type":"null","title":"Or","description":"Logical OR operation - at least one condition must be true","example":[{"field":"status","operator":"eq","value":"active"},{"field":"role","operator":"eq","value":"admin"}],"uniqueKey":"filters.oneOf.0.OR.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.oneOf.0.OR","typeLabel":"FilterCondition · object[] | null"},"NOT":{"oneOf":[{"type":"array","items":{"oneOf":[{},{"type":"object","title":"FilterCondition","description":"Represents a single filter condition.\n\nAttributes:\n field: The field to filter on\n operator: The comparison operator\n value: The value to compare against","required":["field","value"],"properties":{"field":{"type":"string","title":"Field","description":"Field name to filter on","isRequired":true,"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.field","typeLabel":"string"},"value":{"oneOf":[{"type":"object","title":"DynamicValue","description":"A value that should be dynamically resolved from the query request.","required":["field"],"properties":{"field":{"type":"string","title":"Field","description":"The dot-notation path to the value in the runtime query request, e.g., 'inputs.user_id'","examples":["inputs.query_text","filters.AND[0].value"],"isRequired":true,"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.field","typeLabel":"string"},"type":{"type":"string","const":"dynamic","title":"Type","default":"dynamic","uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0","typeLabel":"DynamicValue · object"},{"title":"Value","description":"Value to compare against","isRequired":true,"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value","typeLabel":"DynamicValue · object | any"},"operator":{"description":"Comparison operator","enum":["eq","ne","gt","lt","gte","lte","in","nin","contains","starts_with","ends_with","regex","exists","is_null","text","phrase","words","geo_radius","geo_bounding_box","geo_polygon"],"title":"FilterOperator","type":"string","default":"eq","uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"filters.oneOf.0.NOT.oneOf.0.items.[INDEX]","typeLabel":"FilterCondition · object"},"title":"Not","description":"Logical NOT operation - all conditions must be false","example":[{"field":"department","operator":"eq","value":"HR"},{"field":"location","operator":"eq","value":"remote"}],"uniqueKey":"filters.oneOf.0.NOT.oneOf.0","typeLabel":"FilterCondition · object[]"},{"type":"null","title":"Not","description":"Logical NOT operation - all conditions must be false","example":[{"field":"department","operator":"eq","value":"HR"},{"field":"location","operator":"eq","value":"remote"}],"uniqueKey":"filters.oneOf.0.NOT.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.oneOf.0.NOT","typeLabel":"FilterCondition · object[] | null"},"case_sensitive":{"oneOf":[{"type":"boolean","title":"Case Sensitive","description":"Whether to perform case-sensitive matching","default":false,"example":true,"uniqueKey":"filters.oneOf.0.case_sensitive.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Case Sensitive","description":"Whether to perform case-sensitive matching","default":false,"example":true,"uniqueKey":"filters.oneOf.0.case_sensitive.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.oneOf.0.case_sensitive","typeLabel":"boolean | null"}},"additionalProperties":true,"uniqueKey":"filters.oneOf.0","typeLabel":"LogicalOperator · object"},{"type":"null","description":"Optional filters to pre-filter documents before clustering (same format as list documents). Applied during the vector store scroll before parquet export. Useful for clustering subsets like: status='active', category='electronics', etc.","uniqueKey":"filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters","typeLabel":"LogicalOperator · object | null"},"llm_labeling":{"oneOf":[{"type":"object","title":"LLMLabeling","description":"Optional configuration for LLM-based cluster labeling. When provided with enabled=True, clusters will have semantic labels generated by LLM instead of generic labels like 'Cluster 0'. When not provided or enabled=False, uses fallback labels.","example":{"enabled":true,"include_keywords":true,"include_summary":true,"labeling_inputs":{"input_mappings":[{"input_key":"title","path":"title","source_type":"payload"},{"input_key":"description","path":"description","source_type":"payload"},{"input_key":"text","path":"text","source_type":"payload"}]},"model_name":"gpt-4o-mini-2024-07-18","provider":"openai"},"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether to generate labels for clusters using LLM. When enabled, clusters will have semantic labels like 'High-Performance Laptops' instead of generic labels like 'Cluster 0'.","default":false,"uniqueKey":"llm_labeling.oneOf.0.enabled","typeLabel":"boolean"},"labeling_inputs":{"oneOf":[{"type":"object","title":"LLMLabelingInput","description":"Input configuration for LLM labeling. Supports flexible input mappings for multimodal inputs (text, images, videos, audio). Use input_mappings for advanced multimodal labeling with providers like Gemini. If not provided (null/undefined), the full document payload is serialized as JSON and sent to the LLM — WARNING: in practice this produces schema-metadata labels (e.g. 'Mid-Timeline Video Events' with keywords like ['start_time', 'end_time']) because the LLM describes whatever field names it sees. For meaningful labels, set input_mappings that point at semantic fields (title, description, thumbnail_url, document_blobs[].url for image/video content) rather than relying on the default.","required":["input_mappings"],"properties":{"input_mappings":{"items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"Key used in the constructed inputs payload.","isRequired":true,"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].input_key","typeLabel":"string"},"source_type":{"oneOf":[{"type":"string","title":"InputSourceType","description":"Source of the value (payload, literal, vector).","enum":["payload","literal","vector","blob"],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Source of the value (payload, literal, vector).","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].source_type","typeLabel":"enum\u003cstring> | null"},"path":{"oneOf":[{"type":"string","title":"Path","description":"Dot-notation path when source_type is PAYLOAD or VECTOR. PAYLOAD paths resolve from the document's ROOT fields — each document/source_document dict IS the payload (e.g. path 'text' reads {'text': ...}); a {'payload': {...}} envelope is also accepted as a fallback.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"Dot-notation path when source_type is PAYLOAD or VECTOR. PAYLOAD paths resolve from the document's ROOT fields — each document/source_document dict IS the payload (e.g. path 'text' reads {'text': ...}); a {'payload': {...}} envelope is also accepted as a fallback.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].path","typeLabel":"string | null"},"override":{"oneOf":[{"title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override.oneOf.0","typeLabel":"any"},{"type":"null","title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX].override","typeLabel":"any | null"}},"type":"object","required":["input_key"],"title":"InputMapping","description":"Declarative mapping for building inputs from various sources.\n\n- input_key: The key used in the constructed inputs payload\n- source_type: Where to fetch the value (payload, literal, vector)\n- path: Dot-notation path when source_type is PAYLOAD or VECTOR\n- override: Static value when source_type is LITERAL","examples":[{"input_key":"query_text","path":"content.title","source_type":"payload"},{"input_key":"lang","override":"en","source_type":"literal"},{"input_key":"image_vector","path":"features.clip_vit_l_14","source_type":"vector"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings.items.[INDEX]","typeLabel":"InputMapping · object"},"type":"array","minItems":1,"title":"Input Mappings","description":"Flexible input mappings for constructing LLM context. Supports multimodal inputs (text, image_url, video_url, audio_url). Each mapping specifies how to extract data from document payloads. At least one input mapping is required.","isRequired":true,"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0.input_mappings","typeLabel":"InputMapping · object[]"}},"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.0","typeLabel":"LLMLabelingInput · object"},{"type":"null","description":"Input configuration for LLM labeling. Supports flexible input mappings for multimodal inputs (text, images, videos, audio). Use input_mappings for advanced multimodal labeling with providers like Gemini. If not provided (null/undefined), the full document payload is serialized as JSON and sent to the LLM — WARNING: in practice this produces schema-metadata labels (e.g. 'Mid-Timeline Video Events' with keywords like ['start_time', 'end_time']) because the LLM describes whatever field names it sees. For meaningful labels, set input_mappings that point at semantic fields (title, description, thumbnail_url, document_blobs[].url for image/video content) rather than relying on the default.","uniqueKey":"llm_labeling.oneOf.0.labeling_inputs.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_inputs","typeLabel":"LLMLabelingInput · object | null"},"provider":{"oneOf":[{"type":"string","title":"LLMProvider","description":"LLM provider to use for labeling. Supported providers:\n- openai: GPT models (GPT-4o, GPT-4o-mini, GPT-4.1, O3-mini)\n- google: Gemini models (Gemini 2.5 Flash, Gemini 1.5 Flash)\n- anthropic: Claude models (Claude 3.5 Sonnet, Claude 3.5 Haiku)\n- typesafe: Jev (jev-latest). Picks each cluster's label from candidate_labels with a calibrated probability instead of writing one. Text only: it reads the representative documents' text fields.\n\nIf not specified, automatically inferred from model_name.","enum":["openai","google","anthropic","typesafe"],"example":"openai","uniqueKey":"llm_labeling.oneOf.0.provider.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"LLM provider to use for labeling. Supported providers:\n- openai: GPT models (GPT-4o, GPT-4o-mini, GPT-4.1, O3-mini)\n- google: Gemini models (Gemini 2.5 Flash, Gemini 1.5 Flash)\n- anthropic: Claude models (Claude 3.5 Sonnet, Claude 3.5 Haiku)\n- typesafe: Jev (jev-latest). Picks each cluster's label from candidate_labels with a calibrated probability instead of writing one. Text only: it reads the representative documents' text fields.\n\nIf not specified, automatically inferred from model_name.","example":"openai","uniqueKey":"llm_labeling.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.provider","typeLabel":"enum\u003cstring> | null"},"model_name":{"oneOf":[{"type":"string","title":"OpenAIModel","description":"OpenAI model identifiers for LLM generation.\n\nModels listed in order of capability and cost (highest to lowest).\nAll models support vision (images) except O3-mini.\n\nValues:\n GPT_4O: Latest GPT-4 Omni model (2024-08-06)\n - Use for: Production, highest quality generation\n - Context: 128K tokens\n - Vision: Yes\n - Cost: $2.50/1M input, $10/1M output\n - Performance: 200-500ms per request\n - When to use: Need best quality, willing to pay premium\n\n GPT_41: GPT-4.1 (2025-04-14)\n - Use for: Future-proofed pipelines\n - Context: 128K tokens\n - Vision: Yes\n - Cost: TBD (expected similar to GPT-4o)\n - When to use: Want latest model features\n\n GPT_4O_MINI: Smaller, faster GPT-4 Omni (2024-07-18)\n - Use for: High-volume, cost-sensitive workloads\n - Context: 128K tokens\n - Vision: Yes\n - Cost: $0.15/1M input, $0.60/1M output\n - Performance: 100-200ms per request\n - When to use: Good balance of quality and cost\n\n GPT_41_MINI: Smaller GPT-4.1 (2025-04-14)\n - Use for: Future cost-optimized pipelines\n - Context: 128K tokens\n - Vision: Yes\n - Cost: TBD (expected similar to GPT-4o-mini)\n - When to use: Want latest features at lower cost\n\n O3_MINI: Reasoning-optimized model (2025-01-31)\n - Use for: Complex reasoning, math, code\n - Context: 200K tokens\n - Vision: No\n - Cost: TBD\n - When to use: Need advanced reasoning capabilities\n\nExamples:\n - Use GPT_4O for caption generation with images (best quality)\n - Use GPT_4O_MINI for high-volume video scene summarization (cost-effective)\n - Use O3_MINI for complex entity extraction requiring reasoning","enum":["gpt-4o-2024-08-06","gpt-4o-mini-2024-07-18","gpt-4.1-2025-04-14","gpt-4.1-mini-2025-04-14","o3-mini-2025-01-31"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","title":"GoogleModel","description":"Google Gemini model identifiers for LLM generation.\n\nGemini models excel at multimodal understanding with best-in-class video support.\nAll models support text, images, video, audio, and PDFs.\n\nValues:\n GEMINI_3_5_FLASH_LITE: Gemini 3.5 Flash Lite model (recommended, the default)\n - Use for: Fastest generation, cost-effective multimodal\n - Context: 1M tokens\n - Multimodal: Text, images, video, audio, PDFs\n - When to use: Default choice for all Gemini use cases\n\n GEMINI_2_5_FLASH_LITE: Gemini 2.5 Flash Lite model\n - Kept so stored configs that name it still validate. The Gemini\n developer API no longer serves it to new keys; Vertex does.\n\n GEMINI_2_5_PRO: Gemini 2.5 Pro model\n - Use for: Higher quality reasoning, complex tasks\n - Context: 1M tokens\n\n GEMINI_2_5_FLASH: Gemini 2.5 Flash model\n - Kept for backward compatibility.\n\n GEMINI_3_1_FLASH_LITE: Gemini 3.1 Flash-Lite model\n - Use for: Fast, low-cost generation on the 3.1 generation","enum":["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-3.1-flash-lite","gemini-3.5-flash-lite"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.1","typeLabel":"enum\u003cstring>"},{"type":"string","title":"AnthropicModel","description":"Anthropic Claude model identifiers for LLM generation.\n\nClaude models excel at long context, complex reasoning, and safety.\nAll models support text and images.\n\nValues:\n CLAUDE_3_5_SONNET: Most capable Claude model\n - Use for: Complex reasoning, long documents, safety-critical\n - Context: 200K tokens\n - Vision: Yes\n - Cost: $3/1M input, $15/1M output\n - Performance: 300-800ms per request\n - When to use: Need best reasoning, safety, or long context\n\n CLAUDE_3_5_HAIKU: Fast, cost-effective Claude model\n - Use for: High-volume, quick summaries\n - Context: 200K tokens\n - Vision: Yes\n - Cost: $0.25/1M input, $1.25/1M output\n - Performance: 100-300ms per request\n - When to use: Good balance of quality and cost\n\nExamples:\n - Use CLAUDE_3_5_SONNET for complex entity extraction from contracts (best reasoning)\n - Use CLAUDE_3_5_HAIKU for high-volume content moderation (cost-effective)","enum":["claude-sonnet-4-5-20250929","claude-haiku-4-5-20251001","claude-3-5-sonnet-20241022","claude-3-5-haiku-20241022"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.2","typeLabel":"enum\u003cstring>"},{"type":"string","title":"TypeSafeModel","description":"TypeSafe AI Jev model identifiers.\n\nJev answers typed questions (choice, score, yes/no) with calibrated\nprobabilities. It reads text only and does not generate text, so it fits\ndecision steps: classification, filtering, relevance scoring, and choosing\na label or cluster branch from a fixed set.\n\nValues:\n JEV_LATEST: Most recent stable Jev release (moves on new releases)\n JEV_PREVIEW: Most recent Jev release, stable or not\n JEV_1_13: Pinned Jev 1.13; use when you tuned thresholds on it","enum":["jev-latest","jev-preview","jev-1.13.0"],"example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.3","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Model Name","description":"REQUIRED when enabled=True. Specific LLM model to use for cluster labeling. All models are defined as enums for type safety.\n\nOpenAI Models (provider='openai'):\n- gpt-4o-2024-08-06: Highest quality, best for production ($2.50/$10 per 1M tokens)\n- gpt-4o-mini-2024-07-18: Cost-effective, recommended for most use cases ($0.15/$0.60 per 1M tokens)\n- gpt-4.1-2025-04-14: Latest model, future-proofed\n- gpt-4.1-mini-2025-04-14: Latest cost-optimized model\n- o3-mini-2025-01-31: Advanced reasoning, best for complex clustering\n\nGoogle Models (provider='google'):\n- gemini-3.5-flash-lite: Fastest, latest multimodal model, recommended ($0.30/$2.50 per 1M tokens)\n\nAnthropic Models (provider='anthropic'):\n- claude-3-5-sonnet-20241022: Best reasoning, 200K context ($3/$15 per 1M tokens)\n- claude-3-5-haiku-20241022: Fast, cost-effective ($0.25/$1.25 per 1M tokens)\n\nRecommendation:\n- Use gemini-3.5-flash-lite (DEFAULT) - multimodal support\n- Use gpt-4o-mini-2024-07-18 for OpenAI compatibility\n- Use gpt-4o-2024-08-06 for highest quality when cost is not a concern","example":"gemini-3.5-flash-lite","uniqueKey":"llm_labeling.oneOf.0.model_name.oneOf.4","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.model_name","typeLabel":"enum\u003cstring> · enum\u003cstring> · enum\u003cstring> · enum\u003cstring> · null"},"include_summary":{"type":"boolean","title":"Include Summary","description":"Whether to generate cluster summaries","default":true,"uniqueKey":"llm_labeling.oneOf.0.include_summary","typeLabel":"boolean"},"include_keywords":{"type":"boolean","title":"Include Keywords","description":"Whether to extract keywords for clusters","default":true,"uniqueKey":"llm_labeling.oneOf.0.include_keywords","typeLabel":"boolean"},"max_samples_per_cluster":{"oneOf":[{"type":"integer","title":"Max Samples Per Cluster","description":"Maximum representative documents to send to LLM per cluster for semantic analysis. When null (default), automatically scales based on cluster size and spread — smaller/tighter clusters get fewer samples, larger/sparser clusters get more (range 3-20). Set explicitly to override with a fixed value.","maximum":20,"minimum":1,"uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Samples Per Cluster","description":"Maximum representative documents to send to LLM per cluster for semantic analysis. When null (default), automatically scales based on cluster size and spread — smaller/tighter clusters get fewer samples, larger/sparser clusters get more (range 3-20). Set explicitly to override with a fixed value.","uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.max_samples_per_cluster","typeLabel":"integer | null"},"sample_text_max_length":{"type":"integer","maximum":500,"minimum":50,"title":"Sample Text Max Length","description":"Maximum characters per document sample text","default":200,"uniqueKey":"llm_labeling.oneOf.0.sample_text_max_length","typeLabel":"integer"},"sample_selection_strategy":{"type":"string","enum":["nearest","representative"],"title":"Sample Selection Strategy","description":"How representative documents are chosen for the labeling LLM. 'nearest' (default): the N members closest to the cluster centroid — maximally prototypical, but adjacent clusters can yield near-identical sample sets and therefore near-identical labels. 'representative': a mixed panel of ~40% nearest-to-centroid, ~40% diversity picks (farthest-point coverage of the cluster's extent), and ~20% high-density examples — differentiates similar clusters at the same sample count and LLM cost.","default":"nearest","uniqueKey":"llm_labeling.oneOf.0.sample_selection_strategy","typeLabel":"enum\u003cstring>"},"use_embedding_dedup":{"type":"boolean","title":"Use Embedding Dedup","description":"Enable embedding-based label deduplication to prevent near-duplicate labels (requires sentence-transformers)","default":true,"uniqueKey":"llm_labeling.oneOf.0.use_embedding_dedup","typeLabel":"boolean"},"embedding_similarity_threshold":{"type":"number","maximum":1,"minimum":0.5,"title":"Embedding Similarity Threshold","description":"Cosine similarity threshold for duplicate label detection (labels above this are considered duplicates)","default":0.8,"uniqueKey":"llm_labeling.oneOf.0.embedding_similarity_threshold","typeLabel":"number"},"cache_ttl_seconds":{"type":"integer","maximum":2592000,"minimum":0,"title":"Cache Ttl Seconds","description":"Time-to-live for cached labels in seconds. Labels for clusters with identical representative documents will be reused within this TTL window, reducing LLM API costs. Default: 604800 (7 days). Set to 0 to disable caching.","default":604800,"uniqueKey":"llm_labeling.oneOf.0.cache_ttl_seconds","typeLabel":"integer"},"labeling_context":{"oneOf":[{"type":"string","title":"Labeling Context","description":"OPTIONAL. Freeform domain context about the data being clustered, injected into the labeling prompt as a clearly-delimited 'Domain context provided by the user' block. Unlike custom_prompt, this does NOT replace the default prompt — it grounds the default labeler so labels use the right domain vocabulary. Example: 'These are scenes from pharmaceutical TV ads' turns generic labels like 'People Talking Outdoors' into 'Patient Testimonial Scenes'. Max 2000 characters.","maxLength":2000,"example":"These are scenes from pharmaceutical TV advertisements","uniqueKey":"llm_labeling.oneOf.0.labeling_context.oneOf.0","typeLabel":"string"},{"type":"null","title":"Labeling Context","description":"OPTIONAL. Freeform domain context about the data being clustered, injected into the labeling prompt as a clearly-delimited 'Domain context provided by the user' block. Unlike custom_prompt, this does NOT replace the default prompt — it grounds the default labeler so labels use the right domain vocabulary. Example: 'These are scenes from pharmaceutical TV ads' turns generic labels like 'People Talking Outdoors' into 'Patient Testimonial Scenes'. Max 2000 characters.","example":"These are scenes from pharmaceutical TV advertisements","uniqueKey":"llm_labeling.oneOf.0.labeling_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.labeling_context","typeLabel":"string | null"},"custom_prompt":{"oneOf":[{"type":"string","title":"Custom Prompt","description":"OPTIONAL. Custom prompt template for LLM labeling. NOT REQUIRED - uses default discriminative prompt if not provided. When provided, completely replaces the default prompt. Your custom prompt receives cluster information but you must format it yourself. Use when: - Need domain-specific labeling (e.g., medical, legal, technical) - Want different label format (e.g., emoji labels, code names) - Require specific output structure - Have custom business logic for categorization Default prompt includes: cluster document samples, forbidden labels for uniqueness, and JSON response format. See engine/clusters/labeling/prompts.py for reference. Example: 'Analyze these product clusters and generate SHORT category names (2-3 words max) focusing on product type and price range. Return JSON: [{\"cluster_id\": \"cl_0\", \"label\": \"...\"}]'","example":"Analyze these document clusters and generate technical labels (2-3 words). Focus on programming languages and frameworks mentioned. Return JSON: [{'cluster_id': 'cl_0', 'label': '...', 'keywords': [...]}]","uniqueKey":"llm_labeling.oneOf.0.custom_prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Custom Prompt","description":"OPTIONAL. Custom prompt template for LLM labeling. NOT REQUIRED - uses default discriminative prompt if not provided. When provided, completely replaces the default prompt. Your custom prompt receives cluster information but you must format it yourself. Use when: - Need domain-specific labeling (e.g., medical, legal, technical) - Want different label format (e.g., emoji labels, code names) - Require specific output structure - Have custom business logic for categorization Default prompt includes: cluster document samples, forbidden labels for uniqueness, and JSON response format. See engine/clusters/labeling/prompts.py for reference. Example: 'Analyze these product clusters and generate SHORT category names (2-3 words max) focusing on product type and price range. Return JSON: [{\"cluster_id\": \"cl_0\", \"label\": \"...\"}]'","example":"Analyze these document clusters and generate technical labels (2-3 words). Focus on programming languages and frameworks mentioned. Return JSON: [{'cluster_id': 'cl_0', 'label': '...', 'keywords': [...]}]","uniqueKey":"llm_labeling.oneOf.0.custom_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.custom_prompt","typeLabel":"string | null"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","additionalProperties":true,"uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"OPTIONAL. Define custom structured output for LLM labeling. NOT REQUIRED - uses default structure (label, summary, keywords) if not provided. When provided, LLM output will match this structure and be stored in cluster documents. \n\nTwo modes supported:\n1. Natural language prompt (string): Describe desired output in plain English\n - Service automatically infers JSON schema from your description\n - Example: 'Extract cluster category, confidence score (0-1), and top 3 representative terms'\n - Auto-generates schema with appropriate types (string, number, array, etc.)\n\n2. Explicit JSON schema (dict): Provide complete JSON schema for output structure\n - Full control over output structure, types, and constraints\n - Example: {'type': 'object', 'properties': {'category': {'type': 'string'}, ...}}\n\n\nUse when:\n - Need custom metadata fields (confidence scores, sentiment, complexity)\n - Want domain-specific structure (taxonomy hierarchies, entity extractions)\n - Require specific data types (arrays, nested objects, enums)\n - Have downstream schema requirements\n\n\nOutput fields are automatically added to cluster collection schema and stored in metadata.\nDefault behavior (if not provided): label (string), summary (string), keywords (array of strings)\n","example":"Extract cluster category, confidence score between 0 and 1, and top 3 representative keywords","uniqueKey":"llm_labeling.oneOf.0.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.response_shape","typeLabel":"string | Response Shape · object | null"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","description":"Provider-specific parameters forwarded to the LLM service. For OpenAI: temperature, max_tokens, top_p, json_output, etc. For Google: temperature, top_k, max_output_tokens, json_output, etc.","uniqueKey":"llm_labeling.oneOf.0.parameters","typeLabel":"Parameters · object"},"candidate_labels":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.0","typeLabel":"string[]"},{"type":"object","title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1.additionalProperties","typeLabel":"string | null"},"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.1","typeLabel":"Candidate Labels · object"},{"type":"null","title":"Candidate Labels","description":"OPTIONAL. A fixed vocabulary to label clusters from. Each cluster gets the candidate that best fits its representative documents, instead of a freshly written name. Pass a list of labels, or a map of label to a one-line description of what belongs under it. Up to 255 labels. REQUIRED when provider is 'typesafe' (Jev) unless response_shape is an explicit schema of closed-set fields, because Jev picks from options and does not write text. The picked label's probability is stored as label_confidence. Useful for mapping clusters onto an existing taxonomy level, and for labeling every level of a hierarchical run with a consistent vocabulary.","example":["Skateboarding","Surfing","Snowboarding","Cooking"],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels.oneOf.2","typeLabel":"null"}],"uniqueKey":"llm_labeling.oneOf.0.candidate_labels","typeLabel":"string[] | Candidate Labels · object | null"}},"uniqueKey":"llm_labeling.oneOf.0","typeLabel":"LLMLabeling · object"},{"type":"null","description":"Optional configuration for LLM-based cluster labeling. When provided with enabled=True, clusters will have semantic labels generated by LLM instead of generic labels like 'Cluster 0'. When not provided or enabled=False, uses fallback labels.","uniqueKey":"llm_labeling.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling","typeLabel":"LLMLabeling · object | null"},"enrich_source_collection":{"type":"boolean","title":"Enrich Source Collection","description":"If True, cluster results are written back to source collection(s) in-place instead of creating new output collections. Documents will be enriched with cluster_id, cluster_label, distance_to_centroid, and optionally other metadata. Similar to taxonomy enrichment pattern.","default":false,"uniqueKey":"enrich_source_collection","typeLabel":"boolean"},"source_enrichment_config":{"oneOf":[{"type":"object","title":"SourceEnrichmentConfig","description":"Configuration for source collection enrichment (only used if enrich_source_collection=True). Controls which fields are added to source documents and field naming conventions.","example":{"field_mappings":[{"source_field":"cluster_id","target_field":"category_id"},{"source_field":"cluster_label","target_field":"category_name"},{"source_field":"distance_to_centroid","target_field":"category_confidence"}]},"properties":{"field_mappings":{"items":{"properties":{"source_field":{"type":"string","title":"Source Field","description":"Field from cluster results to include. Available fields: cluster_id, cluster_label, distance_to_centroid, member_count, keywords, x, y, z (visualization coords), metadata.*. cluster_id is the run's cluster index (cl_0, cl_1, ...); an execution with a filters override writes it qualified by that partition (\u003cpartition>:cl_0), so partitions of one cluster never share a value.","isRequired":true,"uniqueKey":"source_enrichment_config.oneOf.0.field_mappings.items.[INDEX].source_field","typeLabel":"string"},"target_field":{"type":"string","title":"Target Field","description":"Target field name in enriched document. Example: 'category_id' for cluster_id, 'product_category' for cluster_label","isRequired":true,"uniqueKey":"source_enrichment_config.oneOf.0.field_mappings.items.[INDEX].target_field","typeLabel":"string"}},"type":"object","required":["source_field","target_field"],"title":"EnrichmentFieldMapping","description":"Maps a cluster result field to a document enrichment field.\n\nSimilar to InputMapping pattern used throughout Mixpeek.","uniqueKey":"source_enrichment_config.oneOf.0.field_mappings.items.[INDEX]","typeLabel":"EnrichmentFieldMapping · object"},"type":"array","title":"Field Mappings","description":"List of field mappings from cluster results to document fields. Default includes cluster_id and cluster_label. Can include: distance_to_centroid, member_count, keywords, visualization coords (x, y, z), etc.","uniqueKey":"source_enrichment_config.oneOf.0.field_mappings","typeLabel":"EnrichmentFieldMapping · object[]"}},"uniqueKey":"source_enrichment_config.oneOf.0","typeLabel":"SourceEnrichmentConfig · object"},{"type":"null","description":"Configuration for source collection enrichment (only used if enrich_source_collection=True). Controls which fields are added to source documents and field naming conventions.","uniqueKey":"source_enrichment_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"source_enrichment_config","typeLabel":"SourceEnrichmentConfig · object | null"},"auto_execute_on_batch":{"type":"boolean","title":"Auto Execute On Batch","description":"Automatically execute this cluster whenever a batch completes on any of its input collections. When True, a ClusterApplicationConfig entry is added to each input collection's cluster_applications field at creation time. The cluster will then auto-trigger after each batch completion (subject to cooldown and document threshold). When False (default), the cluster must be executed manually via the API.","default":false,"uniqueKey":"auto_execute_on_batch","typeLabel":"boolean"},"auto_execute_min_documents":{"oneOf":[{"type":"integer","title":"Auto Execute Min Documents","description":"Minimum number of documents required before auto-executing cluster. Only used when auto_execute_on_batch=True. If the collection has fewer documents than this threshold, clustering is skipped.","uniqueKey":"auto_execute_min_documents.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Auto Execute Min Documents","description":"Minimum number of documents required before auto-executing cluster. Only used when auto_execute_on_batch=True. If the collection has fewer documents than this threshold, clustering is skipped.","uniqueKey":"auto_execute_min_documents.oneOf.1","typeLabel":"null"}],"uniqueKey":"auto_execute_min_documents","typeLabel":"integer | null"},"auto_execute_cooldown_seconds":{"type":"integer","title":"Auto Execute Cooldown Seconds","description":"Minimum time (in seconds) between automatic cluster executions. Only used when auto_execute_on_batch=True. Default: 3600 (1 hour).","default":3600,"uniqueKey":"auto_execute_cooldown_seconds","typeLabel":"integer"},"cluster_id":{"type":"string","title":"Cluster Id","description":"Unique cluster identifier","uniqueKey":"cluster_id","typeLabel":"string"},"parquet_path":{"oneOf":[{"type":"string","title":"Parquet Path","description":"S3 path to parquet files with cluster data","uniqueKey":"parquet_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Parquet Path","description":"S3 path to parquet files with cluster data","uniqueKey":"parquet_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"parquet_path","typeLabel":"string | null"},"members_key":{"oneOf":[{"type":"string","title":"Members Key","description":"S3 key to members.parquet (if saved)","uniqueKey":"members_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Members Key","description":"S3 key to members.parquet (if saved)","uniqueKey":"members_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"members_key","typeLabel":"string | null"},"num_clusters":{"oneOf":[{"type":"integer","title":"Num Clusters","description":"Number of clusters found","uniqueKey":"num_clusters.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Num Clusters","description":"Number of clusters found","uniqueKey":"num_clusters.oneOf.1","typeLabel":"null"}],"uniqueKey":"num_clusters","typeLabel":"integer | null"},"cluster_stats":{"oneOf":[{"type":"object","title":"ClusterStats","description":"Clustering quality metrics","required":["num_clusters"],"properties":{"num_clusters":{"type":"integer","title":"Num Clusters","isRequired":true,"uniqueKey":"cluster_stats.oneOf.0.num_clusters","typeLabel":"integer"},"noise_points":{"oneOf":[{"type":"integer","title":"Noise Points","description":"Number of noise points (for DBSCAN, etc.)","uniqueKey":"cluster_stats.oneOf.0.noise_points.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Noise Points","description":"Number of noise points (for DBSCAN, etc.)","uniqueKey":"cluster_stats.oneOf.0.noise_points.oneOf.1","typeLabel":"null"}],"uniqueKey":"cluster_stats.oneOf.0.noise_points","typeLabel":"integer | null"},"silhouette_score":{"oneOf":[{"type":"number","title":"Silhouette Score","description":"Silhouette score (-1 to 1, higher is better)","uniqueKey":"cluster_stats.oneOf.0.silhouette_score.oneOf.0","typeLabel":"number"},{"type":"null","title":"Silhouette Score","description":"Silhouette score (-1 to 1, higher is better)","uniqueKey":"cluster_stats.oneOf.0.silhouette_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"cluster_stats.oneOf.0.silhouette_score","typeLabel":"number | null"},"extra":{"additionalProperties":true,"type":"object","title":"Extra","uniqueKey":"cluster_stats.oneOf.0.extra","typeLabel":"Extra · object"}},"uniqueKey":"cluster_stats.oneOf.0","typeLabel":"ClusterStats · object"},{"type":"null","description":"Clustering quality metrics","uniqueKey":"cluster_stats.oneOf.1","typeLabel":"null"}],"uniqueKey":"cluster_stats","typeLabel":"ClusterStats · object | null"},"status":{"type":"string","enum":["PENDING","QUEUED","IN_PROGRESS","PROCESSING","COMPLETED","COMPLETED_WITH_ERRORS","FAILED","CANCELED","INTERRUPTED","UNKNOWN","SKIPPED","DRAFT","ACTIVE","ARCHIVED","SUSPENDED","DEACTIVATED"],"title":"TaskStatusEnum","description":"Clustering job status","default":"PENDING","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"task_id":{"oneOf":[{"type":"string","title":"Task Id","description":"Associated task ID for clustering job","uniqueKey":"task_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Task Id","description":"Associated task ID for clustering job","uniqueKey":"task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"task_id","typeLabel":"string | null"},"last_run_id":{"oneOf":[{"type":"string","title":"Last Run Id","description":"Run ID of the most recent successful clustering execution. Used to retrieve execution results.","uniqueKey":"last_run_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Last Run Id","description":"Run ID of the most recent successful clustering execution. Used to retrieve execution results.","uniqueKey":"last_run_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"last_run_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When the cluster was created","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"When the cluster was last updated","uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"}},"type":"object","title":"ClusterModel","description":"Cluster metadata stored in MongoDB.","examples":[{"cluster_name":"products_clip_hdbscan","cluster_type":"vector","collection_ids":["col_products_v1","col_products_v2"],"llm_labeling":{"enabled":true,"labeling_inputs":{"input_mappings":[{"input_key":"text","path":"description","source_type":"payload"}]},"model_name":"gpt-4o-mini-2024-07-18","provider":"openai"},"vector_config":{"clustering_method":"hdbscan","feature_uri":"mixpeek://clip_vit_l_14@v1/embedding","hdbscan_parameters":{"min_cluster_size":10,"min_samples":5},"sample_size":5000}},{"cluster_name":"video_multimodal_clustering","cluster_type":"vector","collection_ids":["col_videos_v1"],"llm_labeling":{"enabled":true,"include_keywords":true,"include_summary":true,"labeling_inputs":{"input_mappings":[{"input_key":"text","path":"title","source_type":"payload"},{"input_key":"video_url","path":"video_url","source_type":"payload"}]},"model_name":"gemini-3.5-flash-lite","provider":"google"},"vector_config":{"clustering_method":"hdbscan","feature_uri":"mixpeek://clip_vit_l_14@v1/embedding","hdbscan_parameters":{"min_cluster_size":5,"min_samples":3},"sample_size":3000}},{"cluster_name":"image_multimodal_clustering","cluster_type":"vector","collection_ids":["col_images_v1"],"llm_labeling":{"enabled":true,"labeling_inputs":{"input_mappings":[{"input_key":"text","path":"caption","source_type":"payload"},{"input_key":"image_url","path":"image_url","source_type":"payload"}]},"model_name":"gemini-3.5-flash-lite","provider":"google"},"vector_config":{"clustering_method":"kmeans","feature_uri":"mixpeek://clip_vit_l_14@v1/embedding","kmeans_parameters":{"n_clusters":10},"sample_size":2000}},{"attribute_config":{"attributes":["status"],"hierarchical_grouping":true},"cluster_name":"orders_group_by_status","cluster_type":"attribute","collection_ids":["col_orders_v1","col_orders_v2","col_orders_v3"]}],"uniqueKey":"","typeLabel":"ClusterModel · object"},"examples":{"Example":{"title":"Example","value":{"cluster_name":"products_clip_hdbscan","cluster_type":"vector","collection_ids":["col_products_v1","col_products_v2"],"llm_labeling":{"enabled":true,"labeling_inputs":{"input_mappings":[{"input_key":"text","path":"description","source_type":"payload"}]},"model_name":"gpt-4o-mini-2024-07-18","provider":"openai"},"vector_config":{"clustering_method":"hdbscan","feature_uri":"mixpeek://clip_vit_l_14@v1/embedding","hdbscan_parameters":{"min_cluster_size":10,"min_samples":5},"sample_size":5000}}}},"exampleType":"generated"}},"exampleType":"generated"},"2b871eb7-4713-41fb-afbb-71d032f6910d":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"eda70920-f7c8-4aaf-9bbd-d240bb395664":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"a81f8b2b-9fe9-4dc5-9d56-96617f2a9913":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"819146f2-65fd-4ada-8c1b-3fbdfd4e229a":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"cb62c2a3-cc8c-4ae3-b162-2d0a0340398c":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"a2259c07-14b0-459a-aa88-8cf5b7584e6f":{"description":"Too Many Requests","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"be67cc28-6bd5-4557-9e9c-6da3fee3af84":{"description":"Internal Server Error","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"},"3a31ad79-9c5d-42a1-a13d-374e3afc23b9":{"description":"Service Unavailable","content":{"application/json":{"schema":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP status code for this error","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"error":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"Stable error type identifier (machine-readable)","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Fine-grained error code for programmatic handling (e.g., namespace_name_taken, feature_extractor_not_found). Present only when consumers may need to branch on a specific error condition.","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Optional structured details to help debugging (validation errors, IDs, etc.)","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"type":"object","required":["message","type"],"title":"ErrorDetail","description":"Error details payload","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"success":{"type":"boolean","title":"Success","description":"Always false for error responses","default":false,"uniqueKey":"success","typeLabel":"boolean"}},"type":"object","required":["status","error"],"title":"ErrorResponse","description":"Error response model.","examples":[{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}],"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"details":{"id":"ns_123","resource":"namespace"},"message":"Namespace not found","type":"NotFoundError"},"status":404,"success":false}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"3f0d5301-3f15-4d84-9f00-dfe4012d78b4":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one in Studio under Settings → API Keys, or with an admin key via `POST /v1/organizations/users/{user_email}/api-keys`. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.","scopes":[],"schemeName":"BearerAuth"},"NamespaceHeader":{"type":"apiKey","in":"header","name":"X-Namespace","description":"Namespace id (`ns_...`), not the namespace name. This scopes the request rather than authenticating it, and it is required on every operation marked `x-mixpeek-namespace-scoped`.","scopes":[],"schemeName":"NamespaceHeader"}}},"servers":{"a3ca4d02-9041-4306-8eae-afdf7d554be4":{"url":"https://api.mixpeek.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one in Studio under Settings → API Keys, or with an admin key via `POST /v1/organizations/users/{user_email}/api-keys`. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one in Studio under Settings → API Keys, or with an admin key via `POST /v1/organizations/users/{user_email}/api-keys`. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"},{"scheme":{"type":"apiKey","in":"header","name":"X-Namespace","description":"Namespace id (`ns_...`), not the namespace name. This scopes the request rather than authenticating it, and it is required on every operation marked `x-mixpeek-namespace-scoped`.","scopes":[],"schemeName":"NamespaceHeader"},"schema":{"title":"X-Namespace","type":"string","description":"Namespace id (`ns_...`), not the namespace name. This scopes the request rather than authenticating it, and it is required on every operation marked `x-mixpeek-namespace-scoped`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"NamespaceHeader","name":"X-Namespace"}],"title":"BearerAuth \u0026 NamespaceHeader"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"mixpeek","siteName":"Mixpeek","title":"Partially Update Cluster - Mixpeek","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/clusters/partially-update-cluster","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-01-23T23:19:11.202Z","originalFileLocation":"api-reference/clusters/partially-update-cluster.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This endpoint partially updates a cluster (PATCH operation). Only provided fields will be updated. At minimum, metadata can always be updated. Immutable fields like cluster_id, status, and computed fields cannot be modified.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mixpeek\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Partially Update Cluster - Mixpeek\">\u003cmeta data-mint-head property=\"og:description\" content=\"This endpoint partially updates a cluster (PATCH operation). Only provided fields will be updated. At minimum, metadata can always be updated. Immutable fields like cluster_id, status, and computed fields cannot be modified.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mixpeek\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mixpeek.mintlify.site/docs/_mintlify/api/og/v2?division=Clusters\u0026amp;title=Partially+Update+Cluster\u0026amp;description=This+endpoint+partially+updates+a+cluster+%28PATCH+operation%29.%0A++++Only+provided+fields+will+be+updated.+At+minimum%2C+metadata+can+always+be+updated.%0A++++Immutable\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=f3489979249de0b1aab6ccc5bca4413b47fe38c94a18087e3fdf910c43d914ea\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Partially Update Cluster - Mixpeek\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This endpoint partially updates a cluster (PATCH operation). Only provided fields will be updated. At minimum, metadata can always be updated. Immutable fields like cluster_id, status, and computed fields cannot be modified.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mixpeek.mintlify.site/docs/_mintlify/api/og/v2?division=Clusters\u0026amp;title=Partially+Update+Cluster\u0026amp;description=This+endpoint+partially+updates+a+cluster+%28PATCH+operation%29.%0A++++Only+provided+fields+will+be+updated.+At+minimum%2C+metadata+can+always+be+updated.%0A++++Immutable\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=f3489979249de0b1aab6ccc5bca4413b47fe38c94a18087e3fdf910c43d914ea\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/mixpeek/FL3jtq6uKM5AAW-Z/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mixpeek\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FC5185\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/clusters/partially-update-cluster.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mixpeek.com/#organization\",\"name\":\"Mixpeek\",\"url\":\"https://docs.mixpeek.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mixpeek/QQyAGObvvz8PjpE0/logo/light.png?fit=max\u0026auto=format\u0026n=QQyAGObvvz8PjpE0\u0026q=85\u0026s=ac5ab550180057404fe833886513775f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mixpeek.com/docs#website\",\"name\":\"Mixpeek\",\"url\":\"https://docs.mixpeek.com/docs\",\"publisher\":{\"@id\":\"https://docs.mixpeek.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster#webpage\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster\",\"name\":\"Partially Update Cluster\",\"description\":\"This endpoint partially updates a cluster (PATCH operation). Only provided fields will be updated. At minimum, metadata can always be updated. Immutable fields like cluster_id, status, and computed fields cannot be modified.\",\"dateModified\":\"2026-01-23T23:19:11.202Z\",\"isPartOf\":{\"@id\":\"https://docs.mixpeek.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Enrich \u0026 Improve\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/taxonomies/create-taxonomy\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Clusters\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/clusters/create-cluster\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Partially Update Cluster\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster#apireference\",\"headline\":\"Partially Update Cluster\",\"name\":\"Partially Update Cluster\",\"description\":\"This endpoint partially updates a cluster (PATCH operation). Only provided fields will be updated. At minimum, metadata can always be updated. Immutable fields like cluster_id, status, and computed fields cannot be modified.\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/partially-update-cluster#webpage\"},\"dateModified\":\"2026-01-23T23:19:11.202Z\",\"publisher\":{\"@id\":\"https://docs.mixpeek.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mixpeek.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mixpeek\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mixpeek","nav":{"global":{"anchors":[{"anchor":"Homepage","icon":"house","href":"https://mixpeek.com"},{"anchor":"Engineering Blog","icon":"newspaper","href":"https://mixpeek.com/blog"},{"anchor":"API Swagger","icon":"file-code","href":"https://api.mixpeek.com/docs"}]},"versions":[{"version":"v1","default":true,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/overview/introduction"}]},{"tab":"Vector Store","pages":[{"title":"Vector Store","href":"/vector-store/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/tutorials/semantic-search"}]},{"tab":"API Reference","groups":[{"group":"Namespaces","pages":[{"openapi":"post /v1/namespaces","title":"Create Namespace","href":"/api-reference/namespaces/create-namespace"},{"openapi":"get /v1/namespaces/{namespace_identifier}","title":"Get Namespace","href":"/api-reference/namespaces/get-namespace"},{"openapi":"put /v1/namespaces/{namespace_identifier}","title":"Update Namespace","href":"/api-reference/namespaces/update-namespace"},{"openapi":"patch /v1/namespaces/{namespace_identifier}","title":"Partially Update Namespace","href":"/api-reference/namespaces/partially-update-namespace"},{"openapi":"post /v1/namespaces/list","title":"List Namespaces","href":"/api-reference/namespaces/list-namespaces"},{"openapi":"get /v1/namespaces/{namespace_identifier}/stats","title":"Get Namespace Stats","href":"/api-reference/namespaces/get-namespace-stats"},{"openapi":"delete /v1/namespaces/{namespace_identifier}","title":"Delete Namespace","href":"/api-reference/namespaces/delete-namespace"},{"group":"Clone","pages":[{"openapi":"post /v1/namespaces/{namespace_identifier}/clone","title":"Clone Namespace","href":"/api-reference/namespace-clone/clone-namespace"}]},{"group":"Migrations","pages":[{"openapi":"post /v1/namespaces/migrations/","title":"Create Migration","href":"/api-reference/namespace-migrations/create-migration"},{"openapi":"get /v1/namespaces/migrations/{migration_id}","title":"Get Migration","href":"/api-reference/namespace-migrations/get-migration"},{"openapi":"post /v1/namespaces/migrations/list","title":"List Migrations","href":"/api-reference/namespace-migrations/list-migrations"},{"openapi":"post /v1/namespaces/migrations/{migration_id}/start","title":"Start Migration","href":"/api-reference/namespace-migrations/start-migration"},{"openapi":"post /v1/namespaces/migrations/validate","title":"Validate Migration","href":"/api-reference/namespace-migrations/validate-migration"},{"openapi":"post /v1/namespaces/migrations/{migration_id}/cancel","title":"Cancel Migration","href":"/api-reference/namespace-migrations/cancel-migration"},{"openapi":"delete /v1/namespaces/migrations/{migration_id}","title":"Delete Migration","href":"/api-reference/namespace-migrations/delete-migration"}]},{"group":"Extractors","pages":[{"openapi":"get /v1/namespaces/{namespace_id}/extractors","title":"List all extractors available to namespace","href":"/api-reference/namespace-extractors/list-all-extractors-available-to-namespace"},{"openapi":"get /v1/namespaces/{namespace_id}/extractors/{extractor_id}","title":"Get extractor details","href":"/api-reference/namespace-extractors/get-extractor-details"}]},{"group":"Models","pages":[{"openapi":"get /v1/namespaces/{namespace_id}/models","title":"List models in namespace","href":"/api-reference/custom-models/list-models-in-namespace"},{"openapi":"post /v1/namespaces/{namespace_id}/models","title":"Upload a custom model","href":"/api-reference/custom-models/upload-a-custom-model"},{"openapi":"get /v1/namespaces/{namespace_id}/models/{model_id}","title":"Get model details","href":"/api-reference/custom-models/get-model-details"},{"openapi":"post /v1/namespaces/{namespace_id}/models/{model_id}/deploy","title":"Deploy model to Ray object store","href":"/api-reference/custom-models/deploy-model-to-ray-object-store"},{"openapi":"post /v1/namespaces/{namespace_id}/models/org/{model_id}/enable","title":"Enable org model for namespace","href":"/api-reference/custom-models/enable-org-model-for-namespace"},{"openapi":"post /v1/namespaces/{namespace_id}/models/org/{model_id}/disable","title":"Disable org model for namespace","href":"/api-reference/custom-models/disable-org-model-for-namespace"},{"openapi":"get /v1/namespaces/{namespace_id}/models/available","title":"List available org models","href":"/api-reference/custom-models/list-available-org-models"},{"openapi":"delete /v1/namespaces/{namespace_id}/models/{model_id}","title":"Delete a model","href":"/api-reference/custom-models/delete-a-model"}]},{"group":"Snapshots","pages":[{"openapi":"post /v1/namespaces/{namespace_identifier}/snapshots","title":"Create Namespace Snapshot","href":"/api-reference/namespace-snapshots/create-namespace-snapshot"},{"openapi":"post /v1/namespaces/{namespace_identifier}/snapshots/list","title":"List Namespace Snapshots","href":"/api-reference/namespace-snapshots/list-namespace-snapshots"},{"openapi":"get /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}","title":"Get Snapshot","href":"/api-reference/namespace-snapshots/get-snapshot"},{"openapi":"delete /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}","title":"Delete Snapshot","href":"/api-reference/namespace-snapshots/delete-snapshot"},{"openapi":"get /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}/verify","title":"Verify Snapshot Restore-Readiness","href":"/api-reference/namespace-snapshots/verify-snapshot-restore-readiness"},{"openapi":"post /v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}/restore","title":"Restore From Snapshot","href":"/api-reference/namespace-snapshots/restore-from-snapshot"}]},{"openapi":"get /v1/namespaces","title":"List Namespaces","href":"/api-reference/namespaces/list-namespaces-get"},{"openapi":"post /v1/namespaces/stats/batch","title":"Get Namespace Stats (Batch)","href":"/api-reference/namespaces/get-namespace-stats-batch"},{"openapi":"post /v1/namespaces/{namespace_identifier}/ensure-indexes","title":"Ensure Namespace Payload Indexes","href":"/api-reference/namespaces/ensure-namespace-payload-indexes"},{"group":"BYO vectors","pages":[{"openapi":"post /v1/namespaces/{namespace_id}/documents/upsert","title":"Upsert documents with BYO vectors","href":"/api-reference/byo-documents/upsert-documents-byo-vectors"},{"openapi":"get /v1/namespaces/{namespace_id}/documents/{document_id}","title":"Get a document by ID (path-scoped namespace)","href":"/api-reference/byo-documents/get-document-id"},{"openapi":"post /v1/namespaces/standalone","title":"Create standalone namespace (BYO vectors)","href":"/api-reference/byo-documents/create-standalone-namespace"},{"openapi":"post /v1/namespaces/{namespace_id}/promote","title":"Promote standalone namespace to managed mode","href":"/api-reference/byo-documents/promote-standalone-namespace-managed-mode"},{"openapi":"post /v1/namespaces/{namespace_id}/promote/validate","title":"Dry-run validate a standalone → managed promotion","href":"/api-reference/byo-documents/dry-run-validate-standalone-managed-promotion"}]}]},{"group":"Buckets","pages":[{"openapi":"post /v1/buckets","title":"Create Bucket","href":"/api-reference/buckets/create-bucket"},{"openapi":"get /v1/buckets/{bucket_identifier}","title":"Get Bucket","href":"/api-reference/buckets/get-bucket"},{"openapi":"put /v1/buckets/{bucket_identifier}","title":"Update Bucket","href":"/api-reference/buckets/update-bucket"},{"openapi":"patch /v1/buckets/{bucket_identifier}","title":"Partially Update Bucket","href":"/api-reference/buckets/partially-update-bucket"},{"openapi":"post /v1/buckets/list","title":"List Buckets","href":"/api-reference/buckets/list-buckets"},{"openapi":"delete /v1/buckets/{bucket_identifier}","title":"Delete Bucket","href":"/api-reference/buckets/delete-bucket"},{"group":"Syncs","pages":[{"openapi":"post /v1/buckets/{bucket_id}/syncs/list","title":"List Sync Configurations","href":"/api-reference/bucket-syncs/list-sync-configurations"},{"openapi":"post /v1/buckets/{bucket_id}/syncs","title":"Create Sync Configuration","href":"/api-reference/bucket-syncs/create-sync-configuration"},{"openapi":"get /v1/buckets/{bucket_id}/syncs/{sync_config_id}","title":"Get Sync Configuration","href":"/api-reference/bucket-syncs/get-sync-configuration"},{"openapi":"patch /v1/buckets/{bucket_id}/syncs/{sync_config_id}","title":"Update Sync Configuration","href":"/api-reference/bucket-syncs/update-sync-configuration"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/pause","title":"Pause Sync Configuration","href":"/api-reference/bucket-syncs/pause-sync-configuration"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/resume","title":"Resume Sync Configuration","href":"/api-reference/bucket-syncs/resume-sync-configuration"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/trigger","title":"Trigger Sync Configuration","href":"/api-reference/bucket-syncs/trigger-sync-configuration"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/unlock","title":"Force Unlock Sync Configuration","href":"/api-reference/bucket-syncs/force-unlock-sync-configuration"},{"openapi":"delete /v1/buckets/{bucket_id}/syncs/{sync_config_id}","title":"Delete Sync Configuration","href":"/api-reference/bucket-syncs/delete-sync-configuration"},{"openapi":"get /v1/buckets/{bucket_id}/syncs/{sync_config_id}/metrics","title":"Get Sync Metrics","href":"/api-reference/bucket-syncs/get-sync-metrics"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/jobs","title":"List Sync Jobs","href":"/api-reference/bucket-syncs/list-sync-jobs"},{"openapi":"get /v1/buckets/{bucket_id}/syncs/{sync_config_id}/jobs/{sync_job_id}","title":"Get Sync Job","href":"/api-reference/bucket-syncs/get-sync-job"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/dlq","title":"List Dlq Entries","href":"/api-reference/bucket-syncs/list-dlq-entries"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/dlq/requeue","title":"Requeue Dlq Entries","href":"/api-reference/bucket-syncs/requeue-dlq-entries"},{"openapi":"post /v1/buckets/{bucket_id}/syncs/{sync_config_id}/dlq/bulk-mark-failed","title":"Bulk Mark Dlq Permanently Failed","href":"/api-reference/bucket-syncs/bulk-mark-dlq-permanently-failed"}]},{"group":"Source adapter","pages":[{"openapi":"get /v1/buckets/{bucket_id}/source-adapter/status","title":"Get Adapter Status","href":"/api-reference/bucket-source-adapter/get-source-adapter-status"},{"openapi":"post /v1/buckets/{bucket_id}/source-adapter/refresh","title":"Refresh Source Adapter","href":"/api-reference/bucket-source-adapter/refresh-source-adapter"}]},{"group":"Objects","pages":[{"openapi":"post /v1/buckets/{bucket_identifier}/objects","title":"Create Object","href":"/api-reference/bucket-objects/create-object"},{"openapi":"post /v1/buckets/{bucket_identifier}/objects/batch","title":"Create Objects in Batch","href":"/api-reference/bucket-objects/create-objects-in-batch"},{"openapi":"get /v1/buckets/{bucket_identifier}/objects/{object_identifier}","title":"Get Object","href":"/api-reference/bucket-objects/get-object"},{"openapi":"put /v1/buckets/{bucket_identifier}/objects/{object_identifier}","title":"Update Object","href":"/api-reference/bucket-objects/update-object"},{"openapi":"patch /v1/buckets/{bucket_identifier}/objects/{object_identifier}","title":"Partially Update Object","href":"/api-reference/bucket-objects/partially-update-object"},{"openapi":"post /v1/buckets/{bucket_identifier}/objects/list","title":"List Objects","href":"/api-reference/bucket-objects/list-objects"},{"openapi":"post /v1/buckets/{bucket_identifier}/objects/aggregate","title":"Aggregate Objects","href":"/api-reference/bucket-objects/aggregate-objects"},{"openapi":"delete /v1/buckets/{bucket_identifier}/objects/{object_identifier}","title":"Delete Object","href":"/api-reference/bucket-objects/delete-object"},{"openapi":"get /v1/buckets/{bucket_identifier}/objects","title":"List Objects (GET)","href":"/api-reference/bucket-objects/list-objects-get"},{"openapi":"post /v1/buckets/{bucket_identifier}/objects/bulk-soft-delete","title":"Bulk Soft-Delete Objects","href":"/api-reference/bucket-objects/bulk-soft-delete-objects"}]},{"group":"Uploads","pages":[{"openapi":"post /v1/buckets/{bucket_identifier}/uploads","title":"Create Upload","href":"/api-reference/bucket-uploads/create-upload"},{"openapi":"post /v1/buckets/{bucket_identifier}/uploads/batch","title":"Batch Create Uploads","href":"/api-reference/bucket-uploads/batch-create-uploads"},{"openapi":"get /v1/buckets/{bucket_identifier}/uploads/{upload_id}","title":"Get Upload","href":"/api-reference/bucket-uploads/get-upload"},{"openapi":"post /v1/buckets/{bucket_identifier}/uploads/{upload_id}/confirm","title":"Confirm Upload","href":"/api-reference/bucket-uploads/confirm-upload"},{"openapi":"post /v1/buckets/{bucket_identifier}/uploads/confirm/batch","title":"Batch Confirm Uploads","href":"/api-reference/bucket-uploads/batch-confirm-uploads"},{"openapi":"post /v1/buckets/{bucket_identifier}/uploads/list","title":"List Uploads","href":"/api-reference/bucket-uploads/list-uploads"},{"openapi":"delete /v1/buckets/{bucket_identifier}/uploads/{upload_id}","title":"Delete Upload","href":"/api-reference/bucket-uploads/delete-upload"}]},{"group":"Batches","pages":[{"openapi":"post /v1/buckets/{bucket_identifier}/batches","title":"Create Batch","href":"/api-reference/bucket-batches/create-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/objects","title":"Add Objects to Batch","href":"/api-reference/bucket-batches/add-objects-to-batch"},{"openapi":"get /v1/buckets/{bucket_identifier}/batches/{batch_id}","title":"Get Batch Configuration","href":"/api-reference/bucket-batches/get-batch-configuration"},{"openapi":"patch /v1/buckets/{bucket_identifier}/batches/{batch_id}","title":"Partially Update Batch","href":"/api-reference/bucket-batches/partially-update-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/submit","title":"Submit Batch for Processing","href":"/api-reference/bucket-batches/submit-batch-for-processing"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/submit-all","title":"Submit All Draft Batches","href":"/api-reference/bucket-batches/submit-all-draft-batches"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/list","title":"List Batches","href":"/api-reference/bucket-batches/list-batches"},{"openapi":"get /v1/buckets/{bucket_identifier}/batches/{batch_id}/logs","title":"Get Ray Job Logs for Batch","href":"/api-reference/bucket-batches/get-ray-job-logs-for-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/cancel","title":"Cancel Batch","href":"/api-reference/bucket-batches/cancel-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/tiers/{tier_num}/cancel","title":"Cancel Tier","href":"/api-reference/bucket-batches/cancel-tier"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/tiers/{tier_num}/jobs/{ray_job_id}/cancel","title":"Cancel Job","href":"/api-reference/bucket-batches/cancel-job"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/tiers/{tier_num}/retry","title":"Retry Tier with Resource Overrides","href":"/api-reference/bucket-batches/retry-tier"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/retry","title":"Retry Failed Documents","href":"/api-reference/bucket-batches/retry-failed-documents"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/resubmit","title":"Resubmit Failed Batch","href":"/api-reference/bucket-batches/resubmit-failed-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/tiers/{tier_num}/heal","title":"Manual Self-Healing","href":"/api-reference/bucket-batches/heal-tier"},{"openapi":"get /v1/buckets/{bucket_identifier}/batches/{batch_id}/diagnose","title":"Diagnose Batch","href":"/api-reference/bucket-batches/diagnose-batch"},{"openapi":"get /v1/buckets/{bucket_identifier}/batches/{batch_id}/failed-documents","title":"Get Failed Documents for Batch","href":"/api-reference/bucket-batches/get-failed-documents-for-batch"},{"openapi":"delete /v1/buckets/{bucket_identifier}/batches/{batch_id}/documents","title":"Delete Documents Produced by Batch","href":"/api-reference/bucket-batches/delete-documents-produced-by-batch"},{"openapi":"delete /v1/buckets/{bucket_identifier}/batches/{batch_id}","title":"Delete Batch","href":"/api-reference/bucket-batches/delete-batch"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/{batch_id}/estimate-cost","title":"Estimate Batch Cost (pre-flight, dry-run)","href":"/api-reference/bucket-batches/estimate-batch-cost"},{"openapi":"post /v1/buckets/{bucket_identifier}/batches/bulk-submit","title":"Bulk-submit a whole bucket as N auto-chunked, auto-queued batches","href":"/api-reference/bucket-batches/bulk-submit-whole-bucket-n-auto"},{"openapi":"get /v1/buckets/{bucket_identifier}/batches/{batch_id}/audit","title":"Tier-completion invariant audit","href":"/api-reference/bucket-batches/tier-completion-invariant-audit"}]},{"openapi":"get /v1/buckets","title":"List Buckets","href":"/api-reference/buckets/list-buckets-get"}]},{"group":"Collections","pages":[{"openapi":"post /v1/collections","title":"Create Collection","href":"/api-reference/collections/create-collection"},{"openapi":"post /v1/collections/{collection_identifier}/clone","title":"Clone Collection","href":"/api-reference/collections/clone-collection"},{"openapi":"get /v1/collections/{collection_identifier}","title":"Get Collection","href":"/api-reference/collections/get-collection"},{"openapi":"patch /v1/collections/{collection_identifier}","title":"Update Collection","href":"/api-reference/collections/update-collection"},{"openapi":"get /v1/collections/{collection_identifier}/features","title":"Describe collection features","href":"/api-reference/collections/describe-collection-features"},{"openapi":"post /v1/collections/list","title":"List Collections","href":"/api-reference/collections/list-collections"},{"openapi":"post /v1/collections/{collection_identifier}/export","title":"Export Collection","href":"/api-reference/collections/export-collection"},{"openapi":"post /v1/collections/{collection_identifier}/trigger","title":"Trigger Collection Processing","href":"/api-reference/collections/trigger-collection-processing"},{"openapi":"delete /v1/collections/{collection_identifier}","title":"Delete Collection","href":"/api-reference/collections/delete-collection"},{"openapi":"get /v1/collections/{collection_identifier}/reconciliation","title":"Reconcile objects vs documents","href":"/api-reference/collections/reconcile-collection"},{"openapi":"get /v1/collections/{collection_identifier}/documents/{document_id}/diagnostics","title":"Per-document support diagnostics (visibility, failures, history).","href":"/api-reference/collections/document-diagnostics"},{"group":"Schema","pages":[{"openapi":"post /v1/collections/{collection_id}/sync-schema","title":"Sync Collection Schema","href":"/api-reference/collection-schema/sync-collection-schema"}]},{"group":"Documents","pages":[{"openapi":"post /v1/collections/{collection_identifier}/documents","title":"Create a document.","href":"/api-reference/collection-documents/create-a-document"},{"openapi":"get /v1/collections/{collection_identifier}/documents/{document_id}","title":"Get a document by ID.","href":"/api-reference/collection-documents/get-a-document-by-id"},{"openapi":"get /v1/collections/{collection_identifier}/documents/{document_id}/download","title":"Download frame-accurate scene media for this document.","href":"/api-reference/collection-documents/download-document-media"},{"openapi":"put /v1/collections/{collection_identifier}/documents/{document_id}","title":"Update Document","href":"/api-reference/collection-documents/update-document"},{"openapi":"patch /v1/collections/{collection_identifier}/documents/{document_id}","title":"Patch Document","href":"/api-reference/collection-documents/patch-document"},{"openapi":"patch /v1/collections/{collection_identifier}/documents/{document_id}/acl","title":"Update a document's access control list (ACL).","href":"/api-reference/collection-documents/update-a-documents-access-control-list-acl"},{"openapi":"post /v1/collections/{collection_identifier}/documents/list","title":"List documents.","href":"/api-reference/collection-documents/list-documents"},{"openapi":"post /v1/collections/{collection_identifier}/documents/aggregate","title":"Aggregate Documents","href":"/api-reference/collection-documents/aggregate-documents"},{"openapi":"post /v1/collections/{collection_identifier}/documents/distinct","title":"Return distinct values for a single field.","href":"/api-reference/collection-documents/return-distinct-values-for-a-single-field"},{"openapi":"patch /v1/collections/{collection_identifier}/documents/bulk","title":"Bulk Update Documents","href":"/api-reference/collection-documents/bulk-update-documents"},{"openapi":"post /v1/collections/{collection_identifier}/documents/batch","title":"Batch Update Documents","href":"/api-reference/collection-documents/batch-update-documents"},{"openapi":"delete /v1/collections/{collection_identifier}/documents/batch","title":"Batch Delete Documents","href":"/api-reference/collection-documents/batch-delete-documents"},{"openapi":"delete /v1/collections/{collection_identifier}/documents/{document_id}","title":"Delete a document by ID.","href":"/api-reference/collection-documents/delete-a-document-by-id"},{"openapi":"post /v1/collections/{collection_identifier}/documents/schema/validate","title":"Validate document against collection schema","href":"/api-reference/collection-documents/validate-document-schema"},{"openapi":"get /v1/collections/{collection_identifier}/documents/count","title":"Count documents in a collection.","href":"/api-reference/collection-documents/count-documents-collection"},{"openapi":"get /v1/collections/{collection_identifier}/documents/{document_id}/ancestors","title":"Get document ancestors (lineage chain root → parent).","href":"/api-reference/collection-documents/get-document-ancestors"},{"openapi":"get /v1/collections/{collection_identifier}/documents/{document_id}/descendants","title":"Get direct downstream documents (depth=1 children).","href":"/api-reference/collection-documents/get-direct-downstream-documents"},{"openapi":"get /v1/collections/{collection_identifier}/documents","title":"List documents.","href":"/api-reference/collection-documents/list-documents-get"}]},{"group":"Lineage","pages":[{"openapi":"get /v1/collections/{collection_id}/documents/{document_id}/lineage","title":"Get document lineage","href":"/api-reference/document-lineage/get-document-lineage"},{"openapi":"get /v1/objects/{object_id}/documents","title":"Get all documents derived from an object","href":"/api-reference/document-lineage/get-all-documents-derived-from-an-object"},{"openapi":"get /v1/objects/{object_id}/decomposition-tree","title":"Get decomposition tree visualization","href":"/api-reference/document-lineage/get-decomposition-tree-visualization"}]},{"group":"Lifecycle","pages":[{"openapi":"get /v1/collections/{collection_identifier}/lifecycle","title":"Get Lifecycle Status","href":"/api-reference/collection-lifecycle/get-lifecycle-status"},{"openapi":"patch /v1/collections/{collection_identifier}/lifecycle","title":"Transition Lifecycle","href":"/api-reference/collection-lifecycle/transition-lifecycle"}]},{"group":"Taxonomies","pages":[{"openapi":"post /v1/collections/{collection_identifier}/apply-taxonomy","title":"Apply Taxonomy to Existing Documents","href":"/api-reference/collection-taxonomies/apply-taxonomy-to-existing-documents"}]},{"group":"Import","pages":[{"openapi":"post /v1/collections/import/infer","title":"Infer import schema","href":"/api-reference/collections/infer-import-schema"},{"openapi":"post /v1/collections/import/validate-mapping","title":"Validate an import mapping","href":"/api-reference/collections/validate-import-mapping"},{"openapi":"post /v1/collections/{collection_identifier}/import","title":"Import external documents into a collection","href":"/api-reference/collections/import-collection-documents"}]},{"openapi":"get /v1/collections/features","title":"Discover Features","href":"/api-reference/features/discover-features"}]},{"group":"Feature Extractors","pages":[{"openapi":"get /v1/collections/features/extractors","title":"List Feature Extractors","href":"/api-reference/feature-extractors/list-feature-extractors"},{"openapi":"get /v1/collections/features/extractors/{feature_extractor_id}","title":"Get Feature Extractor by Name","href":"/api-reference/feature-extractors/get-feature-extractor-by-name"},{"group":"Marketplace","pages":[{"openapi":"get /v1/public/extractors/","title":"List Public Extractors","href":"/api-reference/public-extractor-marketplace/list-public-extractors"},{"openapi":"get /v1/public/extractors/{public_name}","title":"Get Public Extractor","href":"/api-reference/public-extractor-marketplace/get-public-extractor"}]},{"group":"Publishing","pages":[{"openapi":"post /v1/extractors/{extractor_id}/publish","title":"Publish an extractor to the marketplace","href":"/api-reference/extractor-publishing/publish-extractor-marketplace"},{"openapi":"get /v1/extractors/{extractor_id}/publish","title":"Get published extractor status","href":"/api-reference/extractor-publishing/get-published-extractor-status"},{"openapi":"patch /v1/extractors/{extractor_id}/publish","title":"Update published extractor","href":"/api-reference/extractor-publishing/update-published-extractor"},{"openapi":"delete /v1/extractors/{extractor_id}/publish","title":"Unpublish an extractor","href":"/api-reference/extractor-publishing/unpublish-extractor"},{"openapi":"post /v1/extractors/install","title":"Install a public extractor","href":"/api-reference/extractor-publishing/install-public-extractor"}]},{"group":"Submissions","pages":[{"openapi":"get /v1/extractors","title":"List all extractors available to organization","href":"/api-reference/extractor-submissions/list-all-extractors-available-organization"},{"openapi":"post /v1/extractors/submissions/uploads","title":"Get presigned URL for extractor submission","href":"/api-reference/extractor-submissions/get-presigned-url-extractor-submission"},{"openapi":"post /v1/extractors/submissions/uploads/{submission_id}/confirm","title":"Confirm extractor submission upload","href":"/api-reference/extractor-submissions/confirm-extractor-submission-upload"},{"openapi":"get /v1/extractors/submissions","title":"List extractor submissions","href":"/api-reference/extractor-submissions/list-extractor-submissions"},{"openapi":"get /v1/extractors/submissions/{submission_id}","title":"Get submission details","href":"/api-reference/extractor-submissions/get-submission-details"}]}]},{"group":"Documents","pages":[{"openapi":"get /v1/documents/{document_id}","title":"Get a document by ID (namespace-scoped).","href":"/api-reference/documents/get-a-document-by-id-namespace-scoped"},{"openapi":"put /v1/documents/{document_id}","title":"Update a document by ID (namespace-scoped).","href":"/api-reference/documents/update-a-document-by-id-namespace-scoped"},{"openapi":"patch /v1/documents/{document_id}","title":"Partially update a document by ID (namespace-scoped).","href":"/api-reference/documents/partially-update-a-document-by-id-namespace-scoped"},{"openapi":"post /v1/documents/list","title":"List documents across all collections (namespace-scoped).","href":"/api-reference/documents/list-documents-across-all-collections-namespace-scoped"},{"openapi":"post /v1/documents/batch-get","title":"Batch get documents by IDs","href":"/api-reference/documents/batch-get-documents-by-ids"},{"openapi":"post /v1/documents/list/batch","title":"Run multiple list-documents queries concurrently.","href":"/api-reference/documents/run-multiple-list-documents-queries-concurrently"}]},{"group":"Retrievers","pages":[{"openapi":"post /v1/retrievers","title":"Create Retriever","href":"/api-reference/retrievers/create-retriever"},{"openapi":"post /v1/retrievers/list","title":"List Retrievers","href":"/api-reference/retrievers/list-retrievers"},{"openapi":"get /v1/retrievers/{retriever_id}","title":"Get Retriever","href":"/api-reference/retrievers/get-retriever"},{"openapi":"patch /v1/retrievers/{retriever_id}","title":"Patch Retriever","href":"/api-reference/retrievers/patch-retriever"},{"openapi":"post /v1/retrievers/{retriever_id}/clone","title":"Clone Retriever","href":"/api-reference/retrievers/clone-retriever"},{"openapi":"delete /v1/retrievers/{retriever_id}","title":"Delete Retriever","href":"/api-reference/retrievers/delete-retriever"},{"openapi":"post /v1/retrievers/{retriever_id}/execute","title":"Execute Retriever (Auto-Optimized)","href":"/api-reference/retrievers/execute-retriever-auto-optimized"},{"openapi":"post /v1/retrievers/{retriever_id}/execute/batch","title":"Batch Execute Retriever","href":"/api-reference/retrievers/batch-execute-retriever"},{"openapi":"post /v1/retrievers/{retriever_id}/executions/list","title":"List Executions","href":"/api-reference/retrievers/list-executions"},{"openapi":"get /v1/retrievers/{retriever_id}/executions/{execution_id}","title":"Get Execution","href":"/api-reference/retrievers/get-execution"},{"openapi":"get /v1/retrievers/{retriever_id}/executions/{execution_id}/status","title":"Get Live Execution Status","href":"/api-reference/retrievers/get-live-execution-status"},{"openapi":"post /v1/retrievers/{retriever_id}/execute/explain","title":"Explain Retriever Execution Plan","href":"/api-reference/retrievers/explain-retriever-execution-plan"},{"openapi":"get /v1/retrievers/{retriever_id}/executions/{execution_id}/profile","title":"Get Execution Query Profile (explain-on-execute read path)","href":"/api-reference/retrievers/get-execution-profile"},{"openapi":"get /v1/retrievers/typeahead","title":"Typeahead","href":"/api-reference/retrievers/typeahead"},{"group":"Stages","pages":[{"openapi":"get /v1/retrievers/stages","title":"List Available Retriever Stages","href":"/api-reference/retriever-stages/list-available-retriever-stages"}]},{"group":"Interactions","pages":[{"openapi":"post /v1/retrievers/interactions","title":"Create Interaction","href":"/api-reference/retriever-interactions/create-interaction"},{"openapi":"post /v1/retrievers/interactions/list","title":"List Interactions","href":"/api-reference/retriever-interactions/list-interactions"},{"openapi":"get /v1/retrievers/interactions/{interaction_id}","title":"Get Interaction","href":"/api-reference/retriever-interactions/get-interaction"},{"openapi":"delete /v1/retrievers/interactions/{interaction_id}","title":"Delete Interaction","href":"/api-reference/retriever-interactions/delete-interaction"},{"openapi":"post /v1/retrievers/interactions/batch","title":"Create Interactions Bulk","href":"/api-reference/retriever-interactions/create-interactions-bulk"}]},{"group":"Evaluations","pages":[{"openapi":"get /v1/retrievers/evaluations/datasets","title":"List evaluation datasets","href":"/api-reference/retriever-evaluations/list-evaluation-datasets"},{"openapi":"post /v1/retrievers/evaluations/datasets","title":"Create evaluation dataset","href":"/api-reference/retriever-evaluations/create-evaluation-dataset"},{"openapi":"get /v1/retrievers/evaluations/datasets/{dataset_identifier}","title":"Get evaluation dataset","href":"/api-reference/retriever-evaluations/get-evaluation-dataset"},{"openapi":"get /v1/retrievers/{retriever_id}/evaluations","title":"List evaluations","href":"/api-reference/retriever-evaluations/list-evaluations"},{"openapi":"post /v1/retrievers/{retriever_id}/evaluations","title":"Run evaluation","href":"/api-reference/retriever-evaluations/run-evaluation"},{"openapi":"get /v1/retrievers/{retriever_id}/evaluations/{evaluation_id}","title":"Get evaluation results","href":"/api-reference/retriever-evaluations/get-evaluation-results"},{"openapi":"post /v1/evaluations/score","title":"Score predictions vs ground truth (stateless)","href":"/api-reference/retriever-evaluations/score-predictions"},{"openapi":"get /v1/evaluations","title":"Discover evaluation endpoints","href":"/api-reference/retriever-evaluations/discover-evaluation-endpoints"},{"openapi":"post /v1/retrievers/{retriever_id}/evaluations/generate-from-interactions","title":"Generate evaluation dataset from interactions","href":"/api-reference/retriever-evaluations/generate-from-interactions"}]},{"group":"Benchmarks","pages":[{"openapi":"get /v1/retrievers/benchmarks","title":"List benchmarks","href":"/api-reference/retriever-benchmarks/list-benchmarks"},{"openapi":"post /v1/retrievers/benchmarks","title":"Create benchmark","href":"/api-reference/retriever-benchmarks/create-benchmark"},{"openapi":"get /v1/retrievers/benchmarks/{benchmark_id}","title":"Get benchmark","href":"/api-reference/retriever-benchmarks/get-benchmark"},{"openapi":"delete /v1/retrievers/benchmarks/{benchmark_id}","title":"Delete benchmark","href":"/api-reference/retriever-benchmarks/delete-benchmark"}]},{"group":"API Keys","pages":[{"openapi":"post /v1/retrievers/{retriever_id}/api-keys","title":"Create Retriever API Key","href":"/api-reference/retriever-api-keys/create-retriever-api-key"},{"openapi":"get /v1/retrievers/{retriever_id}/api-keys","title":"List Retriever API Keys","href":"/api-reference/retriever-api-keys/list-retriever-api-keys"},{"openapi":"delete /v1/retrievers/{retriever_id}/api-keys/{key_id}","title":"Revoke Retriever API Key","href":"/api-reference/retriever-api-keys/revoke-retriever-api-key"}]},{"group":"Adhoc","pages":[{"openapi":"post /v1/retrievers/execute","title":"Execute Adhoc Retriever","href":"/api-reference/adhoc-retrievers/execute-adhoc-retriever"},{"openapi":"post /v1/retrievers/executions/list","title":"List Adhoc Executions","href":"/api-reference/adhoc-retrievers/list-adhoc-executions"},{"openapi":"get /v1/retrievers/executions/{execution_id}","title":"Get Adhoc Execution","href":"/api-reference/adhoc-retrievers/get-adhoc-execution"}]},{"group":"Publishing","pages":[{"openapi":"post /v1/retrievers/{retriever_id}/publish","title":"Publish Retriever","href":"/api-reference/published-retrievers/publish-retriever"},{"openapi":"get /v1/retrievers/published","title":"List Published Retrievers","href":"/api-reference/published-retrievers/list-published-retrievers"},{"openapi":"get /v1/retrievers/{retriever_id}/publish","title":"Get Published Retriever","href":"/api-reference/published-retrievers/get-published-retriever"},{"openapi":"patch /v1/retrievers/{retriever_id}/publish","title":"Update Published Retriever","href":"/api-reference/published-retrievers/update-published-retriever"},{"openapi":"delete /v1/retrievers/{retriever_id}/publish","title":"Unpublish Retriever","href":"/api-reference/published-retrievers/unpublish-retriever"},{"openapi":"get /v1/retrievers/{retriever_id}/publish/availability","title":"Check Name Availability","href":"/api-reference/published-retrievers/check-name-availability"},{"openapi":"get /v1/retrievers/publish/stats","title":"Get Organization Publish Stats","href":"/api-reference/published-retrievers/get-organization-publish-stats"},{"openapi":"post /v1/retrievers/{retriever_id}/publish/reconcile","title":"Reconcile Publish State","href":"/api-reference/published-retrievers/reconcile-publish-state"}]},{"group":"Public Retriever API","pages":[{"openapi":"get /v1/public/retrievers/","title":"List Public Retrievers","href":"/api-reference/public-retriever-api/list-public-retrievers"},{"openapi":"get /v1/public/retrievers/{public_name}/config","title":"Get Public Retriever Config","href":"/api-reference/public-retriever-api/get-public-retriever-config"},{"openapi":"get /v1/public/retrievers/{public_name}/template","title":"Get Public Retriever Template","href":"/api-reference/public-retriever-api/get-public-retriever-template"},{"openapi":"post /v1/public/retrievers/{public_name}/execute","title":"Execute Public Retriever","href":"/api-reference/public-retriever-api/execute-public-retriever"},{"openapi":"post /v1/public/retrievers/{public_name}/verify","title":"Verify Password","href":"/api-reference/public-retriever-api/verify-password"},{"openapi":"post /v1/public/retrievers/{public_name}/interactions","title":"Track Interaction","href":"/api-reference/public-retriever-api/track-interaction"},{"openapi":"post /v1/public/retrievers/{public_name}/interactions/batch","title":"Track Interaction Batch","href":"/api-reference/public-retriever-api/track-interaction-batch"}]},{"group":"Feature search","pages":[{"openapi":"post /v1/features/search","title":"Feature Search","href":"/api-reference/feature-search/feature-search"}]}]},{"group":"Enrich \u0026 Improve","pages":[{"group":"Taxonomies","pages":[{"openapi":"post /v1/taxonomies","title":"Create Taxonomy","href":"/api-reference/taxonomies/create-taxonomy"},{"openapi":"get /v1/taxonomies/{taxonomy_identifier}","title":"Get Taxonomy","href":"/api-reference/taxonomies/get-taxonomy"},{"openapi":"patch /v1/taxonomies/{taxonomy_identifier}","title":"Partially Update Taxonomy","href":"/api-reference/taxonomies/partially-update-taxonomy"},{"openapi":"post /v1/taxonomies/list","title":"List Taxonomies","href":"/api-reference/taxonomies/list-taxonomies"},{"openapi":"post /v1/taxonomies/execute/{taxonomy_identifier}","title":"Test taxonomy configuration (validation only) — DEPRECATED path","href":"/api-reference/taxonomies/test-taxonomy-configuration-validation-only"},{"openapi":"get /v1/taxonomies/{taxonomy_id}/versions","title":"List Taxonomy Versions","href":"/api-reference/taxonomies/list-taxonomy-versions"},{"openapi":"post /v1/taxonomies/{taxonomy_id}/versions","title":"Create Taxonomy Version","href":"/api-reference/taxonomies/create-taxonomy-version"},{"openapi":"post /v1/taxonomies/{taxonomy_identifier}/clone","title":"Clone Taxonomy","href":"/api-reference/taxonomies/clone-taxonomy"},{"openapi":"delete /v1/taxonomies/{taxonomy_identifier}","title":"Delete Taxonomy","href":"/api-reference/taxonomies/delete-taxonomy"},{"group":"Analytics","pages":[{"openapi":"get /v1/taxonomies/{taxonomy_id}/analytics/available-steps","title":"Get Available Steps","href":"/api-reference/taxonomy-analytics/get-available-steps"},{"openapi":"post /v1/taxonomies/{taxonomy_id}/analytics/transitions","title":"Compute step transition analytics","href":"/api-reference/taxonomy-analytics/compute-step-transition-analytics"},{"openapi":"post /v1/taxonomies/{taxonomy_id}/analytics/paths","title":"Analyze multi-step transition paths","href":"/api-reference/taxonomy-analytics/analyze-multi-step-transition-paths"},{"openapi":"get /v1/taxonomies/{taxonomy_id}/analytics/runs","title":"List taxonomy analytics run history","href":"/api-reference/taxonomy-analytics/list-taxonomy-analytics-run-history"},{"openapi":"get /v1/taxonomies/{taxonomy_id}/analytics/runs/{run_id}","title":"Get a taxonomy analytics run","href":"/api-reference/taxonomy-analytics/get-taxonomy-analytics-run"},{"openapi":"post /v1/taxonomies/{taxonomy_id}/analytics/runs/{run_id}/rerun","title":"Re-run a stored taxonomy analytics run","href":"/api-reference/taxonomy-analytics/re-run-stored-taxonomy-analytics-run"}]},{"openapi":"get /v1/taxonomies","title":"List taxonomies (GET alias for POST /list).","href":"/api-reference/taxonomies/list-taxonomies-get"},{"openapi":"post /v1/taxonomies/from-documents","title":"Create a taxonomy from a document selection or a cluster run (one gesture)","href":"/api-reference/taxonomies/create-taxonomy-from-document-selection"},{"openapi":"post /v1/taxonomies/{taxonomy_identifier}/nodes/from-documents","title":"Add a taxonomy node derived from a document selection","href":"/api-reference/taxonomies/add-taxonomy-node-derived-from-document"},{"openapi":"post /v1/taxonomies/{taxonomy_identifier}/execute","title":"Test taxonomy configuration (validation only)","href":"/api-reference/taxonomies/test-taxonomy-configuration"}]},{"group":"Clusters","pages":[{"openapi":"post /v1/clusters","title":"Create Cluster","href":"/api-reference/clusters/create-cluster"},{"openapi":"get /v1/clusters/{cluster_identifier}","title":"Get Cluster","description":"Retrieve a cluster by ID or name.\n\n Returns cluster metadata including:\n - Configuration (cluster_type, algorithm, parameters)\n - Output collection information (output_collection_ids, output_collection_names)\n - Execution results (num_clusters, num_documents_clustered, status)\n - Timestamps and metadata\n\n Per-document cluster assignments are not on this object. They are documents in\n the output collections listed in output_collection_ids: a member document\n (is_centroid=false) carries cluster_id, cluster_label and source_document_id.\n With enrich_source_collection=true they are fields on your source documents.","href":"/api-reference/clusters/get-cluster"},{"openapi":"patch /v1/clusters/{cluster_identifier}","title":"Partially Update Cluster","href":"/api-reference/clusters/partially-update-cluster"},{"openapi":"post /v1/clusters/list","title":"List Clusters","description":"This endpoint allows you to list clusters.","href":"/api-reference/clusters/list-clusters"},{"openapi":"post /v1/clusters/{cluster_id}/execute","title":"Execute Clustering","href":"/api-reference/clusters/execute-clustering"},{"openapi":"get /v1/clusters/{cluster_id}/groups","title":"List Cluster Groups","href":"/api-reference/clusters/list-cluster-groups"},{"openapi":"delete /v1/clusters/{cluster_id}","title":"Delete Cluster","href":"/api-reference/clusters/delete-cluster"},{"group":"Triggers","pages":[{"openapi":"post /v1/clusters/triggers","title":"Create Cluster Trigger","href":"/api-reference/cluster-triggers/create-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/list","title":"List Cluster Triggers","href":"/api-reference/cluster-triggers/list-cluster-triggers"},{"openapi":"get /v1/clusters/triggers/{trigger_id}","title":"Get Cluster Trigger","href":"/api-reference/cluster-triggers/get-cluster-trigger"},{"openapi":"patch /v1/clusters/triggers/{trigger_id}","title":"Update Cluster Trigger","href":"/api-reference/cluster-triggers/update-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/pause","title":"Pause Cluster Trigger","href":"/api-reference/cluster-triggers/pause-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/resume","title":"Resume Cluster Trigger","href":"/api-reference/cluster-triggers/resume-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/history","title":"Get Trigger Execution History","href":"/api-reference/cluster-triggers/get-trigger-execution-history"},{"openapi":"delete /v1/clusters/triggers/{trigger_id}","title":"Delete Cluster Trigger","href":"/api-reference/cluster-triggers/delete-cluster-trigger"}]},{"group":"Executions","pages":[{"openapi":"get /v1/clusters/{cluster_id}/executions","title":"Get Latest Cluster Execution","href":"/api-reference/cluster-executions/get-latest-cluster-execution"},{"openapi":"get /v1/clusters/{cluster_id}/executions/{run_id}","title":"Get Specific Cluster Execution","href":"/api-reference/cluster-executions/get-specific-cluster-execution"},{"openapi":"post /v1/clusters/{cluster_id}/executions/list","title":"List Cluster Execution History","href":"/api-reference/cluster-executions/list-cluster-execution-history"},{"openapi":"post /v1/clusters/{cluster_id}/executions/{run_id}/cancel","title":"Cancel Execution","href":"/api-reference/cluster-executions/cancel-execution"},{"openapi":"get /v1/clusters/{cluster_id}/executions/{run_id}/export","title":"Export Cluster Run Data (CSV / Parquet)","href":"/api-reference/cluster-executions/export-cluster-run-data"},{"openapi":"patch /v1/clusters/{cluster_id}/executions/{run_id}/labels","title":"Rename Cluster Labels (Per-Execution)","href":"/api-reference/cluster-executions/rename-cluster-labels"},{"openapi":"patch /v1/clusters/{cluster_id}/executions/{run_id}/name","title":"Name an Execution Run","href":"/api-reference/cluster-executions/name-execution-run"}]},{"openapi":"get /v1/clusters","title":"List Clusters (GET)","href":"/api-reference/clusters/list-clusters-get"},{"openapi":"get /v1/clusters/{cluster_id}/visualization","title":"Cluster Visualization Data","href":"/api-reference/clusters/cluster-visualization-data"}]},{"group":"Annotations","pages":[{"openapi":"post /v1/annotations","title":"Create Annotation","href":"/api-reference/annotations/create-annotation"},{"openapi":"get /v1/annotations/{annotation_id}","title":"Get Annotation","href":"/api-reference/annotations/get-annotation"},{"openapi":"get /v1/annotations/{annotation_id}/versions","title":"Get Annotation Versions","href":"/api-reference/annotations/get-annotation-versions"},{"openapi":"get /v1/annotations/{annotation_id}/versions/{version}","title":"Get Annotation At Version","href":"/api-reference/annotations/get-annotation-at-version"},{"openapi":"post /v1/annotations/list","title":"List Annotations","href":"/api-reference/annotations/list-annotations"},{"openapi":"get /v1/annotations/stats","title":"Annotation Stats","href":"/api-reference/annotations/annotation-stats"},{"openapi":"patch /v1/annotations/{annotation_id}","title":"Patch Annotation","href":"/api-reference/annotations/update-annotation"},{"openapi":"delete /v1/annotations/{annotation_id}","title":"Delete Annotation","href":"/api-reference/annotations/delete-annotation"},{"openapi":"post /v1/annotations/bulk","title":"Bulk Annotations","href":"/api-reference/annotations/bulk-annotations"}]}]},{"group":"Automate","pages":[{"group":"Triggers","pages":[{"openapi":"post /v1/triggers","title":"Create Trigger","href":"/api-reference/create-trigger"},{"openapi":"post /v1/triggers/list","title":"List Triggers","href":"/api-reference/list-triggers"},{"openapi":"get /v1/triggers/{trigger_id}","title":"Get Trigger","href":"/api-reference/get-trigger"},{"openapi":"patch /v1/triggers/{trigger_id}","title":"Update Trigger","href":"/api-reference/update-trigger"},{"openapi":"delete /v1/triggers/{trigger_id}","title":"Delete Trigger","href":"/api-reference/delete-trigger"},{"openapi":"post /v1/triggers/{trigger_id}/execute","title":"Execute Trigger Now","href":"/api-reference/execute-trigger-now"},{"openapi":"post /v1/triggers/{trigger_id}/pause","title":"Pause Trigger","href":"/api-reference/pause-trigger"},{"openapi":"post /v1/triggers/{trigger_id}/resume","title":"Resume Trigger","href":"/api-reference/resume-trigger"},{"openapi":"get /v1/triggers/{trigger_id}/history","title":"Get Trigger Execution History","href":"/api-reference/get-trigger-execution-history"},{"openapi":"get /v1/triggers","title":"List Triggers (GET alias for POST /list).","href":"/api-reference/triggers/list-triggers"}]},{"group":"Webhooks","pages":[{"openapi":"post /v1/organizations/webhooks","title":"Create Webhook","href":"/api-reference/webhooks/create-webhook"},{"openapi":"post /v1/organizations/webhooks/list","title":"List Webhooks","href":"/api-reference/webhooks/list-webhooks"},{"openapi":"get /v1/organizations/webhooks/{identifier}","title":"Get Webhook","href":"/api-reference/webhooks/get-webhook"},{"openapi":"put /v1/organizations/webhooks/{identifier}","title":"Update Webhook","href":"/api-reference/webhooks/update-webhook"},{"openapi":"delete /v1/organizations/webhooks/{identifier}","title":"Delete Webhook","href":"/api-reference/webhooks/delete-webhook"}]},{"group":"Alerts","pages":[{"openapi":"post /v1/alerts","title":"Create Alert","href":"/api-reference/alerts/create-alert"},{"openapi":"get /v1/alerts/{alert_identifier}","title":"Get Alert","href":"/api-reference/alerts/get-alert"},{"openapi":"patch /v1/alerts/{alert_identifier}","title":"Update Alert","href":"/api-reference/alerts/update-alert"},{"openapi":"post /v1/alerts/list","title":"List Alerts","href":"/api-reference/alerts/list-alerts"},{"openapi":"delete /v1/alerts/{alert_identifier}","title":"Delete Alert","href":"/api-reference/alerts/delete-alert"},{"openapi":"get /v1/alerts/{alert_identifier}/executions","title":"List Alert Executions","href":"/api-reference/alerts/list-alert-executions"},{"openapi":"get /v1/alerts/executions/{execution_id}","title":"Get Alert Execution","href":"/api-reference/alerts/get-alert-execution"},{"openapi":"get /v1/alerts/{alert_identifier}/results","title":"Get Latest Alert Result","href":"/api-reference/alerts/get-latest-alert-result"},{"openapi":"get /v1/alerts/executions","title":"List All Executions","href":"/api-reference/alerts/list-all-executions"},{"openapi":"get /v1/alerts","title":"List Alerts (GET alias for POST /list).","href":"/api-reference/alerts/list-alerts-get"},{"openapi":"post /v1/organizations/alerts","title":"Create Org-Scoped Alert","href":"/api-reference/alerts/create-org-scoped-alert"},{"openapi":"get /v1/organizations/alerts","title":"List Org-Scoped Alerts (GET alias for POST /list).","href":"/api-reference/alerts/list-org-scoped-alerts"},{"openapi":"post /v1/organizations/alerts/list","title":"List Org-Scoped Alerts","href":"/api-reference/alerts/list-org-scoped-alerts-list"},{"openapi":"get /v1/organizations/alerts/{alert_identifier}","title":"Get Org-Scoped Alert","href":"/api-reference/alerts/get-org-scoped-alert"},{"openapi":"patch /v1/organizations/alerts/{alert_identifier}","title":"Update Org-Scoped Alert","href":"/api-reference/alerts/update-org-scoped-alert"},{"openapi":"delete /v1/organizations/alerts/{alert_identifier}","title":"Delete Org-Scoped Alert","href":"/api-reference/alerts/delete-org-scoped-alert"}]},{"group":"Notifications","pages":[{"openapi":"post /v1/notifications/list","title":"List Notifications","href":"/api-reference/notifications/list-notifications"},{"openapi":"get /v1/notifications/{notification_id}","title":"Get Notification","href":"/api-reference/notifications/get-notification"},{"openapi":"post /v1/notifications/{notification_id}/read","title":"Mark As Read","href":"/api-reference/notifications/mark-as-read"},{"openapi":"post /v1/notifications/read/all","title":"Mark All As Read","href":"/api-reference/notifications/mark-all-as-read"},{"openapi":"get /v1/notifications/unread/count","title":"Get Unread Count","href":"/api-reference/notifications/get-unread-count"},{"openapi":"delete /v1/notifications/{notification_id}","title":"Delete Notification","href":"/api-reference/notifications/delete-notification"},{"openapi":"get /v1/notifications/preferences","title":"Get Preferences","href":"/api-reference/notifications/get-preferences"},{"openapi":"put /v1/notifications/preferences","title":"Update Preferences","href":"/api-reference/notifications/update-preferences"},{"openapi":"get /v1/notifications/preferences/reminders","title":"Get Reminder Preferences","href":"/api-reference/notifications/get-reminder-preferences"},{"openapi":"put /v1/notifications/preferences/reminders","title":"Update Reminder Preferences","href":"/api-reference/notifications/update-reminder-preferences"},{"openapi":"get /v1/notifications/funnel/state","title":"Get Funnel State","href":"/api-reference/notifications/get-funnel-state"},{"openapi":"post /v1/notifications/funnel/advance","title":"Advance Funnel Stage","href":"/api-reference/notifications/advance-funnel-stage"}]},{"group":"Tasks","pages":[{"openapi":"post /v1/tasks/list","title":"List Tasks","href":"/api-reference/tasks/list-tasks"},{"openapi":"get /v1/tasks/{task_id}","title":"Get Task Information","href":"/api-reference/tasks/get-task-information"},{"openapi":"delete /v1/tasks/{task_id}","title":"Kill Task","href":"/api-reference/tasks/kill-task"}]},{"group":"Batch Queue","pages":[{"openapi":"post /v1/batches/list","title":"List All Batches","href":"/api-reference/batches/list-all-batches"},{"openapi":"get /v1/batches/{batch_id}","title":"Get Batch by ID","href":"/api-reference/batches/get-batch-by-id"},{"openapi":"post /v1/batches/{batch_id}/cancel","title":"Cancel Batch","href":"/api-reference/batches/cancel-batch"},{"openapi":"get /v1/batches/queue","title":"Batch Queue Status","href":"/api-reference/batches/batch-queue-status"}]}]},{"group":"Administer","pages":[{"group":"Organization","pages":[{"openapi":"get /v1/me","title":"Whoami","href":"/api-reference/account/whoami"},{"openapi":"get /v1/organizations","title":"Get Organization","href":"/api-reference/organizations/get-organization"},{"openapi":"patch /v1/organizations","title":"Update Organization","href":"/api-reference/organizations/update-organization"},{"openapi":"get /v1/organizations/targets","title":"Get Organization Targets","href":"/api-reference/organizations/get-organization-targets"},{"group":"Users","pages":[{"openapi":"get /v1/organizations/users","title":"List Users","href":"/api-reference/organization-users/list-users"},{"openapi":"post /v1/organizations/users","title":"Create User","href":"/api-reference/organization-users/create-user"},{"openapi":"get /v1/organizations/users/{user_email}","title":"Get User","href":"/api-reference/organization-users/get-user"},{"openapi":"patch /v1/organizations/users/{user_email}","title":"Update User","href":"/api-reference/organization-users/update-user"},{"openapi":"delete /v1/organizations/users/{user_email}","title":"Delete User","href":"/api-reference/organization-users/delete-user"}]},{"group":"API Keys","pages":[{"openapi":"get /v1/organizations/users/{user_email}/api-keys","title":"List Api Keys","href":"/api-reference/organization-api-keys/list-api-keys"},{"openapi":"post /v1/organizations/users/{user_email}/api-keys","title":"Create Api Key","href":"/api-reference/organization-api-keys/create-api-key"},{"openapi":"patch /v1/organizations/users/{user_email}/api-keys/{key_name}","title":"Update Api Key","href":"/api-reference/organization-api-keys/update-api-key"},{"openapi":"post /v1/organizations/users/{user_email}/api-keys/{key_name}/rotate","title":"Rotate Api Key","href":"/api-reference/organization-api-keys/rotate-api-key"},{"openapi":"delete /v1/organizations/users/{user_email}/api-keys/{key_name}","title":"Delete Api Key","href":"/api-reference/organization-api-keys/delete-api-key"},{"openapi":"post /v1/auth/token-exchange","title":"Exchange a workload OIDC token for a short-lived API key","href":"/api-reference/organization-api-keys/exchange-oidc-token"}]},{"group":"Storage Connections","pages":[{"openapi":"post /v1/organizations/connections/list","title":"List Storage Connections","href":"/api-reference/organization-connections/list-storage-connections"},{"openapi":"post /v1/organizations/connections","title":"Create Storage Connection","href":"/api-reference/organization-connections/create-storage-connection"},{"openapi":"get /v1/organizations/connections/{connection_identifier}","title":"Get Storage Connection","href":"/api-reference/organization-connections/get-storage-connection"},{"openapi":"patch /v1/organizations/connections/{connection_identifier}","title":"Update Storage Connection","href":"/api-reference/organization-connections/update-storage-connection"},{"openapi":"post /v1/organizations/connections/{connection_identifier}/test","title":"Test Storage Connection","href":"/api-reference/organization-connections/test-storage-connection"},{"openapi":"delete /v1/organizations/connections/{connection_identifier}","title":"Delete Storage Connection","href":"/api-reference/organization-connections/delete-storage-connection"},{"openapi":"get /v1/organizations/connections/{connection_identifier}/files","title":"List Google Drive Files","href":"/api-reference/organization-connections/list-google-drive-files"},{"openapi":"get /v1/organizations/connections/{connection_identifier}/folders","title":"List Google Drive Folders","href":"/api-reference/organization-connections/list-google-drive-folders"}]},{"group":"Secrets","pages":[{"openapi":"get /v1/organizations/secrets","title":"List Secrets","href":"/api-reference/organization-secrets/list-secrets"},{"openapi":"post /v1/organizations/secrets","title":"Create Secret","href":"/api-reference/organization-secrets/create-secret"},{"openapi":"put /v1/organizations/secrets/{secret_name}","title":"Update Secret","href":"/api-reference/organization-secrets/update-secret"},{"openapi":"delete /v1/organizations/secrets/{secret_name}","title":"Delete Secret","href":"/api-reference/organization-secrets/delete-secret"}]},{"group":"Billing","pages":[{"openapi":"get /v1/organizations/billing/balance","title":"Get Credit Balance","href":"/api-reference/organization-billing/get-credit-balance"},{"openapi":"get /v1/organizations/billing/usage/current","title":"Get Current Usage","href":"/api-reference/organization-billing/get-current-usage"},{"openapi":"get /v1/organizations/billing/usage/vector-backend","title":"Get Vector Backend Usage","href":"/api-reference/organization-billing/get-vector-backend-usage"},{"openapi":"get /v1/organizations/billing/usage/breakdown","title":"Get Usage Breakdown","href":"/api-reference/organization-billing/get-usage-breakdown"},{"openapi":"get /v1/organizations/billing/spending-caps","title":"Get Spending Caps","href":"/api-reference/organization-billing/get-spending-caps"},{"openapi":"post /v1/organizations/billing/spending-caps","title":"Update Spending Caps","href":"/api-reference/organization-billing/update-spending-caps"},{"openapi":"post /v1/organizations/billing/setup-payment-method","title":"Setup Payment Method","href":"/api-reference/organization-billing/setup-payment-method"},{"openapi":"post /v1/organizations/billing/confirm-payment-method","title":"Confirm Payment Method","href":"/api-reference/organization-billing/confirm-payment-method"},{"openapi":"get /v1/organizations/billing/payment-method","title":"Get Payment Method","href":"/api-reference/organization-billing/get-payment-method"},{"openapi":"get /v1/organizations/billing/invoices","title":"List Invoices","href":"/api-reference/organization-billing/list-invoices"},{"openapi":"post /v1/organizations/billing/generate-invoice","title":"Generate Invoice Now","href":"/api-reference/organization-billing/generate-invoice-now"},{"openapi":"post /v1/organizations/billing/enable-auto-billing","title":"Enable Auto Billing","href":"/api-reference/organization-billing/enable-auto-billing"},{"openapi":"post /v1/organizations/billing/disable-auto-billing","title":"Disable Auto Billing","href":"/api-reference/organization-billing/disable-auto-billing"},{"openapi":"post /v1/organizations/billing/estimate","title":"Estimate Cost","href":"/api-reference/organization-billing/estimate-cost"},{"openapi":"get /v1/organizations/billing/transactions","title":"List Transactions","href":"/api-reference/organization-billing/list-transactions"},{"openapi":"post /v1/organizations/billing/checkout","title":"Create Checkout","href":"/api-reference/organization-billing/create-checkout"},{"openapi":"post /v1/organizations/billing/subscribe","title":"Subscribe To Plan","href":"/api-reference/organization-billing/subscribe-plan"},{"openapi":"post /v1/organizations/billing/portal","title":"Open Billing Portal","href":"/api-reference/organization-billing/open-billing-portal"},{"openapi":"get /v1/organizations/billing/subscription","title":"Get Subscription Status","href":"/api-reference/organization-billing/get-subscription-status"},{"openapi":"post /v1/organizations/billing/subscription/cancel","title":"Cancel Subscription","href":"/api-reference/organization-billing/cancel-subscription"},{"openapi":"post /v1/organizations/billing/apply-promo","title":"Apply Promo","href":"/api-reference/organization-billing/apply-promo"},{"openapi":"post /v1/organizations/billing/redeem-promo","title":"Redeem Promo","href":"/api-reference/organization-billing/redeem-promo"}]},{"group":"Usage","pages":[{"openapi":"get /v1/organizations/usage","title":"Get Org Usage","href":"/api-reference/organization-usage/get-org-usage"},{"openapi":"get /v1/organizations/api-keys/{key_id}/usage","title":"Get Api Key Usage","href":"/api-reference/organization-usage/get-api-key-usage"},{"openapi":"get /v1/organizations/api-keys/{key_id}/usage/endpoints","title":"Get Api Key Endpoint Breakdown","href":"/api-reference/organization-usage/get-api-key-endpoint-breakdown"}]},{"group":"Audit Logs","pages":[{"openapi":"get /v1/organizations/audit/logs","title":"List Audit Logs","href":"/api-reference/organization-audit/list-audit-logs"},{"openapi":"get /v1/organizations/audit/logs/export","title":"Export Audit Logs","href":"/api-reference/organization-audit/export-audit-logs"},{"openapi":"get /v1/organizations/audit/logs/{audit_id}","title":"Get Audit Log","href":"/api-reference/organization-audit/get-audit-log"},{"openapi":"get /v1/organizations/audit/settings","title":"Get Audit Settings","href":"/api-reference/organization-audit/get-audit-settings"},{"openapi":"patch /v1/organizations/audit/settings","title":"Update Audit Settings","href":"/api-reference/organization-audit/update-audit-settings"}]},{"group":"Privacy (DSAR)","pages":[{"openapi":"post /v1/organizations/dsar/export","title":"Request Data Export","href":"/api-reference/data-subject-access-requests/request-data-export"},{"openapi":"post /v1/organizations/dsar/delete","title":"Request Data Deletion","href":"/api-reference/data-subject-access-requests/request-data-deletion"},{"openapi":"get /v1/organizations/dsar/status","title":"List Dsar Requests","href":"/api-reference/data-subject-access-requests/list-dsar-requests"}]},{"openapi":"get /v1/organizations/credits","title":"Get Credits","href":"/api-reference/organizations/get-credits"},{"group":"Infrastructure","pages":[{"openapi":"get /v1/organizations/infrastructure/summary","title":"Get Infrastructure","href":"/api-reference/organization-infrastructure/get-infrastructure"}]}]},{"group":"Pricing","pages":[{"openapi":"get /v1/billing/pricing","title":"Get Pricing Configuration","href":"/api-reference/pricing/get-pricing-configuration"}]},{"group":"Support","pages":[{"openapi":"post /v1/support/tickets","title":"Create Support Ticket","href":"/api-reference/support/create-support-ticket"},{"openapi":"get /v1/support/tickets","title":"List Support Tickets","href":"/api-reference/support/list-support-tickets"},{"openapi":"post /v1/support/tickets/list","title":"List Support Tickets (org + global).","href":"/api-reference/support/list-support-tickets-list"},{"openapi":"get /v1/support/tickets/{ticket_identifier}","title":"Get Support Ticket (with message thread).","href":"/api-reference/support/get-support-ticket"},{"openapi":"patch /v1/support/tickets/{ticket_identifier}","title":"Update a support ticket (status/priority).","href":"/api-reference/support/update-support-ticket"},{"openapi":"post /v1/support/tickets/{ticket_identifier}/messages","title":"Reply to a support ticket.","href":"/api-reference/support/reply-support-ticket"},{"openapi":"post /v1/support/comms/list","title":"List correspondence (ticket messages + broadcasts, org + global).","href":"/api-reference/support/list-correspondence"},{"openapi":"get /v1/support/comms","title":"List Correspondence","href":"/api-reference/support/list-correspondence-get"},{"openapi":"post /v1/support/comms/broadcast","title":"Create a broadcast communication (Mixpeek admin only).","href":"/api-reference/support/create-broadcast-communication"},{"openapi":"post /v1/support/videos/upload-url","title":"Presigned PUT to upload a support video to cold storage (admin only).","href":"/api-reference/support/presigned-put-upload-support-video-cold"},{"openapi":"post /v1/support/videos","title":"Register a support video (admin only); triggers Gemini review for uploads.","href":"/api-reference/support/register-support-video-triggers-gemini-review"},{"openapi":"get /v1/support/videos","title":"List Support Videos","href":"/api-reference/support/list-support-videos"},{"openapi":"post /v1/support/videos/list","title":"List curated support videos (org + global).","href":"/api-reference/support/list-curated-support-videos"},{"openapi":"get /v1/support/videos/{video_identifier}","title":"Get a support video (with presigned playback URL + chapters).","href":"/api-reference/support/get-support-video"}]}]},{"group":"Advanced","pages":[{"group":"Apps","pages":[{"openapi":"post /v1/apps","title":"Create an App","href":"/api-reference/apps/create-app"},{"openapi":"get /v1/apps","title":"List Apps","href":"/api-reference/apps/list-apps"},{"openapi":"get /v1/apps/{app_id}","title":"Get an App","href":"/api-reference/apps/get-app"},{"openapi":"patch /v1/apps/{app_id}","title":"Update an App","href":"/api-reference/apps/update-app"},{"openapi":"delete /v1/apps/{app_id}","title":"Delete an App","href":"/api-reference/apps/delete-app"},{"openapi":"post /v1/apps/{app_id}/publish","title":"Publish an App","href":"/api-reference/apps/publish-app"},{"openapi":"post /v1/apps/{app_id}/rollback","title":"Rollback an App","href":"/api-reference/apps/rollback-app"},{"group":"Deploy","pages":[{"openapi":"post /v1/apps/{app_id}/deploy","title":"Deploy an App","href":"/api-reference/apps/deploy-app"},{"openapi":"post /v1/apps/{app_id}/deploy/upload-url","title":"Get presigned upload URL","href":"/api-reference/apps/get-deploy-upload-url"},{"title":"Get Deploy Status","openapi":"GET /v1/apps/{app_id}/deploys/{deploy_id}","href":"/api-reference/apps/get-deploy-status"},{"openapi":"get /v1/apps/{app_id}/deploys/{deploy_id}/logs/stream","title":"Stream deploy logs (SSE)","href":"/api-reference/apps/stream-deploy-logs-sse"},{"openapi":"post /v1/apps/{app_id}/deploy/verify-upload","title":"Verify a presigned-URL upload landed in S3","href":"/api-reference/apps/verify-a-presigned-url-upload-landed-in-s3"},{"openapi":"post /v1/apps/{app_id}/promote","title":"Promote staging to production","href":"/api-reference/apps/promote-staging-to-production"}]},{"group":"GitHub","pages":[{"openapi":"post /v1/apps/{app_id}/connect-repo","title":"Connect a GitHub repository","href":"/api-reference/apps/connect-a-github-repository"},{"openapi":"delete /v1/apps/{app_id}/connect-repo","title":"Disconnect GitHub repository","href":"/api-reference/apps/disconnect-github-repository"}]},{"group":"Users","pages":[{"openapi":"get /v1/apps/{app_id}/users","title":"List app users","href":"/api-reference/apps/list-app-users"},{"openapi":"post /v1/apps/{app_id}/users/invite","title":"Invite a user","href":"/api-reference/apps/invite-a-user"},{"openapi":"get /v1/apps/{app_id}/users/invitations","title":"List pending invitations","href":"/api-reference/apps/list-pending-invitations"},{"openapi":"patch /v1/apps/{app_id}/users/{user_id}/role","title":"Update user role","href":"/api-reference/apps/update-user-role"},{"openapi":"delete /v1/apps/{app_id}/users/{user_id}","title":"Remove a user","href":"/api-reference/apps/remove-a-user"},{"openapi":"delete /v1/apps/{app_id}/users/invitations/{invitation_id}","title":"Revoke an invitation","href":"/api-reference/apps/revoke-an-invitation"}]},{"group":"Versions","pages":[{"openapi":"get /v1/apps/{app_id}/versions","title":"List version history","href":"/api-reference/apps/list-versions"},{"title":"Get Version Details","openapi":"GET /v1/apps/{app_id}/versions/{version}","href":"/api-reference/apps/get-version"},{"title":"Diff Two Versions","openapi":"GET /v1/apps/{app_id}/versions/{from_version}/diff/{to_version}","href":"/api-reference/apps/diff-versions"},{"title":"Download Version Bundle","openapi":"GET /v1/apps/{app_id}/versions/{version}/download","href":"/api-reference/apps/download-version"},{"title":"Restore a Version","openapi":"POST /v1/apps/{app_id}/versions/{version}/restore","href":"/api-reference/apps/restore-version"}]},{"group":"Domains","pages":[{"openapi":"post /v1/apps/{app_id}/domains","title":"Add a custom domain","href":"/api-reference/apps/add-domain"},{"openapi":"get /v1/apps/{app_id}/domains","title":"List custom domains","href":"/api-reference/apps/list-domains"},{"openapi":"delete /v1/apps/{app_id}/domains/{domain}","title":"Remove a domain","href":"/api-reference/apps/delete-domain"},{"openapi":"post /v1/apps/{app_id}/domains/{domain}/verify","title":"Trigger DNS verification","href":"/api-reference/apps/verify-domain"}]},{"group":"Analytics","pages":[{"openapi":"get /v1/apps/{app_id}/analytics","title":"Get app analytics overview","href":"/api-reference/apps/get-app-analytics-overview"},{"openapi":"get /v1/apps/{app_id}/error-rate","title":"Get recent error rate","href":"/api-reference/apps/get-recent-error-rate"},{"openapi":"get /v1/apps/{app_id}/logs","title":"Get runtime or request logs","href":"/api-reference/apps/get-runtime-or-request-logs"}]},{"group":"Public","pages":[{"openapi":"get /v1/public/apps/{slug}/config","title":"Get public App config","href":"/api-reference/public-apps-api/get-app-config"},{"openapi":"post /v1/public/apps/{slug}/search","title":"Execute an App tab search","href":"/api-reference/public-apps-api/search-app"},{"openapi":"get /v1/public/apps/{slug}/gallery","title":"Get App featured gallery","href":"/api-reference/public-apps-api/get-app-gallery"},{"openapi":"get /v1/public/apps/{slug}/taxonomies/{taxonomy_id}/tree","title":"Get taxonomy node tree for an App","href":"/api-reference/public-apps-api/get-app-taxonomies"},{"openapi":"post /v1/public/apps/{slug}/interactions","title":"Track an App interaction event","href":"/api-reference/public-apps-api/track-app-interaction"}]},{"openapi":"get /v1/apps/{app_id}/github/install-url","title":"Get the GitHub App install URL for this app","href":"/api-reference/apps/get-github-app-install-url-app"}]},{"group":"Agent Sessions","pages":[{"openapi":"post /v1/agents/sessions","title":"Create Session","href":"/api-reference/agent-sessions/create-session"},{"openapi":"post /v1/agents/sessions/list","title":"List Sessions","href":"/api-reference/agent-sessions/list-sessions"},{"openapi":"get /v1/agents/sessions/{session_id}","title":"Get Session","href":"/api-reference/agent-sessions/get-session"},{"openapi":"patch /v1/agents/sessions/{session_id}","title":"Patch Session","href":"/api-reference/agent-sessions/patch-session"},{"openapi":"post /v1/agents/sessions/{session_id}/messages","title":"Send Message","href":"/api-reference/agent-sessions/send-message"},{"openapi":"get /v1/agents/sessions/{session_id}/history","title":"Get History","href":"/api-reference/agent-sessions/get-history"},{"openapi":"get /v1/agents/sessions/tools","title":"List Tools","href":"/api-reference/agent-sessions/list-tools"},{"openapi":"post /v1/agents/sessions/intent/detect","title":"Detect Intent","href":"/api-reference/agent-sessions/detect-intent"},{"openapi":"post /v1/agents/sessions/{session_id}/confirmations/{confirmation_id}","title":"Respond To Confirmation","href":"/api-reference/agent-sessions/respond-to-confirmation"},{"openapi":"post /v1/agents/sessions/{session_id}/feedback","title":"Submit Feedback","href":"/api-reference/agent-sessions/submit-feedback"},{"openapi":"delete /v1/agents/sessions/{session_id}","title":"Terminate Session","href":"/api-reference/agent-sessions/terminate-session"}]},{"group":"Templates","pages":[{"group":"Namespace","pages":[{"openapi":"get /v1/templates/namespaces","title":"List Namespace Templates","href":"/api-reference/templates/list-namespace-templates"},{"openapi":"get /v1/templates/namespaces/{template_id}","title":"Get Namespace Template","href":"/api-reference/templates/get-namespace-template"},{"openapi":"post /v1/templates/namespaces/from-namespace/{namespace_id}","title":"Create Namespace Template","href":"/api-reference/templates/create-namespace-template"}]},{"group":"Retriever","pages":[{"openapi":"post /v1/templates/retrievers","title":"List Retriever Templates","href":"/api-reference/templates/list-retriever-templates"},{"openapi":"get /v1/templates/retrievers/{template_id}","title":"Get Retriever Template","href":"/api-reference/templates/get-retriever-template"},{"openapi":"post /v1/templates/retrievers/from-retriever/{retriever_id}","title":"Create Retriever Template","href":"/api-reference/templates/create-retriever-template"},{"openapi":"post /v1/templates/retrievers/{template_id}/instantiate","title":"Instantiate Retriever Template","href":"/api-reference/templates/instantiate-retriever-template"}]},{"group":"Collection","pages":[{"openapi":"post /v1/templates/collections","title":"List Collection Templates","href":"/api-reference/templates/list-collection-templates"},{"openapi":"get /v1/templates/collections/{template_id}","title":"Get Collection Template","href":"/api-reference/templates/get-collection-template"},{"openapi":"post /v1/templates/collections/from-collection/{collection_id}","title":"Create Collection Template","href":"/api-reference/templates/create-collection-template"},{"openapi":"post /v1/templates/collections/{template_id}/instantiate","title":"Instantiate Collection Template","href":"/api-reference/templates/instantiate-collection-template"}]},{"group":"Bucket","pages":[{"openapi":"post /v1/templates/buckets","title":"List Bucket Templates","href":"/api-reference/templates/list-bucket-templates"},{"openapi":"get /v1/templates/buckets/{template_id}","title":"Get Bucket Template","href":"/api-reference/templates/get-bucket-template"},{"openapi":"post /v1/templates/buckets/from-bucket/{bucket_id}","title":"Create Bucket Template","href":"/api-reference/templates/create-bucket-template"},{"openapi":"post /v1/templates/buckets/{template_id}/instantiate","title":"Instantiate Bucket Template","href":"/api-reference/templates/instantiate-bucket-template"}]},{"group":"Cluster","pages":[{"openapi":"post /v1/templates/clusters","title":"List Cluster Templates","href":"/api-reference/templates/list-cluster-templates"},{"openapi":"get /v1/templates/clusters/{template_id}","title":"Get Cluster Template","href":"/api-reference/templates/get-cluster-template"},{"openapi":"post /v1/templates/clusters/from-cluster/{cluster_id}","title":"Create Cluster Template","href":"/api-reference/templates/create-cluster-template"},{"openapi":"post /v1/templates/clusters/{template_id}/instantiate","title":"Instantiate Cluster Template","href":"/api-reference/templates/instantiate-cluster-template"}]},{"group":"Taxonomy","pages":[{"openapi":"post /v1/templates/taxonomies","title":"List Taxonomy Templates","href":"/api-reference/templates/list-taxonomy-templates"},{"openapi":"get /v1/templates/taxonomies/{template_id}","title":"Get Taxonomy Template","href":"/api-reference/templates/get-taxonomy-template"},{"openapi":"post /v1/templates/taxonomies/from-taxonomy/{taxonomy_id}","title":"Create Taxonomy Template","href":"/api-reference/templates/create-taxonomy-template"},{"openapi":"post /v1/templates/taxonomies/{template_id}/instantiate","title":"Instantiate Taxonomy Template","href":"/api-reference/templates/instantiate-taxonomy-template"}]},{"group":"Public Templates","pages":[{"openapi":"get /v1/public/templates/namespaces","title":"List Public Namespace Templates","href":"/api-reference/public-templates-api/list-public-namespace-templates"},{"openapi":"get /v1/public/templates/namespaces/{template_id}","title":"Get Public Namespace Template","href":"/api-reference/public-templates-api/get-public-namespace-template"},{"openapi":"get /v1/public/templates/retrievers","title":"List Public Retriever Templates","href":"/api-reference/public-templates-api/list-public-retriever-templates"},{"openapi":"get /v1/public/templates/retrievers/{template_id}","title":"Get Public Retriever Template","href":"/api-reference/public-templates-api/get-public-retriever-template"},{"openapi":"get /v1/public/templates/scaffolds","title":"List Scaffolds","href":"/api-reference/public-templates-api/list-scaffolds"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}","title":"Get Scaffold","href":"/api-reference/public-templates-api/get-scaffold"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}/sample-data","title":"Get Scaffold Sample Data","href":"/api-reference/public-templates-api/get-scaffold-sample-data"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}/manifest","title":"Get Scaffold Manifest","href":"/api-reference/public-templates-api/get-scaffold-manifest"}]},{"group":"Scaffold Templates","pages":[{"openapi":"post /v1/templates/scaffolds/default","title":"Get Or Create Default Namespace","href":"/api-reference/scaffold-templates/get-or-create-default-namespace"},{"openapi":"get /v1/templates/scaffolds/{template_id}/manifest","title":"Get Scaffold Template Manifest","href":"/api-reference/scaffold-templates/get-scaffold-template-manifest"}]}]},{"group":"Manifest","pages":[{"openapi":"post /v1/manifest/apply","title":"Apply Manifest","href":"/api-reference/manifest/apply-manifest"},{"openapi":"post /v1/manifest/validate","title":"Validate Manifest","href":"/api-reference/manifest/validate-manifest"},{"openapi":"get /v1/manifest/export","title":"Export Manifest Get","href":"/api-reference/manifest/export-manifest"},{"openapi":"post /v1/manifest/diff","title":"Diff Manifest","href":"/api-reference/manifest/diff-manifest"},{"openapi":"post /v1/manifest/generate","title":"Generate Manifest","href":"/api-reference/manifest/generate-manifest"},{"openapi":"post /v1/manifest/lint","title":"Lint Manifest","href":"/api-reference/manifest/lint-manifest"}]},{"group":"Analytics","pages":[{"group":"Namespace","pages":[{"openapi":"get /v1/analytics/namespaces/summary","title":"Get Namespace Summary","href":"/api-reference/analytics/get-namespace-summary"},{"openapi":"get /v1/analytics/indexes/usage","title":"Get Field Usage","href":"/api-reference/analytics/get-field-usage"},{"openapi":"get /v1/analytics/namespaces/fields/performance","title":"Get Field Performance","href":"/api-reference/analytics/get-field-performance"},{"openapi":"get /v1/analytics/namespaces/fields/most-queried","title":"Get Most Queried Fields","href":"/api-reference/analytics/get-most-queried-fields"},{"openapi":"get /v1/analytics/namespaces/indexes/compound-patterns","title":"Get Compound Index Patterns","href":"/api-reference/analytics/get-compound-index-patterns"},{"openapi":"get /v1/analytics/namespaces/indexes/recommendations","title":"Get Index Recommendations","href":"/api-reference/analytics/get-index-recommendations"},{"openapi":"get /v1/analytics/indexes/suggestions","title":"Get Index Suggestions","href":"/api-reference/analytics/get-index-suggestions"},{"openapi":"get /v1/analytics/namespaces/errors","title":"Get Namespace Errors","href":"/api-reference/analytics/get-namespace-errors"}]},{"group":"Buckets","pages":[{"openapi":"get /v1/analytics/buckets/{bucket_id}/health","title":"Get Bucket Health","href":"/api-reference/analytics/get-bucket-health"},{"openapi":"get /v1/analytics/buckets/health","title":"Get Namespace Buckets Health","href":"/api-reference/analytics/get-namespace-buckets-health"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/storage","title":"Get Bucket Storage","href":"/api-reference/analytics/get-bucket-storage"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/usage","title":"Get Bucket Usage","href":"/api-reference/analytics/get-bucket-usage"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/sync-performance","title":"Get Sync Performance","href":"/api-reference/analytics/get-sync-performance"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/sync-comparison","title":"Get Sync Comparison","href":"/api-reference/analytics/get-sync-comparison"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/upload-performance","title":"Get Upload Performance","href":"/api-reference/analytics/get-upload-performance"}]},{"group":"Collections","pages":[{"openapi":"get /v1/analytics/collections/{collection_id}/overview","title":"Get Collection Overview","href":"/api-reference/analytics/get-collection-overview"},{"openapi":"get /v1/analytics/collections/{collection_id}/growth","title":"Get Document Growth","href":"/api-reference/analytics/get-document-growth"},{"openapi":"get /v1/analytics/collections/{collection_id}/latency","title":"Get Latency Metrics","href":"/api-reference/analytics/get-latency-metrics"},{"openapi":"get /v1/analytics/collections/{collection_id}/failures","title":"Get Failure Analysis","href":"/api-reference/analytics/get-failure-analysis"},{"openapi":"get /v1/analytics/extractors/performance","title":"Get Extractor Performance","href":"/api-reference/analytics/get-extractor-performance"}]},{"group":"Retrievers","pages":[{"openapi":"get /v1/analytics/retrievers/{retriever_id}/performance","title":"Get Retriever Performance","href":"/api-reference/analytics/get-retriever-performance"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/signals","title":"Get Retriever Signals","href":"/api-reference/analytics/get-retriever-signals"},{"openapi":"get /v1/analytics/namespaces/queries/slow","title":"Get Slow Queries","href":"/api-reference/analytics/get-slow-queries"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/stages","title":"Get Stage Breakdown","href":"/api-reference/analytics/get-stage-breakdown"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/cache-performance","title":"Get Cache Performance","href":"/api-reference/analytics/get-cache-performance"},{"openapi":"post /v1/analytics/retrievers/{retriever_id}/analyze-tuning","title":"Analyze For Tuning","href":"/api-reference/analytics/analyze-for-tuning"}]},{"group":"Engine","pages":[{"openapi":"get /v1/analytics/performance/engine","title":"Get Engine Performance","href":"/api-reference/analytics/get-engine-performance"},{"openapi":"get /v1/analytics/performance/engine/bottlenecks","title":"Analyze Bottlenecks","href":"/api-reference/analytics/analyze-bottlenecks"},{"openapi":"get /v1/analytics/performance/engine/extractors","title":"Get Extractor Breakdown","href":"/api-reference/analytics/get-extractor-breakdown"},{"openapi":"get /v1/analytics/performance/engine/stages","title":"Get Engine Stage Breakdown","href":"/api-reference/analytics/get-engine-stage-breakdown"},{"openapi":"get /v1/analytics/performance/engine/slow-operations","title":"Get Slowest Operations","href":"/api-reference/analytics/get-slowest-operations"}]},{"group":"Taxonomies","pages":[{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/assignments","title":"Get Assignment Metrics","href":"/api-reference/analytics/get-assignment-metrics"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/confidence","title":"Get Confidence Distribution","href":"/api-reference/analytics/get-confidence-distribution"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/labels","title":"Get Label Distribution","href":"/api-reference/analytics/get-label-distribution"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/enrichments","title":"Get Enrichment History","href":"/api-reference/analytics/get-enrichment-history"}]},{"group":"Clusters","pages":[{"openapi":"get /v1/analytics/clusters/{cluster_id}/execution-history","title":"Get Execution History","href":"/api-reference/analytics/get-execution-history"},{"openapi":"get /v1/analytics/clusters/{cluster_id}/failures","title":"Get Failure Analysis","href":"/api-reference/analytics/get-failure-analysis-1"}]},{"group":"Inference \u0026 Extractors","pages":[{"openapi":"get /v1/analytics/collections/{collection_id}/extractors","title":"Get Extractor Performance","href":"/api-reference/analytics/get-extractor-performance-1"}]},{"group":"Diagnostics","pages":[{"openapi":"get /v1/analytics/performance/batches/{batch_id}/diagnostics","title":"Get Batch Diagnostics","href":"/api-reference/analytics/get-batch-diagnostics"},{"openapi":"get /v1/analytics/usage/summary","title":"Get Usage Summary","href":"/api-reference/analytics/get-usage-summary"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/slow-queries","title":"Get Slowest Queries","href":"/api-reference/analytics/get-slowest-queries"}]}]},{"group":"Discovery","pages":[{"openapi":"get /v1/discovery","title":"Get All Discovery Information","href":"/api-reference/discovery/get-all-discovery-information"},{"openapi":"get /v1/discovery/extractors","title":"List Available Feature Extractors","href":"/api-reference/discovery/list-available-feature-extractors"},{"openapi":"get /v1/discovery/stages","title":"List Available Retriever Stages with Examples","href":"/api-reference/discovery/list-available-retriever-stages-with-examples"},{"openapi":"get /v1/discovery/schema","title":"Get Manifest Schema for Agent Configuration","href":"/api-reference/discovery/get-manifest-schema-for-agent-configuration"}]},{"group":"Inference","pages":[{"openapi":"post /v1/inference","title":"Execute Raw Inference","href":"/api-reference/inference/execute-raw-inference"}]},{"group":"Events","pages":[{"openapi":"get /v1/events","title":"List change feed events","href":"/api-reference/events/list-events"}]},{"group":"Resource Search","pages":[{"openapi":"post /v1/resources/search","title":"Search Resources","href":"/api-reference/resource-search/search-resources"}]},{"group":"Onboarding","pages":[{"openapi":"post /v1/onboarding/infer-config","title":"Infer onboarding configuration","href":"/api-reference/onboarding/infer-onboarding-configuration"},{"openapi":"get /v1/onboarding/suggested-config","title":"Get the org's signup-time suggested namespace","href":"/api-reference/onboarding/get-suggested-config"},{"openapi":"post /v1/signup/agent","title":"Sign up as an agent","href":"/api-reference/onboarding/agent-signup"}]}]}]}]}]},"basePath":"","title":"Partially Update Cluster - Mixpeek","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Do6EtGSl.js","utils-id4tQ6My.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-Byrixac4.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-nakYa3Zl.js","snippetPresets-Bq-pUS7h.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-CujTC_9K.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-FneVUsVu.js","shallow-DY9WpUCz.js","getApiPlaygroundDisplay-Bz8WpPfA.js","CodeSnippet-DgCuJg4G.js","CodeSnippets-Dub9c4T0.js","Page-CePXnjd1.js","getPastedJson-xdI8y2XB.js","icon--yVw5vkr.js","MethodPill-C47t7MdS.js","DuplicateIcon-BzwJ2LeC.js","createIcon-BzggGy84.js","DynamicMarkdown-AlxJK8VR.js","SectionHeading-CMlwFxdK.js","axios-vUo_bRtp.js","Markdown-BNgNrPsi.js","clsx-apD-Q0Oo.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-qmLwQyWY.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Dc4qTkWx.js"]}