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.
assign: Incremental assignment — assign new documents to existing cluster centroids without re-clustering. Requires a previous successful execution with centroids.
composite: Cluster centroids from multiple prior executions to create cross-execution cluster groupings. Uses source_execution_ids when given; otherwise, on a cluster created with source_cluster_ids, the newest completed run with centroids of each source cluster, one per partition.
A cluster created with source_cluster_ids runs composite when the body names no mode.
List of clustering execution run_ids whose centroids will be clustered together (only used when mode='composite'). Each referenced execution must have status='completed' and non-empty centroids. Minimum 2 executions required. Optional on a cluster created with source_cluster_ids, whose runs are picked when this is omitted.
Minimum cosine similarity to assign a document to a cluster (only used when mode='assign'). Documents below this threshold are marked as noise (cluster_id=-1). Range: 0.0-1.0.
Optional filter override. When provided, this filter is used for this execution instead of the cluster's stored filters. The override is not persisted on the cluster.
Optional per-execution document cap. When provided, overrides the cluster's stored sample_size for this execution only. The override is not persisted on the cluster. KMeans supports up to 1M; O(N²) algorithms (HDBSCAN, Spectral, Agglomerative) are capped at 50K by the engine.
When True, skip inline UMAP during clustering and compute the scatter coordinates lazily at /visualization time. UMAP is ~90% of the clustering critical path at scale, so this makes large runs complete much faster; the first scatter load pays a one-time bounded cost. The override is not persisted on the cluster.
Optional layout-stability override for this execution. 'align' registers the new layout onto the previous run's coordinates (default when the cluster stores nothing), 'transform' reuses the previous run's saved projection reducer when compatible, 'none' re-layouts independently. The override is not persisted on the cluster.
Optional inline LLM labeling override. When provided, this configuration is used for this execution instead of the cluster's stored llm_labeling. Use this to enable labeling for a single run without mutating the cluster definition. Set enabled: true to actually run labeling — passing the object alone is insufficient. The override is not persisted on the cluster.
Extends TaskModel with additional convenience fields for API responses.
This is the model returned when you GET /v1/tasks/{task_id}.
Additional Fields:
error_message: Convenience field that surfaces errors from additional_data
for easier error handling in client code.
Inheritance:
Inherits all fields and documentation from TaskModel, including:
- task_id: Unique identifier
- task_type: Operation type
- status: Current status
- inputs: Input parameters
- outputs: Output results
- additional_data: Metadata and context
Storage Architecture:
Same as TaskModel - stored in Redis (24hr TTL) with MongoDB fallback.
Usage:
This model is automatically returned by task API endpoints. You don't
need to construct it manually - just call GET /v1/tasks/{task_id}.
Error Handling:
Check the error_message field for a user-friendly error string, or
additional_data['error'] for the full error details.
Example Response:
{
"task_id": "task_abc123",
"task_type": "api_buckets_batches_process",
"status": "FAILED",
"inputs": ["batch_xyz"],
"outputs": null,
"additional_data": {
"error": "Failed to process batch: Object not found",
"batch_id": "batch_xyz"
},
"error_message": "Failed to process batch: Object not found"
}
Unique identifier for the task. REQUIRED. Used to poll task status via GET /v1/tasks/{task_id}. This ID is also stored on parent resources (batches, clusters, etc.) for cross-referencing. Format: UUID v4 or custom string identifier.
Type of operation this task represents. REQUIRED. Identifies the specific async operation being performed. Used for filtering and categorizing tasks. Common types: api_buckets_batches_process, engine_cluster_build, api_taxonomies_execute. See TaskType enum for complete list of supported operations.
Current status of the task. REQUIRED. Indicates the current state of the async operation. Terminal statuses (COMPLETED, FAILED, CANCELED) indicate the task has finished and will not change. Active statuses (PENDING, IN_PROGRESS, PROCESSING) indicate the task is still running and should be polled. Use this field to determine when to stop polling.
Input parameters or data used to start the task. OPTIONAL. May include IDs, configuration objects, or file references. Useful for debugging and understanding what data the task processed. Format: List of strings (IDs) or objects (configuration). Example: ['batch_id_123'] or [{'bucket_id': 'bkt_abc', 'config': {...}}]
Output results produced by the task. OPTIONAL. Populated when task completes successfully. May include processed file IDs, result metrics, or status summaries. Check this field after task reaches COMPLETED status to get results. Format: List of strings (output IDs) or objects (result data).
Additional metadata and context for the task. OPTIONAL. Contains job IDs, error details, progress info, and other task-specific metadata.
Common fields (all task types): - 'error': Error message if task failed - 'job_id': Ray job ID for engine tasks - 'from_mongodb': True if retrieved from MongoDB fallback (not Redis)
Batch-specific fields (task_type=api_buckets_batches_process): - 'batch_id': Batch identifier (REQUIRED) - 'bucket_id': Source bucket identifier (REQUIRED) - 'namespace_id': Namespace identifier (REQUIRED) - 'current_tier': Currently processing tier number, 0-indexed (OPTIONAL, None if not started) - 'total_tiers': Total number of tiers in the batch pipeline (REQUIRED) - 'collection_ids': Array of ALL collection IDs across all tiers (REQUIRED) - 'object_count': Number of objects being processed (REQUIRED) - 'sample_object_ids': First 5 object IDs for debugging/display (OPTIONAL)
Performance Note: Full object_ids array is NOT stored in task metadata to avoid bloating task documents (batches with 10k+ objects would add 200KB+ per task). For full object list, query the batch directly via GET /v1/buckets/{bucket_id}/batches/{batch_id}.
Note: For detailed per-tier status, use GET /v1/buckets/{bucket_id}/batches/{batch_id} to access the tier_tasks[] array which contains individual tier statuses, collection_ids, and timestamps for each tier.
Flattened error message for convenient error handling. OPTIONAL. Automatically populated from additional_data['error'] when the task has FAILED status. This is a convenience field - the full error details are always available in additional_data['error']. Use this field for displaying errors to users or logging. Will be None if task has not failed or if no error details are available. Serialized as 'error' in API responses for backward compatibility.
Dispatch outcome of a cancel request, present on responses from the batch cancel endpoints. Absent on every other task response, and on a cancel that returned before any dispatch ran. Absent and all-zero are different answers: all-zero means the cancel dispatched to nothing.
1-based position in the Ray processing waitlist. None if the batch was dispatched immediately (no queue). Position 1 means this batch will be processed next.
Estimated minutes until this batch starts processing, based on queue position and average batch duration. None if the batch was dispatched immediately.
Was this page helpful?
{"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/execute-clustering","slug":"/api-reference/clusters/execute-clustering","pageMetadata":{"openapi":"post /v1/clusters/{cluster_id}/execute","title":"Execute Clustering","description":"Execute clustering on a specific cluster.\n\n This endpoint:\n 1. Validates the cluster exists\n 2. Queues a background clustering job\n 3. Returns task_id immediately (non-blocking)\n 4. The background job prepares data and submits to Engine\n 5. Monitor progress via GET /v1/tasks/{task_id}\n\n Flow:\n - API: Receives request\n - Background job: Fetches documents, creates parquet, uploads to S3\n - Engine: Runs Ray job on parquet data\n - Status: Automatically updates cluster when complete\n\n Use GET /v1/clusters/{id}/executions to retrieve results.\n\n Optional body (`ExecuteClusterByIdRequest`) accepts a `filters` override\n that applies to this execution only and is not persisted on the cluster.","href":"/api-reference/clusters/execute-clustering"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Execute clustering on a specific cluster.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"This endpoint:\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Validates the cluster exists\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Queues a background clustering job\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Returns task_id immediately (non-blocking)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The background job prepares data and submits to Engine\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Monitor progress via GET /v1/tasks/\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Flow:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"API: Receives request\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Background job: Fetches documents, creates parquet, uploads to S3\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Engine: Runs Ray job on parquet data\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Status: Automatically updates cluster when complete\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use GET /v1/clusters/\", \"/executions to retrieve results.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Optional body (\", _jsx(_components.code, {\n children: \"ExecuteClusterByIdRequest\"\n }), \") accepts a \", _jsx(_components.code, {\n children: \"filters\"\n }), \" override\\nthat applies to this execution only and is not persisted on the cluster.\"]\n })]\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":"post /v1/clusters/{cluster_id}/execute","title":"Execute Clustering","description":"Execute clustering on a specific cluster.\n\n This endpoint:\n 1. Validates the cluster exists\n 2. Queues a background clustering job\n 3. Returns task_id immediately (non-blocking)\n 4. The background job prepares data and submits to Engine\n 5. Monitor progress via GET /v1/tasks/{task_id}\n\n Flow:\n - API: Receives request\n - Background job: Fetches documents, creates parquet, uploads to S3\n - Engine: Runs Ray job on parquet data\n - Status: Automatically updates cluster when complete\n\n Use GET /v1/clusters/{id}/executions to retrieve results.\n\n Optional body (`ExecuteClusterByIdRequest`) accepts a `filters` override\n that applies to this execution only and is not persisted on the cluster.","href":"/api-reference/clusters/execute-clustering"}}},"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":"Execute Clustering","description":"Execute clustering on a specific cluster.\n\n This endpoint:\n 1. Validates the cluster exists\n 2. Queues a background clustering job\n 3. Returns task_id immediately (non-blocking)\n 4. The background job prepares data and submits to Engine\n 5. Monitor progress via GET /v1/tasks/{task_id}\n\n Flow:\n - API: Receives request\n - Background job: Fetches documents, creates parquet, uploads to S3\n - Engine: Runs Ray job on parquet data\n - Status: Automatically updates cluster when complete\n\n Use GET /v1/clusters/{id}/executions to retrieve results.\n\n Optional body (`ExecuteClusterByIdRequest`) accepts a `filters` override\n that applies to this execution only and is not persisted on the cluster.","operationId":"execute_clustering_v1_clusters__cluster_id__execute_post","parameters":["67f963bd-e2a5-4f88-b87e-2e31bb61f4f7"],"requestBody":"51115a8a-211f-4c3f-aa74-29571b6ba85f","responses":{"200":"d07043a3-a1ce-44a2-93f1-c34497877db5","400":"a1985f08-0697-4a1c-a5c0-fccb9bb2cc42","401":"d26f0f46-14e8-4373-b49f-e44f97aa6707","403":"d17df573-c79e-4ab8-a21f-df99593be83f","404":"377c3764-eeb8-4a7d-8ade-97d6e0c21b73","422":"9f836cf3-2a78-4296-966e-d983d5590add","429":"69e99812-4d40-4fdc-b9d9-62038e0b9ae0","500":"ffda3528-686f-4886-a210-cc4324550366","503":"8fd1f5e9-0724-427d-b151-5b8f49f5ad36"},"x-mixpeek-plan":{"minimum_tier":null,"requires_selected_plan":false,"permissions":["write"]},"x-mixpeek-namespace-scoped":true,"security":["fd75be20-459e-47ca-a4b7-4deb1eb5beac"],"method":"post","type":"path","servers":["a3ca4d02-9041-4306-8eae-afdf7d554be4"],"path":"/v1/clusters/{cluster_id}/execute","baseUrlOptions":["https://api.mixpeek.com"],"title":"Execute Clustering","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"67f963bd-e2a5-4f88-b87e-2e31bb61f4f7":{"name":"cluster_id","in":"path","required":true,"schema":{"type":"string","description":"Cluster ID to execute","title":"Cluster Id","isRequired":true,"uniqueKey":"","typeLabel":"string"},"description":"Cluster ID to execute"}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"type":"string","enum":["full","assign","composite"],"title":"Mode","description":"Execution mode:\n- full: Run complete clustering pipeline (default)\n- assign: Incremental assignment — assign new documents to existing cluster centroids without re-clustering. Requires a previous successful execution with centroids.\n- composite: Cluster centroids from multiple prior executions to create cross-execution cluster groupings. Uses source_execution_ids when given; otherwise, on a cluster created with source_cluster_ids, the newest completed run with centroids of each source cluster, one per partition.\nA cluster created with source_cluster_ids runs composite when the body names no mode.","default":"full","uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"source_execution_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"source_execution_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Source Execution Ids","description":"List of clustering execution run_ids whose centroids will be clustered together (only used when mode='composite'). Each referenced execution must have status='completed' and non-empty centroids. Minimum 2 executions required. Optional on a cluster created with source_cluster_ids, whose runs are picked when this is omitted.","uniqueKey":"source_execution_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Source Execution Ids","description":"List of clustering execution run_ids whose centroids will be clustered together (only used when mode='composite'). Each referenced execution must have status='completed' and non-empty centroids. Minimum 2 executions required. Optional on a cluster created with source_cluster_ids, whose runs are picked when this is omitted.","uniqueKey":"source_execution_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"source_execution_ids","typeLabel":"string[] | null"},"assignment_threshold":{"oneOf":[{"type":"number","title":"Assignment Threshold","description":"Minimum cosine similarity to assign a document to a cluster (only used when mode='assign'). Documents below this threshold are marked as noise (cluster_id=-1). Range: 0.0-1.0.","default":0.5,"maximum":1,"minimum":0,"uniqueKey":"assignment_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Assignment Threshold","description":"Minimum cosine similarity to assign a document to a cluster (only used when mode='assign'). Documents below this threshold are marked as noise (cluster_id=-1). Range: 0.0-1.0.","default":0.5,"uniqueKey":"assignment_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"assignment_threshold","typeLabel":"number | null"},"filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Optional filter override. When provided, this filter is used for this execution instead of the cluster's stored filters. The override is not persisted on the cluster.","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 filter override. When provided, this filter is used for this execution instead of the cluster's stored filters. The override is not persisted on the cluster.","uniqueKey":"filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters","typeLabel":"LogicalOperator · object | null"},"sample_size":{"oneOf":[{"type":"integer","title":"Sample Size","description":"Optional per-execution document cap. When provided, overrides the cluster's stored sample_size for this execution only. The override is not persisted on the cluster. KMeans supports up to 1M; O(N²) algorithms (HDBSCAN, Spectral, Agglomerative) are capped at 50K by the engine.","maximum":1000000,"uniqueKey":"sample_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Sample Size","description":"Optional per-execution document cap. When provided, overrides the cluster's stored sample_size for this execution only. The override is not persisted on the cluster. KMeans supports up to 1M; O(N²) algorithms (HDBSCAN, Spectral, Agglomerative) are capped at 50K by the engine.","uniqueKey":"sample_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"sample_size","typeLabel":"integer | null"},"vis_n_components":{"oneOf":[{"type":"integer","title":"Vis N Components","description":"Number of dimensions for visualization coordinates (2 or 3). When 3, the z coordinate is populated for depth-based rendering.","enum":[2,3],"uniqueKey":"vis_n_components.oneOf.0","typeLabel":"enum\u003cinteger>"},{"type":"null","title":"Vis N Components","description":"Number of dimensions for visualization coordinates (2 or 3). When 3, the z coordinate is populated for depth-based rendering.","uniqueKey":"vis_n_components.oneOf.1","typeLabel":"null"}],"uniqueKey":"vis_n_components","typeLabel":"enum\u003cinteger> | null"},"defer_visualization":{"oneOf":[{"type":"boolean","title":"Defer Visualization","description":"When True, skip inline UMAP during clustering and compute the scatter coordinates lazily at /visualization time. UMAP is ~90% of the clustering critical path at scale, so this makes large runs complete much faster; the first scatter load pays a one-time bounded cost. The override is not persisted on the cluster.","uniqueKey":"defer_visualization.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Defer Visualization","description":"When True, skip inline UMAP during clustering and compute the scatter coordinates lazily at /visualization time. UMAP is ~90% of the clustering critical path at scale, so this makes large runs complete much faster; the first scatter load pays a one-time bounded cost. The override is not persisted on the cluster.","uniqueKey":"defer_visualization.oneOf.1","typeLabel":"null"}],"uniqueKey":"defer_visualization","typeLabel":"boolean | null"},"layout_stability":{"oneOf":[{"type":"string","title":"Layout Stability","description":"Optional layout-stability override for this execution. 'align' registers the new layout onto the previous run's coordinates (default when the cluster stores nothing), 'transform' reuses the previous run's saved projection reducer when compatible, 'none' re-layouts independently. The override is not persisted on the cluster.","enum":["none","transform","align"],"uniqueKey":"layout_stability.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Layout Stability","description":"Optional layout-stability override for this execution. 'align' registers the new layout onto the previous run's coordinates (default when the cluster stores nothing), 'transform' reuses the previous run's saved projection reducer when compatible, 'none' re-layouts independently. The override is not persisted on the cluster.","uniqueKey":"layout_stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"layout_stability","typeLabel":"enum\u003cstring> | null"},"llm_labeling":{"oneOf":[{"type":"object","title":"LLMLabeling","description":"Optional inline LLM labeling override. When provided, this configuration is used for this execution instead of the cluster's stored llm_labeling. Use this to enable labeling for a single run without mutating the cluster definition. Set ``enabled: true`` to actually run labeling — passing the object alone is insufficient. The override is not persisted on the cluster.","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 inline LLM labeling override. When provided, this configuration is used for this execution instead of the cluster's stored llm_labeling. Use this to enable labeling for a single run without mutating the cluster definition. Set ``enabled: true`` to actually run labeling — passing the object alone is insufficient. The override is not persisted on the cluster.","uniqueKey":"llm_labeling.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_labeling","typeLabel":"LLMLabeling · object | null"}},"type":"object","title":"ExecuteClusterByIdRequest","description":"Optional per-execution overrides (e.g. filter override).","uniqueKey":"","typeLabel":"ExecuteClusterByIdRequest · object"},"examples":{"Example":{"title":"Example","value":{"mode":"full","source_execution_ids":["\u003cstring>"],"assignment_threshold":0.5,"filters":{"AND":[{"field":"name","operator":"eq","value":"John"},{"field":"age","operator":"gte","value":30}],"OR":[{"field":"status","operator":"eq","value":"active"},{"field":"role","operator":"eq","value":"admin"}],"NOT":[{"field":"department","operator":"eq","value":"HR"},{"field":"location","operator":"eq","value":"remote"}],"case_sensitive":true},"sample_size":123,"defer_visualization":true,"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"}}}},"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":{"d07043a3-a1ce-44a2-93f1-c34497877db5":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"task_id":{"type":"string","title":"Task Id","description":"Unique identifier for the task. REQUIRED. Used to poll task status via GET /v1/tasks/{task_id}. This ID is also stored on parent resources (batches, clusters, etc.) for cross-referencing. Format: UUID v4 or custom string identifier.","examples":["task_abc123def456","550e8400-e29b-41d4-a716-446655440000"],"isRequired":true,"uniqueKey":"task_id","typeLabel":"string"},"task_type":{"type":"string","enum":["api_namespaces_create","api_namespaces_delete","api_namespaces_snapshot_create","api_namespaces_snapshot_restore","api_namespaces_migrations_run","api_buckets_objects_create","api_buckets_delete","api_buckets_batches_process","api_buckets_batches_submit","api_buckets_uploads_create","api_buckets_uploads_confirm","api_buckets_uploads_batch_confirm","api_collections_documents_create","api_collections_documents_bulk_update","api_collections_documents_bulk_delete","api_collections_reembed","api_collections_extraction_artifacts","api_taxonomies_create","api_taxonomies_execute","api_taxonomies_materialize","api_evaluations_run","api_evaluations_dataset_create","api_retrievers_publish","api_manifest_apply","api_retrievers_execute","api_collections_export","api_collections_trigger","engine_feature_extractor_run","engine_inference_run","engine_object_processing","engine_cluster_build","thumbnail","video_segment","audio_segment","converted_video","materialize","plugin_custom","model_custom"],"title":"TaskType","description":"Type of operation this task represents. REQUIRED. Identifies the specific async operation being performed. Used for filtering and categorizing tasks. Common types: api_buckets_batches_process, engine_cluster_build, api_taxonomies_execute. See TaskType enum for complete list of supported operations.","examples":["api_buckets_batches_process","engine_cluster_build","api_taxonomies_execute"],"isRequired":true,"uniqueKey":"task_type","typeLabel":"enum\u003cstring>"},"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":"Current status of the task. REQUIRED. Indicates the current state of the async operation. Terminal statuses (COMPLETED, FAILED, CANCELED) indicate the task has finished and will not change. Active statuses (PENDING, IN_PROGRESS, PROCESSING) indicate the task is still running and should be polled. Use this field to determine when to stop polling.","examples":["PENDING","PROCESSING","COMPLETED","FAILED"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"inputs":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"inputs.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","additionalProperties":true,"uniqueKey":"inputs.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"inputs.oneOf.0.items.[INDEX]","typeLabel":"string | object"},"title":"Inputs","description":"Input parameters or data used to start the task. OPTIONAL. May include IDs, configuration objects, or file references. Useful for debugging and understanding what data the task processed. Format: List of strings (IDs) or objects (configuration). Example: ['batch_id_123'] or [{'bucket_id': 'bkt_abc', 'config': {...}}]","example":["batch_xyz789"],"uniqueKey":"inputs.oneOf.0","typeLabel":"(string | object)[]"},{"type":"null","title":"Inputs","description":"Input parameters or data used to start the task. OPTIONAL. May include IDs, configuration objects, or file references. Useful for debugging and understanding what data the task processed. Format: List of strings (IDs) or objects (configuration). Example: ['batch_id_123'] or [{'bucket_id': 'bkt_abc', 'config': {...}}]","example":["batch_xyz789"],"uniqueKey":"inputs.oneOf.1","typeLabel":"null"}],"uniqueKey":"inputs","typeLabel":"(string | object)[] | null"},"outputs":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"outputs.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","additionalProperties":true,"uniqueKey":"outputs.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"outputs.oneOf.0.items.[INDEX]","typeLabel":"string | object"},"title":"Outputs","description":"Output results produced by the task. OPTIONAL. Populated when task completes successfully. May include processed file IDs, result metrics, or status summaries. Check this field after task reaches COMPLETED status to get results. Format: List of strings (output IDs) or objects (result data).","example":["document_123","document_456"],"uniqueKey":"outputs.oneOf.0","typeLabel":"(string | object)[]"},{"type":"null","title":"Outputs","description":"Output results produced by the task. OPTIONAL. Populated when task completes successfully. May include processed file IDs, result metrics, or status summaries. Check this field after task reaches COMPLETED status to get results. Format: List of strings (output IDs) or objects (result data).","example":["document_123","document_456"],"uniqueKey":"outputs.oneOf.1","typeLabel":"null"}],"uniqueKey":"outputs","typeLabel":"(string | object)[] | null"},"additional_data":{"oneOf":[{"type":"object","title":"Additional Data","description":"Additional metadata and context for the task. OPTIONAL. Contains job IDs, error details, progress info, and other task-specific metadata. \n\nCommon fields (all task types): - 'error': Error message if task failed - 'job_id': Ray job ID for engine tasks - 'from_mongodb': True if retrieved from MongoDB fallback (not Redis) \n\nBatch-specific fields (task_type=api_buckets_batches_process): - 'batch_id': Batch identifier (REQUIRED) - 'bucket_id': Source bucket identifier (REQUIRED) - 'namespace_id': Namespace identifier (REQUIRED) - 'current_tier': Currently processing tier number, 0-indexed (OPTIONAL, None if not started) - 'total_tiers': Total number of tiers in the batch pipeline (REQUIRED) - 'collection_ids': Array of ALL collection IDs across all tiers (REQUIRED) - 'object_count': Number of objects being processed (REQUIRED) - 'sample_object_ids': First 5 object IDs for debugging/display (OPTIONAL) \n\nPerformance Note: Full object_ids array is NOT stored in task metadata to avoid bloating task documents (batches with 10k+ objects would add 200KB+ per task). For full object list, query the batch directly via GET /v1/buckets/{bucket_id}/batches/{batch_id}. \n\nNote: For detailed per-tier status, use GET /v1/buckets/{bucket_id}/batches/{batch_id} to access the tier_tasks[] array which contains individual tier statuses, collection_ids, and timestamps for each tier.","example":{"batch_id":"btch_xyz789","bucket_id":"bkt_products","collection_ids":["col_tier0","col_tier1","col_tier2"],"current_tier":1,"job_id":"ray_job_123","namespace_id":"ns_abc123","object_count":10000,"sample_object_ids":["obj_001","obj_002","obj_003","obj_004","obj_005"],"total_tiers":3},"additionalProperties":true,"uniqueKey":"additional_data.oneOf.0","typeLabel":"Additional Data · object"},{"type":"null","title":"Additional Data","description":"Additional metadata and context for the task. OPTIONAL. Contains job IDs, error details, progress info, and other task-specific metadata. \n\nCommon fields (all task types): - 'error': Error message if task failed - 'job_id': Ray job ID for engine tasks - 'from_mongodb': True if retrieved from MongoDB fallback (not Redis) \n\nBatch-specific fields (task_type=api_buckets_batches_process): - 'batch_id': Batch identifier (REQUIRED) - 'bucket_id': Source bucket identifier (REQUIRED) - 'namespace_id': Namespace identifier (REQUIRED) - 'current_tier': Currently processing tier number, 0-indexed (OPTIONAL, None if not started) - 'total_tiers': Total number of tiers in the batch pipeline (REQUIRED) - 'collection_ids': Array of ALL collection IDs across all tiers (REQUIRED) - 'object_count': Number of objects being processed (REQUIRED) - 'sample_object_ids': First 5 object IDs for debugging/display (OPTIONAL) \n\nPerformance Note: Full object_ids array is NOT stored in task metadata to avoid bloating task documents (batches with 10k+ objects would add 200KB+ per task). For full object list, query the batch directly via GET /v1/buckets/{bucket_id}/batches/{batch_id}. \n\nNote: For detailed per-tier status, use GET /v1/buckets/{bucket_id}/batches/{batch_id} to access the tier_tasks[] array which contains individual tier statuses, collection_ids, and timestamps for each tier.","example":{"batch_id":"btch_xyz789","bucket_id":"bkt_products","collection_ids":["col_tier0","col_tier1","col_tier2"],"current_tier":1,"job_id":"ray_job_123","namespace_id":"ns_abc123","object_count":10000,"sample_object_ids":["obj_001","obj_002","obj_003","obj_004","obj_005"],"total_tiers":3},"uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"Additional Data · object | null"},"error":{"oneOf":[{"type":"string","title":"Error","description":"Flattened error message for convenient error handling. OPTIONAL. Automatically populated from additional_data['error'] when the task has FAILED status. This is a convenience field - the full error details are always available in additional_data['error']. Use this field for displaying errors to users or logging. Will be None if task has not failed or if no error details are available. Serialized as 'error' in API responses for backward compatibility.","example":"Failed to process batch: Object not found","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"null","title":"Error","description":"Flattened error message for convenient error handling. OPTIONAL. Automatically populated from additional_data['error'] when the task has FAILED status. This is a convenience field - the full error details are always available in additional_data['error']. Use this field for displaying errors to users or logging. Will be None if task has not failed or if no error details are available. Serialized as 'error' in API responses for backward compatibility.","example":"Failed to process batch: Object not found","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"string | null"},"cancellation":{"oneOf":[{"type":"object","title":"CancellationOutcome","description":"Dispatch outcome of a cancel request, present on responses from the batch cancel endpoints. Absent on every other task response, and on a cancel that returned before any dispatch ran. Absent and all-zero are different answers: all-zero means the cancel dispatched to nothing.","properties":{"ray_jobs_requested":{"type":"integer","title":"Ray Jobs Requested","description":"Ray jobs this cancel attempted to stop: accepted plus refused. Zero means the batch had no Ray jobs to stop, which is normal for a batch that had not been dispatched yet.","default":0,"examples":[3],"uniqueKey":"cancellation.oneOf.0.ray_jobs_requested","typeLabel":"integer"},"ray_jobs_accepted":{"type":"integer","title":"Ray Jobs Accepted","description":"Ray jobs that accepted the stop. This reports DISPATCH, not completion: an accepted job may still be winding down.","default":0,"examples":[3],"uniqueKey":"cancellation.oneOf.0.ray_jobs_accepted","typeLabel":"integer"},"ray_jobs_refused":{"type":"integer","title":"Ray Jobs Refused","description":"Ray jobs that refused or errored on the stop. Non-zero means some work may still be running, and the caller should not report the cancellation as complete.","default":0,"examples":[0],"uniqueKey":"cancellation.oneOf.0.ray_jobs_refused","typeLabel":"integer"}},"uniqueKey":"cancellation.oneOf.0","typeLabel":"CancellationOutcome · object"},{"type":"null","description":"Dispatch outcome of a cancel request, present on responses from the batch cancel endpoints. Absent on every other task response, and on a cancel that returned before any dispatch ran. Absent and all-zero are different answers: all-zero means the cancel dispatched to nothing.","uniqueKey":"cancellation.oneOf.1","typeLabel":"null"}],"uniqueKey":"cancellation","typeLabel":"CancellationOutcome · object | null"},"queue_position":{"oneOf":[{"type":"integer","title":"Queue Position","description":"1-based position in the Ray processing waitlist. None if the batch was dispatched immediately (no queue). Position 1 means this batch will be processed next.","uniqueKey":"queue_position.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Queue Position","description":"1-based position in the Ray processing waitlist. None if the batch was dispatched immediately (no queue). Position 1 means this batch will be processed next.","uniqueKey":"queue_position.oneOf.1","typeLabel":"null"}],"uniqueKey":"queue_position","typeLabel":"integer | null"},"estimated_wait_minutes":{"oneOf":[{"type":"number","title":"Estimated Wait Minutes","description":"Estimated minutes until this batch starts processing, based on queue position and average batch duration. None if the batch was dispatched immediately.","uniqueKey":"estimated_wait_minutes.oneOf.0","typeLabel":"number"},{"type":"null","title":"Estimated Wait Minutes","description":"Estimated minutes until this batch starts processing, based on queue position and average batch duration. None if the batch was dispatched immediately.","uniqueKey":"estimated_wait_minutes.oneOf.1","typeLabel":"null"}],"uniqueKey":"estimated_wait_minutes","typeLabel":"number | null"}},"type":"object","required":["task_id","task_type","status"],"title":"TaskResponse","description":"Task response model returned by the API.\n\nExtends TaskModel with additional convenience fields for API responses.\nThis is the model returned when you GET /v1/tasks/{task_id}.\n\nAdditional Fields:\n error_message: Convenience field that surfaces errors from additional_data\n for easier error handling in client code.\n\nInheritance:\n Inherits all fields and documentation from TaskModel, including:\n - task_id: Unique identifier\n - task_type: Operation type\n - status: Current status\n - inputs: Input parameters\n - outputs: Output results\n - additional_data: Metadata and context\n\nStorage Architecture:\n Same as TaskModel - stored in Redis (24hr TTL) with MongoDB fallback.\n\nUsage:\n This model is automatically returned by task API endpoints. You don't\n need to construct it manually - just call GET /v1/tasks/{task_id}.\n\nError Handling:\n Check the error_message field for a user-friendly error string, or\n additional_data['error'] for the full error details.\n\nExample Response:\n {\n \"task_id\": \"task_abc123\",\n \"task_type\": \"api_buckets_batches_process\",\n \"status\": \"FAILED\",\n \"inputs\": [\"batch_xyz\"],\n \"outputs\": null,\n \"additional_data\": {\n \"error\": \"Failed to process batch: Object not found\",\n \"batch_id\": \"batch_xyz\"\n },\n \"error_message\": \"Failed to process batch: Object not found\"\n }","examples":[{"additional_data":{"batch_id":"btch_xyz789","bucket_id":"bkt_products","collection_ids":["col_tier0","col_tier1","col_tier2"],"current_tier":1,"job_id":"ray_job_123","namespace_id":"ns_abc123","object_count":10000,"sample_object_ids":["obj_001","obj_002","obj_003","obj_004","obj_005"],"total_tiers":3},"description":"Multi-tier batch processing task in progress (tier 1 of 3) with 10k objects","inputs":["batch_xyz789"],"status":"IN_PROGRESS","task_id":"2d322a05-3178-4eca-aac6-b82b0a0313aa","task_type":"api_buckets_batches_process"},{"additional_data":{"cluster_id":"cl_abc123","job_id":"ray_job_456"},"description":"Completed clustering task with results","inputs":[{"collection_ids":["col_products"],"config":{"algorithm":"kmeans","k":5}}],"outputs":[{"cluster_id":"cl_abc123","num_clusters":5,"silhouette_score":0.78}],"status":"COMPLETED","task_id":"task_cluster_789","task_type":"engine_cluster_build"},{"additional_data":{"bucket_id":"bkt_test","error":"Invalid file format: Expected PDF, got PNG","object_id":"obj_123"},"description":"Failed object creation task with error","inputs":[{"bucket_id":"bkt_test","object_id":"obj_123"}],"status":"FAILED","task_id":"task_failed_123","task_type":"api_buckets_objects_create"},{"additional_data":{"batch_id":"batch_old_123","from_mongodb":true,"note":"Retrieved from persistent storage after 24hr Redis expiry"},"description":"Task retrieved from MongoDB fallback (Redis expired)","inputs":["batch_old_123"],"outputs":["Processed 500 objects"],"status":"COMPLETED","task_id":"taYOUR_OLD_API_KEY","task_type":"api_buckets_batches_process"}],"uniqueKey":"","typeLabel":"TaskResponse · object"},"examples":{"Example":{"title":"Example","value":{"additional_data":{"batch_id":"btch_xyz789","bucket_id":"bkt_products","collection_ids":["col_tier0","col_tier1","col_tier2"],"current_tier":1,"job_id":"ray_job_123","namespace_id":"ns_abc123","object_count":10000,"sample_object_ids":["obj_001","obj_002","obj_003","obj_004","obj_005"],"total_tiers":3},"description":"Multi-tier batch processing task in progress (tier 1 of 3) with 10k objects","inputs":["batch_xyz789"],"status":"IN_PROGRESS","task_id":"2d322a05-3178-4eca-aac6-b82b0a0313aa","task_type":"api_buckets_batches_process"}}},"exampleType":"generated"}},"exampleType":"generated"},"a1985f08-0697-4a1c-a5c0-fccb9bb2cc42":{"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"},"d26f0f46-14e8-4373-b49f-e44f97aa6707":{"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"},"d17df573-c79e-4ab8-a21f-df99593be83f":{"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"},"377c3764-eeb8-4a7d-8ade-97d6e0c21b73":{"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"},"9f836cf3-2a78-4296-966e-d983d5590add":{"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"},"69e99812-4d40-4fdc-b9d9-62038e0b9ae0":{"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"},"ffda3528-686f-4886-a210-cc4324550366":{"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"},"8fd1f5e9-0724-427d-b151-5b8f49f5ad36":{"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":{"fd75be20-459e-47ca-a4b7-4deb1eb5beac":{"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":"Execute Clustering - Mixpeek","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/clusters/execute-clustering","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T07:24:25.893Z","originalFileLocation":"api-reference/clusters/execute-clustering.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=\"Execute clustering on a specific cluster. This endpoint: 1. Validates the cluster exists 2. Queues a background clustering job 3. Returns task_id immediately (non-blocking) 4. The background job prepares data and submits to Engine 5. Monitor progress via GET /v1/tasks/{task_id} Flow: - API: Receives request - Background job: Fetches documents, creates parquet, uploads to S3 - Engine: Runs Ray job on parquet data - Status: Automatically updates cluster when complete Use GET /v1/clusters/{id}/executions to retrieve results. Optional body (ExecuteClusterByIdRequest) accepts a filters override that applies to this execution only and is not persisted on the cluster.\">\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=\"Execute Clustering - Mixpeek\">\u003cmeta data-mint-head property=\"og:description\" content=\"Execute clustering on a specific cluster. This endpoint: 1. Validates the cluster exists 2. Queues a background clustering job 3. Returns task_id immediately (non-blocking) 4. The background job prepares data and submits to Engine 5. Monitor progress via GET /v1/tasks/{task_id} Flow: - API: Receives request - Background job: Fetches documents, creates parquet, uploads to S3 - Engine: Runs Ray job on parquet data - Status: Automatically updates cluster when complete Use GET /v1/clusters/{id}/executions to retrieve results. Optional body (ExecuteClusterByIdRequest) accepts a filters override that applies to this execution only and is not persisted on the cluster.\">\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/execute-clustering\">\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=Execute+Clustering\u0026amp;description=Execute+clustering+on+a+specific+cluster.%0A%0A++++This+endpoint%3A%0A++++1.+Validates+the+cluster+exists%0A++++2.+Queues+a+background+clustering+job%0A++++3.+Returns+task_\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=b13adc65ae77f04c9697d23913579ed6269329d08d8b887bfaee787703182e11\">\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=\"Execute Clustering - Mixpeek\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Execute clustering on a specific cluster. This endpoint: 1. Validates the cluster exists 2. Queues a background clustering job 3. Returns task_id immediately (non-blocking) 4. The background job prepares data and submits to Engine 5. Monitor progress via GET /v1/tasks/{task_id} Flow: - API: Receives request - Background job: Fetches documents, creates parquet, uploads to S3 - Engine: Runs Ray job on parquet data - Status: Automatically updates cluster when complete Use GET /v1/clusters/{id}/executions to retrieve results. Optional body (ExecuteClusterByIdRequest) accepts a filters override that applies to this execution only and is not persisted on the cluster.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mixpeek.mintlify.site/docs/_mintlify/api/og/v2?division=Clusters\u0026amp;title=Execute+Clustering\u0026amp;description=Execute+clustering+on+a+specific+cluster.%0A%0A++++This+endpoint%3A%0A++++1.+Validates+the+cluster+exists%0A++++2.+Queues+a+background+clustering+job%0A++++3.+Returns+task_\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=b13adc65ae77f04c9697d23913579ed6269329d08d8b887bfaee787703182e11\">\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/execute-clustering\">\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/execute-clustering.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/execute-clustering#webpage\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering\",\"name\":\"Execute Clustering\",\"description\":\"Execute clustering on a specific cluster. This endpoint: 1. Validates the cluster exists 2. Queues a background clustering job 3. Returns task_id immediately (non-blocking) 4. The background job prepares data and submits to Engine 5. Monitor progress via GET /v1/tasks/{task_id} Flow: - API: Receives request - Background job: Fetches documents, creates parquet, uploads to S3 - Engine: Runs Ray job on parquet data - Status: Automatically updates cluster when complete Use GET /v1/clusters/{id}/executions to retrieve results. Optional body (ExecuteClusterByIdRequest) accepts a filters override that applies to this execution only and is not persisted on the cluster.\",\"dateModified\":\"2026-10-01T07:24:25.893Z\",\"isPartOf\":{\"@id\":\"https://docs.mixpeek.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering#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\":\"Execute Clustering\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering#apireference\",\"headline\":\"Execute Clustering\",\"name\":\"Execute Clustering\",\"description\":\"Execute clustering on a specific cluster. This endpoint: 1. Validates the cluster exists 2. Queues a background clustering job 3. Returns task_id immediately (non-blocking) 4. The background job prepares data and submits to Engine 5. Monitor progress via GET /v1/tasks/{task_id} Flow: - API: Receives request - Background job: Fetches documents, creates parquet, uploads to S3 - Engine: Runs Ray job on parquet data - Status: Automatically updates cluster when complete Use GET /v1/clusters/{id}/executions to retrieve results. Optional body (ExecuteClusterByIdRequest) accepts a filters override that applies to this execution only and is not persisted on the cluster.\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/clusters/execute-clustering#webpage\"},\"dateModified\":\"2026-10-01T07:24:25.893Z\",\"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","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","description":"Get all cluster groups with labels, summaries, and document counts from the latest execution.","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":"Execute Clustering - 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"]}