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.
Keys this body does not declare are refused with 422 extra_forbidden naming the accepted keys (since 2026-11-02).
Request model for listing collections.
Inherits body-level limit/page_size/offset/page — body values
win over query pagination via merge_body_pagination.
To filter by taxonomy, use dot notation in filters:
filters.AND = [{"field": "taxonomy_applications.taxonomy_id", "operator": "eq", "value": "tax_123"}]
Filters to apply when listing collections. Supports nested field filtering like 'taxonomy_applications.taxonomy_id'. Format: {"AND": [{"field": "field_name", "operator": "eq", "value": "value"}]}
Sort options as a list of {field, direction} — the shape Studio datatables and the retriever list send. The first entry is the primary sort. Takes precedence over the singular sort.
Include the namespace's system collections: today the per-namespace _direct_upsert default that POST /v1/namespaces/{ns}/documents/upsert writes to (it is also addressable by that name at GET /v1/collections/_direct_upsert). Off by default so the list shows the collections you created.
Why this page may not be the whole answer. An entry with resource 'namespace' and reason 'unresolved' means X-Namespace did not resolve for this API key, so the empty list is not that namespace's contents (the same condition as the X-Namespace-Unresolved response header). Empty when the namespace resolved.
Show child attributes
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/collections/list-collections","slug":"/api-reference/collections/list-collections","pageMetadata":{"openapi":"post /v1/collections/list","title":"List Collections","description":"This endpoint allows you to list collections.","href":"/api-reference/collections/list-collections"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"This endpoint allows you to list collections.\"\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/collections/list","title":"List Collections","description":"This endpoint allows you to list collections.","href":"/api-reference/collections/list-collections"}}},"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":["Collections"],"summary":"List Collections","description":"This endpoint allows you to list collections.","operationId":"list_collections_v1_collections_list_post","parameters":["aece73a9-8b69-4ba1-a6fe-224756ba86e6","ecbe2d6b-ba38-4c0f-9211-e412f65bc399","1c4a193d-6304-471d-806a-f2ed2876cd1d","787da5e4-6736-49a2-b931-a061f2f09dad","8ff44d9a-cc75-4353-ac93-0a6d64010aef","12675926-46b1-49dd-a650-e95576ac8cf6","a5401855-2316-4f27-8f81-b639d204785c","20f805de-9513-4b54-afdd-ca384a67578f"],"requestBody":"3b1f31f3-dd3d-4bfb-8d98-139fa239f1e7","responses":{"200":"8cd7694b-3866-4155-991a-26a9627a8f38","400":"943c380e-4004-43bf-861e-7de6d97175ac","401":"c0ec3e8b-d5a2-446e-af03-93907383f66a","403":"ac6b9a88-7419-44a5-9353-63d81797e183","404":"ac262713-bd49-410c-9f47-9be4fad4c562","422":"a9cbcce5-143e-4433-98e6-728e404f6db4","429":"c98ca512-a714-4c70-9c24-b55f1f74c399","500":"8ad6d1bd-9d37-4539-b60d-4e55f5b6620b","503":"40786af6-2006-4993-bfb2-6e3dd119fddf"},"x-mixpeek-plan":{"minimum_tier":null,"requires_selected_plan":false,"permissions":["read"]},"x-mixpeek-namespace-scoped":true,"security":["e116ca30-f858-495d-be43-1a48f1e3480b"],"method":"post","type":"path","servers":["a3ca4d02-9041-4306-8eae-afdf7d554be4"],"path":"/v1/collections/list","baseUrlOptions":["https://api.mixpeek.com"],"title":"List Collections","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"aece73a9-8b69-4ba1-a6fe-224756ba86e6":{"name":"limit","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Limit","maximum":1000,"minimum":1,"uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Limit","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"}},"ecbe2d6b-ba38-4c0f-9211-e412f65bc399":{"name":"page_size","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Page Size","maximum":1000,"minimum":1,"uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page Size","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"}},"1c4a193d-6304-471d-806a-f2ed2876cd1d":{"name":"offset","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Offset","maximum":10000,"minimum":0,"uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Offset","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"}},"787da5e4-6736-49a2-b931-a061f2f09dad":{"name":"page","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Page","minimum":1,"uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"}},"8ff44d9a-cc75-4353-ac93-0a6d64010aef":{"name":"cursor","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Cursor","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Cursor","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}},"12675926-46b1-49dd-a650-e95576ac8cf6":{"name":"next_cursor","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Next Cursor","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Next Cursor","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}},"a5401855-2316-4f27-8f81-b639d204785c":{"name":"after","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"After","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"After","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}},"20f805de-9513-4b54-afdd-ca384a67578f":{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"limit":{"oneOf":[{"type":"integer","title":"Limit","description":"Page size. A body value wins over the `limit` query param.","maximum":1000,"minimum":1,"uniqueKey":"limit.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Limit","description":"Page size. A body value wins over the `limit` query param.","uniqueKey":"limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"limit","typeLabel":"integer | null"},"page_size":{"oneOf":[{"type":"integer","title":"Page Size","description":"Alias for `limit` (page size). If both are given, `limit` wins.","maximum":1000,"minimum":1,"uniqueKey":"page_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page Size","description":"Alias for `limit` (page size). If both are given, `limit` wins.","uniqueKey":"page_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"page_size","typeLabel":"integer | null"},"offset":{"oneOf":[{"type":"integer","title":"Offset","description":"Number of results to skip (legacy, use cursor instead). A body value wins over the `offset` query param.","maximum":10000,"minimum":0,"uniqueKey":"offset.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Offset","description":"Number of results to skip (legacy, use cursor instead). A body value wins over the `offset` query param.","uniqueKey":"offset.oneOf.1","typeLabel":"null"}],"uniqueKey":"offset","typeLabel":"integer | null"},"page":{"oneOf":[{"type":"integer","title":"Page","description":"1-indexed page number. Folds to offset = (page-1) * limit. If both `page` and `offset` are given, `offset` wins.","minimum":1,"uniqueKey":"page.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page","description":"1-indexed page number. Folds to offset = (page-1) * limit. If both `page` and `offset` are given, `offset` wins.","uniqueKey":"page.oneOf.1","typeLabel":"null"}],"uniqueKey":"page","typeLabel":"integer | null"},"filters":{"oneOf":[{"type":"object","title":"Filters","description":"Filters to apply when listing collections. Supports nested field filtering like 'taxonomy_applications.taxonomy_id'. Format: {\"AND\": [{\"field\": \"field_name\", \"operator\": \"eq\", \"value\": \"value\"}]}","additionalProperties":true,"uniqueKey":"filters.oneOf.0","typeLabel":"Filters · object"},{"type":"null","title":"Filters","description":"Filters to apply when listing collections. Supports nested field filtering like 'taxonomy_applications.taxonomy_id'. Format: {\"AND\": [{\"field\": \"field_name\", \"operator\": \"eq\", \"value\": \"value\"}]}","uniqueKey":"filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters","typeLabel":"Filters · object | null"},"sort":{"oneOf":[{"type":"object","title":"SortOption","description":"Sort options for the results (single-column, legacy)","required":["field"],"properties":{"field":{"type":"string","title":"Field","description":"Field to sort by, supports dot notation for nested fields","example":"created_at","isRequired":true,"uniqueKey":"sort.oneOf.0.field","typeLabel":"string"},"direction":{"description":"Sort direction","enum":["asc","desc"],"title":"SortDirection","type":"string","default":"asc","example":"desc","uniqueKey":"sort.oneOf.0.direction","typeLabel":"enum\u003cstring>"}},"uniqueKey":"sort.oneOf.0","typeLabel":"SortOption · object"},{"type":"null","description":"Sort options for the results (single-column, legacy)","uniqueKey":"sort.oneOf.1","typeLabel":"null"}],"uniqueKey":"sort","typeLabel":"SortOption · object | null"},"sorts":{"oneOf":[{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"sorts.oneOf.0.items.[INDEX]","typeLabel":"object"},"title":"Sorts","description":"Sort options as a list of {field, direction} — the shape Studio datatables and the retriever list send. The first entry is the primary sort. Takes precedence over the singular `sort`.","uniqueKey":"sorts.oneOf.0","typeLabel":"Sorts · object[]"},{"type":"null","title":"Sorts","description":"Sort options as a list of {field, direction} — the shape Studio datatables and the retriever list send. The first entry is the primary sort. Takes precedence over the singular `sort`.","uniqueKey":"sorts.oneOf.1","typeLabel":"null"}],"uniqueKey":"sorts","typeLabel":"Sorts · object[] | null"},"search":{"oneOf":[{"type":"string","title":"Search","description":"Search term for wildcard search across collection_id, collection_name, description, and other text fields","uniqueKey":"search.oneOf.0","typeLabel":"string"},{"type":"null","title":"Search","description":"Search term for wildcard search across collection_id, collection_name, description, and other text fields","uniqueKey":"search.oneOf.1","typeLabel":"null"}],"uniqueKey":"search","typeLabel":"string | null"},"include_system":{"type":"boolean","title":"Include System","description":"Include the namespace's system collections: today the per-namespace `_direct_upsert` default that `POST /v1/namespaces/{ns}/documents/upsert` writes to (it is also addressable by that name at GET /v1/collections/_direct_upsert). Off by default so the list shows the collections you created.","default":false,"uniqueKey":"include_system","typeLabel":"boolean"},"case_sensitive":{"type":"boolean","title":"Case Sensitive","description":"If True, filters and search will be case-sensitive","default":false,"uniqueKey":"case_sensitive","typeLabel":"boolean"}},"type":"object","title":"ListCollectionsRequest","description":"Request model for listing collections.\n\nInherits body-level limit/page_size/offset/page — body values\nwin over query pagination via merge_body_pagination.\n\nTo filter by taxonomy, use dot notation in filters:\nfilters.AND = [{\"field\": \"taxonomy_applications.taxonomy_id\", \"operator\": \"eq\", \"value\": \"tax_123\"}]","uniqueKey":"","typeLabel":"ListCollectionsRequest · object"},"examples":{"Example":{"title":"Example","value":{"limit":500,"page_size":500,"offset":5000,"page":2,"filters":{},"sort":{"field":"created_at","direction":"desc"},"sorts":[{}],"search":"\u003cstring>","include_system":false,"case_sensitive":false}}},"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":{"8cd7694b-3866-4155-991a-26a9627a8f38":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"results":{"items":{"properties":{"collection_name":{"type":"string","maxLength":100,"minLength":3,"title":"Collection Name","description":"REQUIRED. Human-readable name for the collection. Must be unique within the namespace. Used for: Display, lookups (can query by name or ID), organization. Format: Alphanumeric with underscores/hyphens, 3-100 characters. Examples: 'product_embeddings', 'video_frames', 'customer_documents'.","examples":["video_frames","product_embeddings","customer_documents"],"isRequired":true,"uniqueKey":"results.items.[INDEX].collection_name","typeLabel":"string"},"feature_extractor":{"properties":{"feature_extractor_name":{"type":"string","title":"Feature Extractor Name","description":"Name of the feature extractor","isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.feature_extractor_name","typeLabel":"string"},"version":{"type":"string","title":"Version","description":"Version of the feature extractor (e.g., 'v1', 'v2')","isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.version","typeLabel":"string"},"feature_extractor_id":{"type":"string","title":"Feature Extractor Id","description":"Construct unique identifier for the feature extractor instance (name + version).","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.feature_extractor_id","typeLabel":"string"},"params":{"oneOf":[{"type":"object","title":"Params","description":"Optional extractor parameters that affect vector index configuration. Parameters set here are locked at namespace creation and determine vector dimensions in the vector store. Collections using this extractor must use compatible params. Example: {'model': 'siglip_base'}","additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.params.oneOf.0","typeLabel":"Params · object"},{"type":"null","title":"Params","description":"Optional extractor parameters that affect vector index configuration. Parameters set here are locked at namespace creation and determine vector dimensions in the vector store. Collections using this extractor must use compatible params. Example: {'model': 'siglip_base'}","uniqueKey":"results.items.[INDEX].feature_extractor.params.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.params","typeLabel":"Params · object | null"},"parameters":{"oneOf":[{"type":"object","title":"AudioFingerprintExtractorParams","description":"Parameters for the Audio Fingerprint Extractor.\n\nProcesses audio files (or audio extracted from video) through CLAP\n(Contrastive Language-Audio Pretraining) to produce 512-d embeddings\nsuitable for audio fingerprint matching.\n\nCore Pipeline:\n1. Audio extraction (if video input, via FFmpeg)\n2. Segmentation into fixed-length windows\n3. CLAP embedding (laion/clap-htsat-tiny, 512-d)\n4. L2 normalization\n\nUse Cases:\n - Sound mark detection (IP safety)\n - Audio similarity search\n - Music/jingle identification\n - Audio deduplication","example":{"extractor_type":"audio_fingerprint_extractor","normalize_embeddings":true,"sample_rate":48000,"segment_duration_sec":5,"segment_hop_sec":2.5},"properties":{"extractor_type":{"type":"string","const":"audio_fingerprint_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'audio_fingerprint_extractor'.","default":"audio_fingerprint_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.extractor_type","typeLabel":"string"},"segment_duration_sec":{"type":"number","maximum":30,"minimum":1,"title":"Segment Duration Sec","description":"Duration of each audio segment in seconds. 5.0: Recommended for sound mark matching. Shorter segments increase recall but reduce per-segment context.","default":5,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.segment_duration_sec","typeLabel":"number"},"segment_hop_sec":{"type":"number","maximum":15,"minimum":0.5,"title":"Segment Hop Sec","description":"Hop size between segments in seconds. 2.5: 50% overlap (recommended). Set equal to segment_duration_sec for no overlap.","default":2.5,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.segment_hop_sec","typeLabel":"number"},"sample_rate":{"type":"integer","title":"Sample Rate","description":"Target sample rate for audio. 48000: CLAP default (recommended). Audio is resampled to this rate before embedding.","default":48000,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.sample_rate","typeLabel":"integer"},"normalize_embeddings":{"type":"boolean","title":"Normalize Embeddings","description":"L2-normalize embeddings to unit vectors (recommended for cosine similarity).","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.normalize_embeddings","typeLabel":"boolean"},"max_audio_length_sec":{"type":"number","maximum":600,"minimum":1,"title":"Max Audio Length Sec","description":"Maximum audio length to process in seconds. 120: Default (2 minutes). Audio beyond this is truncated.","default":120,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0.max_audio_length_sec","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.0","typeLabel":"AudioFingerprintExtractorParams · object"},{"type":"object","title":"ColbertExtractorParams","description":"Parameters for the ColBERT extractor.","example":{"extractor_type":"colbert_extractor"},"properties":{"extractor_type":{"type":"string","const":"colbert_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"colbert_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.1.extractor_type","typeLabel":"string"},"split_by":{"type":"string","enum":["characters","words","sentences","paragraphs","pages","time_segments","markdown","none"],"title":"TextSplitStrategy","description":"Strategy for splitting text into multiple documents. ColBERT reads at most 512 tokens of each document, so long texts should be split.","default":"none","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.1.split_by","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target chunk size, counted in the split_by strategy's own unit.","default":300,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.1.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between consecutive chunks, in the same unit as chunk_size.","default":0,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.1.chunk_overlap","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.1","typeLabel":"ColbertExtractorParams · object"},{"type":"object","title":"ColqwenExtractorParams","description":"Parameters for the ColQwen extractor.","example":{"extractor_type":"colqwen_extractor"},"properties":{"extractor_type":{"type":"string","const":"colqwen_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"colqwen_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.2.extractor_type","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Whether to generate a thumbnail of each image, page or frame.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.2.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Whether to use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.2.use_cdn","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.2","typeLabel":"ColqwenExtractorParams · object"},{"type":"object","title":"DocumentGraphExtractorParams","description":"Parameters for the document graph extractor.\n\nThis extractor decomposes PDFs into spatial blocks with layout classification,\nconfidence scoring, and optional VLM correction for degraded documents.\n\n**When to Use**:\n - Historical/archival document processing (FBI files, old records)\n - Scanned documents with mixed quality\n - Documents requiring spatial understanding (forms, tables, multi-column)\n - When you need block-level granularity with bounding boxes\n - When confidence scoring is needed for downstream filtering\n\n**When NOT to Use**:\n - Simple text-only documents -> Use text_extractor instead\n - When page-level granularity is sufficient -> Use pdf_extractor instead\n - Real-time processing requirements -> VLM correction adds latency","example":{"extractor_type":"document_graph_extractor","fast_mode":true,"generate_thumbnails":true,"layout_detector":"pymupdf","run_text_embedding":true,"use_layout_detection":true},"properties":{"extractor_type":{"type":"string","const":"document_graph_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification. Must be 'document_graph_extractor'.","default":"document_graph_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.extractor_type","typeLabel":"string"},"use_layout_detection":{"type":"boolean","title":"Use Layout Detection","description":"Enable ML-based layout detection to find ALL document elements (text, images, tables, figures). When enabled, uses the configured layout_detector to detect and extract both text regions AND non-text elements (scanned images, figures, charts) as separate documents. **Recommended for**: Scanned documents, image-heavy PDFs, mixed content documents. **When disabled**: Falls back to text-only extraction (faster but misses images). Default: True (detects all elements including images).","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.use_layout_detection","typeLabel":"boolean"},"layout_detector":{"type":"string","enum":["pymupdf","docling"],"title":"Layout Detector","description":"Layout detection engine to use when use_layout_detection=True. 'pymupdf': Fast, rule-based detection using PyMuPDF heuristics (~15 pages/sec). 'docling': SOTA ML-based detection using IBM Docling with DiT model (~3-8 sec/doc). **Docling advantages**: Better semantic type detection (section_header vs paragraph), true table structure extraction (rows/cols), more accurate figure detection. **PyMuPDF advantages**: Much faster, lower memory usage, simpler dependencies. Default: 'pymupdf' for speed. Use 'docling' for accuracy-critical applications.","default":"pymupdf","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.layout_detector","typeLabel":"enum\u003cstring>"},"vertical_threshold":{"type":"number","maximum":100,"minimum":1,"title":"Vertical Threshold","description":"Maximum vertical gap (in points) between lines to be grouped in same block. Increase for looser grouping, decrease for tighter blocks. Default 15pt works well for standard documents.","default":15,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.vertical_threshold","typeLabel":"number"},"horizontal_threshold":{"type":"number","maximum":200,"minimum":1,"title":"Horizontal Threshold","description":"Maximum horizontal distance (in points) for overlap detection. Affects column detection and block merging. Increase for wider columns, decrease for narrow layouts.","default":50,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.horizontal_threshold","typeLabel":"number"},"min_text_length":{"type":"integer","maximum":500,"minimum":1,"title":"Min Text Length","description":"Minimum text length (characters) to keep a block. Blocks with less text are filtered out. Helps remove noise and tiny fragments.","default":20,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.min_text_length","typeLabel":"integer"},"base_confidence":{"type":"number","maximum":1,"minimum":0,"title":"Base Confidence","description":"Base confidence score for embedded (native) text. Penalties are subtracted for OCR artifacts, encoding issues, etc.","default":0.85,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.base_confidence","typeLabel":"number"},"min_confidence_for_vlm":{"type":"number","maximum":1,"minimum":0,"title":"Min Confidence For Vlm","description":"Confidence threshold below which VLM correction is triggered. Blocks with confidence \u003c this value get sent to VLM for correction. Only applies when use_vlm_correction=True.","default":0.6,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.min_confidence_for_vlm","typeLabel":"number"},"use_vlm_correction":{"type":"boolean","title":"Use Vlm Correction","description":"Enable VLM (Vision Language Model) correction for low-confidence blocks. Uses Gemini/GPT-4V to correct OCR errors by analyzing the page image. Significantly slower (~1 page/sec) but improves accuracy for degraded docs.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.use_vlm_correction","typeLabel":"boolean"},"fast_mode":{"type":"boolean","title":"Fast Mode","description":"Skip VLM correction entirely for maximum throughput (~15 pages/sec). Overrides use_vlm_correction. Use when speed is more important than accuracy.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.fast_mode","typeLabel":"boolean"},"vlm_provider":{"type":"string","title":"Vlm Provider","description":"LLM provider for VLM correction. Options: 'google' (Gemini), 'openai' (GPT-4V), 'anthropic' (Claude). Google recommended for best vision quality.","default":"google","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.vlm_provider","typeLabel":"string"},"vlm_model":{"type":"string","title":"Vlm Model","description":"Specific model for VLM correction. Examples: 'gemini-2.5-flash', 'gpt-4o', 'claude-3-5-sonnet'.","default":"gemini-2.5-flash","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.vlm_model","typeLabel":"string"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for VLM correction (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for VLM correction (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key","typeLabel":"string | null"},"run_text_embedding":{"type":"boolean","title":"Run Text Embedding","description":"Generate text embeddings for semantic search over block content. Uses E5-Large (1024-dim) for multilingual support.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.run_text_embedding","typeLabel":"boolean"},"render_dpi":{"type":"integer","maximum":300,"minimum":72,"title":"Render Dpi","description":"DPI for page rendering (used for VLM correction). 72: Fast, lower quality. 150: Balanced (recommended). 300: High quality, slower.","default":150,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.render_dpi","typeLabel":"integer"},"generate_thumbnails":{"type":"boolean","title":"Generate Thumbnails","description":"Generate thumbnail images for blocks. Useful for visual previews and UI display.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.generate_thumbnails","typeLabel":"boolean"},"thumbnail_mode":{"type":"string","title":"Thumbnail Mode","description":"Thumbnail generation mode. 'full_page': Low-res thumbnail of entire page. 'segment': Cropped thumbnail of just the block's bounding box. 'both': Generate both types (recommended for flexibility).","default":"both","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.thumbnail_mode","typeLabel":"string"},"thumbnail_dpi":{"type":"integer","maximum":150,"minimum":36,"title":"Thumbnail Dpi","description":"DPI for thumbnail generation. Lower DPI = smaller files. 72: Standard web quality. 36: Very small thumbnails.","default":72,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3.thumbnail_dpi","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.3","typeLabel":"DocumentGraphExtractorParams · object"},{"type":"object","title":"FaceIdentityExtractorParams","description":"Parameters for the Face Identity Extractor.\n\nThe Face Identity Extractor processes images or video frames to detect, align,\nand embed faces using production-grade SOTA models (SCRFD + ArcFace).\n\nCore Pipeline:\n1. SCRFD Detection → Bounding boxes + 5 landmarks\n2. 5-Point Affine Alignment → 112×112 canonical face\n3. ArcFace Embedding → 512-d L2-normalized vector\n4. Optional Quality Scoring → Filter low-quality faces\n\nUse Cases:\n - Face verification (1:1 matching)\n - Face identification (1:N search)\n - Face clustering (group photos by person)\n - Duplicate face detection","example":{"detection_model":"scrfd_2.5g","detection_threshold":0.7,"enable_quality_scoring":true,"extractor_type":"face_identity_extractor","max_faces_per_image":1,"min_face_size":40,"normalize_embeddings":true,"output_mode":"per_face","quality_threshold":0.5},"properties":{"extractor_type":{"type":"string","const":"face_identity_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification. Must be 'face_identity_extractor'.","default":"face_identity_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.extractor_type","typeLabel":"string"},"detection_model":{"type":"string","enum":["scrfd_500m","scrfd_2.5g","scrfd_10g"],"title":"Detection Model","description":"SCRFD model for face detection. 'scrfd_500m': Fastest (2-3ms). 'scrfd_2.5g': Balanced (5-7ms), recommended. 'scrfd_10g': Highest accuracy (10-15ms).","default":"scrfd_2.5g","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.detection_model","typeLabel":"enum\u003cstring>"},"min_face_size":{"type":"integer","maximum":200,"minimum":10,"title":"Min Face Size","description":"Minimum face size in pixels to detect. 20px: Balanced. 40px: Higher quality. 10px: Maximum recall.","default":20,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.min_face_size","typeLabel":"integer"},"detection_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Detection Threshold","description":"Confidence threshold for face detection (0.0-1.0).","default":0.5,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.detection_threshold","typeLabel":"number"},"max_faces_per_image":{"oneOf":[{"type":"integer","title":"Max Faces Per Image","description":"Maximum number of faces to process per image. None: Process all.","minimum":1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Faces Per Image","description":"Maximum number of faces to process per image. None: Process all.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image","typeLabel":"integer | null"},"normalize_embeddings":{"type":"boolean","title":"Normalize Embeddings","description":"L2-normalize embeddings to unit vectors (recommended).","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.normalize_embeddings","typeLabel":"boolean"},"enable_quality_scoring":{"type":"boolean","title":"Enable Quality Scoring","description":"Compute quality scores (blur, size, landmarks). Adds ~5ms per face.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.enable_quality_scoring","typeLabel":"boolean"},"quality_threshold":{"oneOf":[{"type":"number","title":"Quality Threshold","description":"Minimum quality score to index faces. None: Index all faces. 0.5: Moderate filtering. 0.7: High quality only.","maximum":1,"minimum":0,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Quality Threshold","description":"Minimum quality score to index faces. None: Index all faces. 0.5: Moderate filtering. 0.7: High quality only.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold","typeLabel":"number | null"},"max_video_length":{"type":"integer","maximum":300,"minimum":1,"title":"Max Video Length","description":"Maximum video length in seconds. 60: Default. 10: Recommended for retrieval. 300: Maximum (extraction only).","default":60,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.max_video_length","typeLabel":"integer"},"video_sampling_fps":{"oneOf":[{"type":"number","title":"Video Sampling Fps","description":"Frames per second to sample from video. 1.0: One frame per second (recommended).","default":1,"maximum":60,"minimum":0.1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Video Sampling Fps","description":"Frames per second to sample from video. 1.0: One frame per second (recommended).","default":1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps","typeLabel":"number | null"},"video_deduplication":{"type":"boolean","title":"Video Deduplication","description":"Remove duplicate faces across video frames (extraction only). Reduces 90-95% redundancy. NOT used in retrieval.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.video_deduplication","typeLabel":"boolean"},"video_deduplication_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Video Deduplication Threshold","description":"Cosine similarity threshold for deduplication. 0.8: Conservative (default).","default":0.8,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.video_deduplication_threshold","typeLabel":"number"},"output_mode":{"type":"string","enum":["per_face","per_image"],"title":"Output Mode","description":"'per_face': One document per face (recommended). 'per_image': One doc per image with faces array.","default":"per_face","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.output_mode","typeLabel":"enum\u003cstring>"},"include_face_crops":{"type":"boolean","title":"Include Face Crops","description":"Include aligned 112×112 face crops as base64. Adds ~5KB per face. Required for LLM cluster labeling to see actual faces instead of hallucinating.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.include_face_crops","typeLabel":"boolean"},"include_source_frame_thumbnail":{"type":"boolean","title":"Include Source Frame Thumbnail","description":"Include resized source frame/image as base64 thumbnail (~15-30KB per face). Used for display with bounding box overlay.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.include_source_frame_thumbnail","typeLabel":"boolean"},"store_detection_metadata":{"type":"boolean","title":"Store Detection Metadata","description":"Store bbox, landmarks, detection scores. Recommended for debugging.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4.store_detection_metadata","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.4","typeLabel":"FaceIdentityExtractorParams · object"},{"type":"object","title":"GeminiMultifileExtractorParams","description":"Parameters for the Gemini Multifile Extractor.\n\nUses Gemini Embedding 2 (gemini-embedding-2) to embed all files\nof an object into a single 3072-d vector in one API call. Supports images,\nvideo, audio, PDF, and text blobs.","example":{"extractor_type":"gemini_multifile_extractor","input_key":"files","output_dimensionality":3072,"task_type":"RETRIEVAL_DOCUMENT"},"properties":{"extractor_type":{"type":"string","const":"gemini_multifile_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"gemini_multifile_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.5.extractor_type","typeLabel":"string"},"output_dimensionality":{"type":"integer","maximum":3072,"minimum":256,"title":"Output Dimensionality","description":"Output embedding dimensions. Gemini Embedding 2 supports 3072 (default), 768, or 256 via truncation. Lower dimensions reduce storage cost at slight quality loss.","default":3072,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.5.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding intent used as a text instruction for Gemini Embedding 2. Common values: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.5.task_type","typeLabel":"string"},"input_key":{"type":"string","title":"Input Key","description":"The input_mappings key whose value is the list of blob fields to embed together. Must match the key used in input_mappings (e.g., 'files'). Default: 'files'.","default":"files","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.5.input_key","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.5","typeLabel":"GeminiMultifileExtractorParams · object"},{"type":"object","title":"ImageExtractorParams","description":"Parameters for the Image Extractor.","example":{"enable_thumbnails":true,"extractor_type":"image_extractor","use_cdn":false},"properties":{"extractor_type":{"type":"string","const":"image_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"image_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.extractor_type","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Whether to generate thumbnail images.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Whether to use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.use_cdn","typeLabel":"boolean"},"tile_grid":{"oneOf":[{"type":"object","title":"TileGrid","description":"OPTIONAL. Also index each video frame and image as a cols x rows grid of crops, one document per tile, so a small thing in a wide shot is found by the crop that holds it. Each tile document carries tile_index (0 = the full frame, then crops row by row) and frame_key, shared by the tiles of one frame; a retriever's group_by stage on frame_key with max_per_group 1 ranks frames by their best tile. Multiplies the documents and embedding work by cols x rows + 1. PDF pages are not tiled. Default: off, one document per frame.","properties":{"cols":{"type":"integer","maximum":4,"minimum":1,"title":"Cols","description":"Crops across a frame.","default":3,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.cols","typeLabel":"integer"},"rows":{"type":"integer","maximum":4,"minimum":1,"title":"Rows","description":"Crops down a frame.","default":2,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.rows","typeLabel":"integer"},"include_full_frame":{"type":"boolean","title":"Include Full Frame","description":"Also index the whole frame as tile 0, so a thing that fills the frame is still found by its full view.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.include_full_frame","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0","typeLabel":"TileGrid · object"},{"type":"null","description":"OPTIONAL. Also index each video frame and image as a cols x rows grid of crops, one document per tile, so a small thing in a wide shot is found by the crop that holds it. Each tile document carries tile_index (0 = the full frame, then crops row by row) and frame_key, shared by the tiles of one frame; a retriever's group_by stage on frame_key with max_per_group 1 ranks frames by their best tile. Multiplies the documents and embedding work by cols x rows + 1. PDF pages are not tiled. Default: off, one document per frame.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid","typeLabel":"TileGrid · object | null"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.6","typeLabel":"ImageExtractorParams · object"},{"type":"object","title":"MultimodalExtractorParams","description":"Parameters for multimodal extractor v2.\n\nSame pipeline as v1 but uses Gemini Embedding 2 (3072D) for the\nmultimodal embedding step. Supports configurable output dimensions\nvia Matryoshka representation learning (3072/1536/768).","example":{"split_method":"time","time_split_interval":10},"properties":{"extractor_type":{"type":"string","const":"multimodal_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'multimodal_extractor'.","default":"multimodal_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.extractor_type","typeLabel":"string"},"split_method":{"type":"string","enum":["time","scene","silence"],"title":"SplitMethod","description":"Video splitting strategy.","default":"time","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.split_method","typeLabel":"enum\u003cstring>"},"description_prompt":{"type":"string","title":"Description Prompt","description":"Prompt for description generation.","default":"Watch this video segment carefully and describe exactly what you see. Do not make up or infer details that are not visible in the footage. Include: who is shown (gender, appearance, actions), what they are doing, the setting/location, and any products, text, or branding visible on screen.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.description_prompt","typeLabel":"string"},"time_split_interval":{"oneOf":[{"type":"integer","title":"Time Split Interval","description":"Interval in seconds for 'time' splitting.","default":10,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Time Split Interval","description":"Interval in seconds for 'time' splitting.","default":10,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval","typeLabel":"integer | null"},"silence_db_threshold":{"oneOf":[{"type":"integer","title":"Silence Db Threshold","description":"Decibel threshold for silence detection. Recommended: -40.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Silence Db Threshold","description":"Decibel threshold for silence detection. Recommended: -40.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold","typeLabel":"integer | null"},"scene_detection_threshold":{"oneOf":[{"type":"number","title":"Scene Detection Threshold","description":"Scene detection threshold (0.0-1.0). Recommended: 0.5.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Scene Detection Threshold","description":"Scene detection threshold (0.0-1.0). Recommended: 0.5.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold","typeLabel":"number | null"},"run_transcription":{"type":"boolean","title":"Run Transcription","description":"Run Whisper transcription on segments.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_transcription","typeLabel":"boolean"},"transcription_language":{"oneOf":[{"type":"string","title":"Transcription Language","description":"ISO-639-1 code that forces the transcription language, e.g. `ru`, `fa`, `zh`. Leave unset to detect the language per segment, which is the right choice for a mixed-language corpus.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transcription Language","description":"ISO-639-1 code that forces the transcription language, e.g. `ru`, `fa`, `zh`. Leave unset to detect the language per segment, which is the right choice for a mixed-language corpus.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language","typeLabel":"string | null"},"run_video_description":{"type":"boolean","title":"Run Video Description","description":"Generate Gemini descriptions for segments.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_video_description","typeLabel":"boolean"},"run_transcription_embedding":{"type":"boolean","title":"Run Transcription Embedding","description":"Generate E5 embeddings for transcriptions (1024D).","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_transcription_embedding","typeLabel":"boolean"},"run_ocr_embedding":{"type":"boolean","title":"Run Ocr Embedding","description":"Generate E5 embeddings for OCR text (1024D). Requires run_ocr.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_ocr_embedding","typeLabel":"boolean"},"run_description_embedding":{"type":"boolean","title":"Run Description Embedding","description":"Generate E5 embeddings for descriptions (1024D). Requires run_video_description.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_description_embedding","typeLabel":"boolean"},"run_multimodal_embedding":{"type":"boolean","title":"Run Multimodal Embedding","description":"Generate Gemini Embedding 2 multimodal embeddings (3072D). Creates unified embeddings across video, image, text, audio, and GIF content.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_multimodal_embedding","typeLabel":"boolean"},"run_ocr":{"type":"boolean","title":"Run Ocr","description":"Extract text from video frames via Gemini OCR.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.run_ocr","typeLabel":"boolean"},"max_segment_duration":{"oneOf":[{"type":"number","title":"Max Segment Duration","description":"Maximum duration in seconds for any single segment. Scene/silence segments longer than this are subdivided. Set to None to disable. Default: 30s.","default":30,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Segment Duration","description":"Maximum duration in seconds for any single segment. Scene/silence segments longer than this are subdivided. Set to None to disable. Default: 30s.","default":30,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration","typeLabel":"number | null"},"sensitivity":{"type":"string","title":"Sensitivity","description":"Scene detection sensitivity.","default":"low","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.sensitivity","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Generate thumbnail images for segments.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.use_cdn","typeLabel":"boolean"},"generation_config":{"properties":{"candidate_count":{"type":"integer","title":"Candidate Count","description":"Number of candidate responses to generate for video description.","default":1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.candidate_count","typeLabel":"integer"},"max_output_tokens":{"type":"integer","title":"Max Output Tokens","description":"Maximum number of tokens for the generated video description.","default":1024,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.max_output_tokens","typeLabel":"integer"},"temperature":{"type":"number","title":"Temperature","description":"Controls randomness for video description generation. Higher is more random.","default":0.2,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.temperature","typeLabel":"number"},"top_p":{"type":"number","title":"Top P","description":"Nucleus sampling (top-p) for video description generation.","default":0.8,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.top_p","typeLabel":"number"},"video_fps":{"oneOf":[{"type":"number","title":"Video Fps","description":"Frames per second the model reads from each video segment for the description. Unset uses the model's default of 1. Raise it (for example to 4 or 5) for fast or fine motion such as hand work; input tokens grow with the rate.","maximum":24,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Video Fps","description":"Frames per second the model reads from each video segment for the description. Unset uses the model's default of 1. Raise it (for example to 4 or 5) for fast or fine motion such as hand work; input tokens grow with the rate.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps","typeLabel":"number | null"},"response_mime_type":{"oneOf":[{"type":"string","title":"Response Mime Type","description":"MIME type for response (e.g., 'application/json')","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Response Mime Type","description":"MIME type for response (e.g., 'application/json')","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type","typeLabel":"string | null"},"response_schema":{"oneOf":[{"type":"object","title":"Response Schema","description":"JSON schema for structured output","additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema.oneOf.0","typeLabel":"Response Schema · object"},{"type":"null","title":"Response Schema","description":"JSON schema for structured output","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema","typeLabel":"Response Schema · object | null"}},"type":"object","title":"GenerationConfig","description":"Configuration for generative models.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config","typeLabel":"GenerationConfig · object"},"output_dimensionality":{"type":"integer","title":"Output Dimensionality","description":"Output embedding dimensions. Gemini Embedding 2 supports Matryoshka dimension reduction: 3072 (full), 1536, or 768.","default":3072,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding task type hint. Options: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.task_type","typeLabel":"string"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape","typeLabel":"string | Response Shape · object | null"},"embedding_task":{"oneOf":[{"type":"string","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Note: Vertex AI multimodal embeddings ignore this — only E5 transcription embeddings use it.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task.oneOf.0","typeLabel":"string"},{"type":"null","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Note: Vertex AI multimodal embeddings ignore this — only E5 transcription embeddings use it.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task","typeLabel":"string | null"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.7","typeLabel":"MultimodalExtractorParams · object"},{"type":"object","title":"PassthroughExtractorParams","description":"Parameters for passthrough extractor.\n\nMinimal configuration - just passes data through with canonicalization.\nWith ``vector_fields`` set, each row of a JSONL or Parquet object becomes\nits own document carrying the row's precomputed vectors.","properties":{"extractor_type":{"type":"string","const":"passthrough_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"passthrough_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.extractor_type","typeLabel":"string"},"preserve_metadata":{"type":"boolean","title":"Preserve Metadata","description":"Preserve source object metadata in output document.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.preserve_metadata","typeLabel":"boolean"},"vector_fields":{"items":{"properties":{"field":{"type":"string","minLength":1,"title":"Field","description":"Key in each row that holds the vector, as a list of numbers. A row without this key, or with a vector of the wrong length, is reported as a failed row and the other rows are still written.","examples":["embedding"],"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].field","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Name of the vector index the vector is stored under. Use this name in a feature_search stage to search the rows with a raw query vector. Letters, digits and underscores, starting with a letter, at most 64 characters, and unique within vector_fields.","examples":["text_embedding"],"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].name","typeLabel":"string"},"dimensions":{"type":"integer","maximum":65536,"minimum":1,"title":"Dimensions","description":"Length of every vector in this field.","examples":[384,768,1536],"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].dimensions","typeLabel":"integer"},"distance":{"type":"string","enum":["cosine","dot","euclidean"],"title":"Distance","description":"Distance metric for the index. Use the metric the vectors were trained for.","default":"cosine","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].distance","typeLabel":"enum\u003cstring>"}},"type":"object","required":["field","name","dimensions"],"title":"VectorFieldSpec","description":"One precomputed vector carried on each row of a JSONL or Parquet object.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX]","typeLabel":"VectorFieldSpec · object"},"type":"array","title":"Vector Fields","description":"Precomputed vectors to store from a JSONL or Parquet object. When set, every row of the object becomes its own document: the row's other fields are stored on the document, and each listed vector is stored under its own vector index, searchable with a raw vector in a feature_search stage. Leave empty, and leave row_format unset, to store one document per object.","examples":[[{"dimensions":384,"distance":"cosine","field":"embedding","name":"text_embedding"}]],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields","typeLabel":"VectorFieldSpec · object[]"},"row_format":{"oneOf":[{"type":"string","title":"Row Format","description":"Read each row of a JSONL or Parquet object as its own document. Set it without vector_fields for payload-only rows (events, spans, logs). With vector_fields set, leave it unset to read the format from the object's file extension (.jsonl or .ndjson for JSONL, .parquet for Parquet).","enum":["jsonl","parquet"],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Row Format","description":"Read each row of a JSONL or Parquet object as its own document. Set it without vector_fields for payload-only rows (events, spans, logs). With vector_fields set, leave it unset to read the format from the object's file extension (.jsonl or .ndjson for JSONL, .parquet for Parquet).","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.8","typeLabel":"PassthroughExtractorParams · object"},{"type":"object","title":"ScrollingTextExtractorParams","description":"Parameters for the on-screen text extractor.\n\nExtracts ALL on-screen text from video: STATIC overlays (title cards,\ndisclaimers, captions, CTAs — the majority of ad-creative text) via\nkeyframe-grid VLM OCR, and SCROLLING/marquee text via computer vision\n(phase-correlation band detection + panoramic stitching) + VLM OCR.\n\n**When to Use**:\n - Ad creative with static overlay text (disclaimers, CTAs, titles)\n - Video ads with scrolling promotional banners or tickers\n - News broadcasts with scrolling chyrons or tickers\n - Videos with terms \u0026 conditions or disclaimers (static or scrolling)\n - Social media content with text overlays\n - Credits sequences in film/TV content\n - Live event streams with scrolling info bars\n\n**When NOT to Use**:\n - Spoken content → use multimodal_extractor with run_transcription=True\n - Text documents/PDFs → use text_extractor\n\n**How It Works**:\n Static pass (static_ocr=True, default):\n 1. Select visually distinct keyframes (identical frames collapse to one)\n 2. Stitch them into a single grid image\n 3. OCR the grid with one vision-language-model call (Gemini)\n\n Scrolling pass:\n 1. Sample frames from video at configurable FPS\n 2. Split each frame into horizontal and vertical strips\n 3. Phase-correlate consecutive frames to measure per-strip pixel shift\n 4. Strips with consistent shift in one direction = scrolling band\n 5. Stitch the band across frames into a single wide/tall panorama image\n 6. OCR the panorama using a vision language model (Gemini)\n 7. Deduplicate repeated marquee loops (e.g. \"SALE • SALE • SALE •\" → \"SALE\")\n\n**Performance**:\n - Processing speed: ~2-5x realtime (depends on video resolution and FPS)\n - Accuracy: Best with consistent scroll speed; handles variable speed with degradation\n - Minimum video length: ~2 seconds (needs 3+ frames for correlation)\n\n**Supported Scroll Directions**:\n - Horizontal: Right-to-left (most common), Left-to-right\n - Vertical: Bottom-to-top (credits), Top-to-bottom","example":{"extractor_type":"scrolling_text_extractor","fps":5,"strip_height":40},"properties":{"extractor_type":{"type":"string","const":"scrolling_text_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'scrolling_text_extractor'.","default":"scrolling_text_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.extractor_type","typeLabel":"string"},"fps":{"type":"number","maximum":30,"minimum":1,"title":"Fps","description":"Frame sampling rate for analysis. Higher values improve detection accuracy for fast-scrolling text but increase processing time. 5 FPS works well for most video ads and tickers.","default":5,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.fps","typeLabel":"number"},"strip_height":{"type":"integer","maximum":200,"minimum":10,"title":"Strip Height","description":"Height (in pixels) of each scanning strip used for phase correlation. Should roughly match the height of the scrolling text band. Smaller values detect narrower text bands; larger values are more robust but may miss thin tickers. 40px works for most standard video ads.","default":40,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.strip_height","typeLabel":"integer"},"min_shift_px":{"type":"number","maximum":20,"minimum":0.5,"title":"Min Shift Px","description":"Minimum pixel shift per frame to consider a strip as 'scrolling'. Lower values detect slower-moving text; higher values filter out noise. 2.0px is a good default for 5 FPS sampling.","default":2,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.min_shift_px","typeLabel":"number"},"consistency_ratio":{"type":"number","maximum":1,"minimum":0.3,"title":"Consistency Ratio","description":"Fraction of frame pairs that must show consistent shift for a band to be classified as scrolling. 0.6 means 60% of frames must agree. Lower values detect intermittent scrolling; higher values reduce false positives.","default":0.6,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.consistency_ratio","typeLabel":"number"},"pad":{"type":"integer","maximum":50,"minimum":0,"title":"Pad","description":"Pixel padding above/below detected band when cropping for stitching.","default":8,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.pad","typeLabel":"integer"},"static_ocr":{"type":"boolean","title":"Static Ocr","description":"Also OCR STATIC on-screen text (title cards, disclaimers, CTAs, captions) — the majority of text in ad creative. Distinct keyframes are stitched into one grid image and read with a single VLM call, so a fully static video costs one OCR call. Disable only if you strictly want scrolling-band text.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.static_ocr","typeLabel":"boolean"},"max_static_frames":{"type":"integer","maximum":12,"minimum":1,"title":"Max Static Frames","description":"Maximum number of visually distinct keyframes sampled for the static-text OCR grid. Identical frames collapse to one; scene changes contribute additional frames up to this cap.","default":4,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9.max_static_frames","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.9","typeLabel":"ScrollingTextExtractorParams · object"},{"type":"object","title":"TextExtractorParams","description":"Parameters for the text extractor.\n\nThe text extractor generates dense vector embeddings optimized for semantic similarity search.\nIt uses the E5-Large multilingual model to convert text into 1024-dimensional vectors.\n\nWhen ``source_type`` is ``\"youtube\"``, the extractor first resolves YouTube URLs\nto caption text via yt-dlp before chunking and embedding. Use ``split_by=\"time_segments\"``\nwith ``segment_length_seconds`` to segment captions by time window.","example":{"chunk_overlap":0,"chunk_size":1000,"extractor_type":"text_extractor","split_by":"none"},"properties":{"extractor_type":{"type":"string","const":"text_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"text_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.extractor_type","typeLabel":"string"},"source_type":{"type":"string","enum":["text","youtube"],"title":"Source Type","description":"Source content type. Use 'youtube' to resolve YouTube URLs to caption text before embedding. Default: 'text' (plain text input).","default":"text","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.source_type","typeLabel":"enum\u003cstring>"},"split_by":{"type":"string","enum":["characters","words","sentences","paragraphs","pages","time_segments","markdown","none"],"title":"TextSplitStrategy","description":"Strategy for splitting text into multiple documents. 'markdown' makes one document per heading section and one per fenced code block, each carrying heading_path, chunk_kind ('section' or 'code') and, for code, code_language.","default":"none","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.split_by","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target chunk size, counted in the split_by strategy's own unit: characters for split_by='characters', words for 'words', sentences for 'sentences', paragraphs for 'paragraphs', pages for 'pages', and words of prose per section chunk for 'markdown' (a longer section splits at paragraph boundaries; code blocks are never split). For example split_by='sentences' with chunk_size=5 produces chunks of 5 sentences. Not used for 'none' or 'time_segments' (use segment_length_seconds there).","default":1000,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between consecutive chunks, counted in the same unit as chunk_size (characters, words, sentences, paragraphs, or pages). For example split_by='sentences' with chunk_overlap=1 carries one sentence from the end of each chunk into the next. Not used for 'markdown'.","default":0,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.chunk_overlap","typeLabel":"integer"},"segment_length_seconds":{"type":"integer","maximum":600,"minimum":30,"title":"Segment Length Seconds","description":"Length of each transcript segment in seconds (for time_segments split strategy). Shorter segments give more precise search results but more documents.","default":120,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.segment_length_seconds","typeLabel":"integer"},"language":{"type":"string","title":"Language","description":"Preferred language code for YouTube captions (when source_type='youtube').","default":"en","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.language","typeLabel":"string"},"extract_captions":{"type":"boolean","title":"Extract Captions","description":"Extract auto-captions or manual subtitles from YouTube videos (when source_type='youtube'). Falls back to video description if False.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.extract_captions","typeLabel":"boolean"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Define custom structured output using LLM extraction.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Define custom structured output using LLM extraction.","additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Define custom structured output using LLM extraction.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape","typeLabel":"string | Response Shape · object | null"},"llm_provider":{"oneOf":[{"type":"string","title":"Llm Provider","description":"LLM provider for structured extraction (openai, google, anthropic, typesafe). 'typesafe' runs Jev, which answers each response_shape field as a typed question (enum -> choice, boolean -> yes/no, bounded integer -> score) and needs response_shape as a JSON schema of closed-set fields.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Provider","description":"LLM provider for structured extraction (openai, google, anthropic, typesafe). 'typesafe' runs Jev, which answers each response_shape field as a typed question (enum -> choice, boolean -> yes/no, bounded integer -> score) and needs response_shape as a JSON schema of closed-set fields.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider","typeLabel":"string | null"},"llm_model":{"oneOf":[{"type":"string","title":"Llm Model","description":"Specific LLM model for structured extraction, e.g. gemini-2.5-flash or jev-latest.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Model","description":"Specific LLM model for structured extraction, e.g. gemini-2.5-flash or jev-latest.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model","typeLabel":"string | null"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key","typeLabel":"string | null"},"embedding_model":{"oneOf":[{"type":"string","title":"EmbeddingModel","description":"Embedding model to use. Defaults to the current TEXT modality default in the central embedding registry. Changing this on an existing namespace requires a migration — dimensions are fixed at namespace creation.","enum":["laion_clip_vit_l_14_v1","multilingual_e5_large_instruct_v1","vertex_multimodal_embedding","multimodalembedding@001","gemini-embedding-2","google_siglip_base_v1","google_siglip_so400m_v1","text-embedding-3-small","text-embedding-3-large","face_identity_arcface_r100_v1","all_minilm_l6_v2_v1","colbertv2_v1","colqwen2_v1"],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Embedding model to use. Defaults to the current TEXT modality default in the central embedding registry. Changing this on an existing namespace requires a migration — dimensions are fixed at namespace creation.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model","typeLabel":"enum\u003cstring> | null"},"embedding_task":{"oneOf":[{"type":"string","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5, Gemini). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task.oneOf.0","typeLabel":"string"},{"type":"null","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5, Gemini). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task","typeLabel":"string | null"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.10","typeLabel":"TextExtractorParams · object"},{"type":"object","title":"TranscodingExtractorParams","description":"Parameters for the Transcoding Extractor.\n\nTranscodes source video (RED R3D, ARRI RAW, MXF, or any FFmpeg-decodable\nformat) to a web-playable H.264/H.265 MP4 uploaded to object storage.\nThe output document carries the converted file's URL in `converted_url`.","example":{"crf":23,"extractor_type":"transcoding_extractor","max_resolution":1080,"output_codec":"libx264","preset":"medium"},"properties":{"extractor_type":{"type":"string","const":"transcoding_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'transcoding_extractor'.","default":"transcoding_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.extractor_type","typeLabel":"string"},"output_codec":{"type":"string","enum":["libx264","libx265"],"title":"Output Codec","description":"Output video codec. libx264 (H.264) for maximum player compatibility; libx265 (H.265) for smaller files.","default":"libx264","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.output_codec","typeLabel":"enum\u003cstring>"},"crf":{"type":"integer","maximum":51,"minimum":0,"title":"Crf","description":"Constant Rate Factor. Lower is higher quality and larger files. 18-23 is the usual H.264 range; 23 is a good default mezzanine.","default":23,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.crf","typeLabel":"integer"},"preset":{"type":"string","enum":["ultrafast","superfast","veryfast","faster","fast","medium","slow","slower","veryslow"],"title":"Preset","description":"FFmpeg encoding speed preset. Slower presets compress better at the same quality but take more CPU time.","default":"medium","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.preset","typeLabel":"enum\u003cstring>"},"max_resolution":{"oneOf":[{"type":"integer","title":"Max Resolution","description":"Cap output height in pixels (width scales proportionally). Set null to keep the source resolution.","default":1080,"maximum":4320,"minimum":144,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Resolution","description":"Cap output height in pixels (width scales proportionally). Set null to keep the source resolution.","default":1080,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution","typeLabel":"integer | null"},"audio_codec":{"type":"string","enum":["aac","mp3","copy"],"title":"Audio Codec","description":"Audio codec for the output ('copy' passes audio through).","default":"aac","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.audio_codec","typeLabel":"enum\u003cstring>"},"require_native_sdks":{"type":"boolean","title":"Require Native Sdks","description":"If true, fail a RED/ARRI file instead of falling back to plain FFmpeg when the REDline/art-cmd CLI is not installed on the engine image. Leave false to get best-effort conversion.","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11.require_native_sdks","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.11","typeLabel":"TranscodingExtractorParams · object"},{"type":"object","title":"UniversalExtractorParams","description":"Parameters for the Universal Extractor.","example":{"extract_text":true,"extractor_type":"universal_extractor","generate_description":true,"max_concurrency":4,"max_file_download_mb":500,"output_dimensionality":3072,"task_type":"RETRIEVAL_DOCUMENT"},"properties":{"extractor_type":{"type":"string","const":"universal_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"universal_extractor","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.extractor_type","typeLabel":"string"},"output_dimensionality":{"type":"integer","maximum":3072,"minimum":256,"title":"Output Dimensionality","description":"Output embedding dimensions (Gemini Embedding 2 supports 256-3072).","default":3072,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding intent used as a text instruction for Gemini Embedding 2. Common values: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.task_type","typeLabel":"string"},"generate_description":{"type":"boolean","title":"Generate Description","description":"Generate a text description of the content via Gemini vision/understanding.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.generate_description","typeLabel":"boolean"},"extract_text":{"type":"boolean","title":"Extract Text","description":"Extract text content (OCR for images/docs, transcription for audio/video).","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.extract_text","typeLabel":"boolean"},"max_video_segments":{"type":"integer","maximum":50,"minimum":1,"title":"Max Video Segments","description":"Maximum number of 30s segments to process for video files.","default":10,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.max_video_segments","typeLabel":"integer"},"max_document_pages":{"type":"integer","maximum":200,"minimum":1,"title":"Max Document Pages","description":"Maximum number of pages to process for document files.","default":50,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.max_document_pages","typeLabel":"integer"},"max_file_download_mb":{"type":"integer","maximum":1024,"minimum":1,"title":"Max File Download Mb","description":"Maximum file download size in MB for fast-path processing.","default":500,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.max_file_download_mb","typeLabel":"integer"},"max_concurrency":{"type":"integer","maximum":32,"minimum":1,"title":"Max Concurrency","description":"Maximum per-task object concurrency for fast-path processing.","default":4,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12.max_concurrency","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.12","typeLabel":"UniversalExtractorParams · object"},{"type":"object","title":"WebScraperExtractorParams","description":"Parameters for the web scraper extractor.\n\nThe web scraper extractor crawls websites and extracts content with three types\nof embeddings for comprehensive multimodal search:\n\n**Embedding Types:**\n- Text (E5-Large): 1024D embeddings for page content\n- Code (Jina Code): 768D embeddings for code blocks\n- Images (SigLIP): 768D semantic embeddings for figures/screenshots\n- Images (DINOv2): 768D structure embeddings for visual layout comparison\n\n**Crawl Modes:**\n- DETERMINISTIC: BFS following all links (default, predictable)\n- SEMANTIC: LLM-guided, prioritizes pages matching crawl_goal\n\n**Rendering Strategies:**\n- AUTO: Tries static, falls back to JS if content too short (default)\n- STATIC: Fast HTTP fetch, works for most sites\n- JAVASCRIPT: Playwright browser for SPAs (React/Vue/Angular)\n\n**Use Cases:**\n- Documentation freshness: Crawl docs, compare against course content\n- Job board ingestion: Extract job listings with structured data\n- Knowledge base building: Convert websites to searchable collections\n- Code example indexing: Find API usage patterns across docs","example":{"chunk_size":3,"chunk_strategy":"paragraphs","extractor_type":"web_scraper","max_depth":3,"max_pages":100},"properties":{"extractor_type":{"type":"string","const":"web_scraper","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"web_scraper","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.extractor_type","typeLabel":"string"},"max_depth":{"type":"integer","maximum":10,"minimum":0,"title":"Max Depth","description":"Maximum link depth to crawl. 0=seed page only, 1=seed+direct links, etc. Default: 2. Max: 10.","default":2,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.max_depth","typeLabel":"integer"},"max_pages":{"type":"integer","maximum":500,"minimum":1,"title":"Max Pages","description":"Maximum pages to crawl. Default: 50. Max: 500.","default":50,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.max_pages","typeLabel":"integer"},"crawl_timeout":{"type":"integer","maximum":3600,"minimum":10,"title":"Crawl Timeout","description":"Maximum total time for crawling in seconds. Default: 300 (5 minutes). Increase for large sites with many pages. Max: 3600 (1 hour).","default":300,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_timeout","typeLabel":"integer"},"crawl_mode":{"type":"string","enum":["deterministic","semantic"],"title":"CrawlMode","description":"Crawl strategy. DETERMINISTIC: BFS all links (predictable). SEMANTIC: LLM-guided, prioritizes relevant pages (requires crawl_goal).","default":"deterministic","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_mode","typeLabel":"enum\u003cstring>"},"crawl_goal":{"oneOf":[{"type":"string","title":"Crawl Goal","description":"Goal for semantic crawling. Only used when crawl_mode=SEMANTIC. Example: 'Find all S3 API documentation and examples'","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal.oneOf.0","typeLabel":"string"},{"type":"null","title":"Crawl Goal","description":"Goal for semantic crawling. Only used when crawl_mode=SEMANTIC. Example: 'Find all S3 API documentation and examples'","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal","typeLabel":"string | null"},"render_strategy":{"type":"string","enum":["static","javascript","auto"],"title":"RenderStrategy","description":"How to render pages. AUTO (default): tries static, falls back to JS. STATIC: fast HTTP fetch. JAVASCRIPT: Playwright browser for SPAs.","default":"auto","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.render_strategy","typeLabel":"enum\u003cstring>"},"include_patterns":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Include Patterns","description":"Regex patterns for URLs to include. Example: ['/docs/', '/api/']","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Include Patterns","description":"Regex patterns for URLs to include. Example: ['/docs/', '/api/']","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns","typeLabel":"string[] | null"},"exclude_patterns":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Exclude Patterns","description":"Regex patterns for URLs to exclude. Example: ['/blog/', '\\.pdf$']","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Exclude Patterns","description":"Regex patterns for URLs to exclude. Example: ['/blog/', '\\.pdf$']","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns","typeLabel":"string[] | null"},"chunk_strategy":{"type":"string","enum":["none","sentences","paragraphs","words","characters"],"title":"ChunkStrategy","description":"How to split page content. NONE: one chunk per page. SENTENCES/PARAGRAPHS: semantic boundaries. WORDS/CHARACTERS: fixed size chunks.","default":"none","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_strategy","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target size for each chunk (in units of chunk_strategy).","default":500,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between chunks to preserve context.","default":50,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_overlap","typeLabel":"integer"},"document_id_strategy":{"type":"string","enum":["url","position","content"],"title":"DocumentIdStrategy","description":"How to generate document IDs. URL (default): stable across re-crawls. POSITION: order-based. CONTENT: deduplicates identical content.","default":"url","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.document_id_strategy","typeLabel":"enum\u003cstring>"},"generate_text_embeddings":{"type":"boolean","title":"Generate Text Embeddings","description":"Generate E5 embeddings for text content.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_text_embeddings","typeLabel":"boolean"},"generate_code_embeddings":{"type":"boolean","title":"Generate Code Embeddings","description":"Generate Jina code embeddings for code blocks.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_code_embeddings","typeLabel":"boolean"},"generate_image_embeddings":{"type":"boolean","title":"Generate Image Embeddings","description":"Generate SigLIP embeddings for images/figures.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_image_embeddings","typeLabel":"boolean"},"generate_structure_embeddings":{"type":"boolean","title":"Generate Structure Embeddings","description":"Generate DINOv2 visual structure embeddings for layout comparison.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_structure_embeddings","typeLabel":"boolean"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape","typeLabel":"string | Response Shape · object | null"},"llm_provider":{"oneOf":[{"type":"string","title":"Llm Provider","description":"LLM provider for structured extraction: openai, google, anthropic","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Provider","description":"LLM provider for structured extraction: openai, google, anthropic","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider","typeLabel":"string | null"},"llm_model":{"oneOf":[{"type":"string","title":"Llm Model","description":"LLM model for structured extraction.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Model","description":"LLM model for structured extraction.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model","typeLabel":"string | null"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key","typeLabel":"string | null"},"max_retries":{"type":"integer","maximum":10,"minimum":0,"title":"Max Retries","description":"Maximum retry attempts for failed HTTP requests. Uses exponential backoff with jitter. Default: 3.","default":3,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.max_retries","typeLabel":"integer"},"retry_base_delay":{"type":"number","maximum":30,"minimum":0.1,"title":"Retry Base Delay","description":"Base delay in seconds for retry backoff. Actual delay = base * 2^attempt + jitter. Default: 1.0.","default":1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.retry_base_delay","typeLabel":"number"},"retry_max_delay":{"type":"number","maximum":300,"minimum":1,"title":"Retry Max Delay","description":"Maximum delay in seconds between retries. Default: 30.","default":30,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.retry_max_delay","typeLabel":"number"},"respect_retry_after":{"type":"boolean","title":"Respect Retry After","description":"Respect Retry-After header from 429/503 responses. If False, uses exponential backoff instead. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.respect_retry_after","typeLabel":"boolean"},"proxies":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Proxies","description":"List of proxy URLs for rotation. Supports formats: 'http://host:port', 'http://user:pass@host:port', 'socks5://host:port'. Proxies rotate on errors or every N requests.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Proxies","description":"List of proxy URLs for rotation. Supports formats: 'http://host:port', 'http://user:pass@host:port', 'socks5://host:port'. Proxies rotate on errors or every N requests.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies","typeLabel":"string[] | null"},"rotate_proxy_on_error":{"type":"boolean","title":"Rotate Proxy On Error","description":"Rotate to next proxy when request fails. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.rotate_proxy_on_error","typeLabel":"boolean"},"rotate_proxy_every_n_requests":{"type":"integer","maximum":1000,"minimum":0,"title":"Rotate Proxy Every N Requests","description":"Rotate proxy every N requests (0 = disabled). Useful for avoiding IP-based rate limits. Default: 0 (disabled).","default":0,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.rotate_proxy_every_n_requests","typeLabel":"integer"},"captcha_service_provider":{"oneOf":[{"type":"string","title":"Captcha Service Provider","description":"Captcha solving service provider: '2captcha', 'anti-captcha', 'capsolver'. If not set, captcha pages are skipped gracefully.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Captcha Service Provider","description":"Captcha solving service provider: '2captcha', 'anti-captcha', 'capsolver'. If not set, captcha pages are skipped gracefully.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider","typeLabel":"string | null"},"captcha_service_api_key":{"oneOf":[{"type":"string","title":"Captcha Service Api Key","description":"API key for captcha solving service. Supports secret reference: '{{SECRET.captcha_api_key}}'. Required if captcha_service_provider is set.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Captcha Service Api Key","description":"API key for captcha solving service. Supports secret reference: '{{SECRET.captcha_api_key}}'. Required if captcha_service_provider is set.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key","typeLabel":"string | null"},"detect_captcha":{"type":"boolean","title":"Detect Captcha","description":"Detect captcha challenges (Cloudflare, reCAPTCHA, hCaptcha). If detected and no solver configured, page is skipped. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.detect_captcha","typeLabel":"boolean"},"persist_cookies":{"type":"boolean","title":"Persist Cookies","description":"Persist cookies across requests within a crawl session. Useful for sites requiring authentication. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.persist_cookies","typeLabel":"boolean"},"custom_headers":{"oneOf":[{"type":"object","title":"Custom Headers","description":"Custom HTTP headers to include in all requests. Example: {'Authorization': 'Bearer token', 'X-Custom': 'value'}","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.0","typeLabel":"Custom Headers · object"},{"type":"null","title":"Custom Headers","description":"Custom HTTP headers to include in all requests. Example: {'Authorization': 'Bearer token', 'X-Custom': 'value'}","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers","typeLabel":"Custom Headers · object | null"},"youtube_mode":{"type":"string","enum":["auto","off","force"],"title":"Youtube Mode","description":"YouTube channel fast path. 'auto' (default): detect YouTube channel URLs and hand off to yt-dlp; other URLs run normal BFS. 'off': never hand off. 'force': treat every URL as a YouTube channel (useful for explicit channel buckets).","default":"auto","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_mode","typeLabel":"enum\u003cstring>"},"youtube_max_videos":{"type":"integer","maximum":5000,"minimum":1,"title":"Youtube Max Videos","description":"Max videos to pull per channel enumeration. Default: 50.","default":50,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_max_videos","typeLabel":"integer"},"youtube_backfill_months":{"type":"integer","maximum":60,"minimum":1,"title":"Youtube Backfill Months","description":"Skip videos older than this many months. Default: 6.","default":6,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_backfill_months","typeLabel":"integer"},"youtube_show_filter":{"oneOf":[{"type":"string","title":"Youtube Show Filter","description":"Optional case-insensitive regex applied to video titles. Used when a channel hosts multiple shows and you only want one.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter.oneOf.0","typeLabel":"string"},{"type":"null","title":"Youtube Show Filter","description":"Optional case-insensitive regex applied to video titles. Used when a channel hosts multiple shows and you only want one.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter","typeLabel":"string | null"},"youtube_download_videos":{"type":"boolean","title":"Youtube Download Videos","description":"If true (default), download each video file so downstream processors can read it from the `video_path` field. If false, only metadata + captions are emitted.","default":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_download_videos","typeLabel":"boolean"},"youtube_format_ladder":{"type":"string","title":"Youtube Format Ladder","description":"yt-dlp format selector. Defaults to a muxed-first ladder that avoids breaking on YouTube's DASH n-challenge when the current EJS signature solver is stale. See BUILD_LOG.md in the greenroom folder for the rationale.","default":"b[height\u003c=720]/bv*[height\u003c=720]+ba/best","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_format_ladder","typeLabel":"string"},"youtube_cookies_path":{"oneOf":[{"type":"string","title":"Youtube Cookies Path","description":"Optional path to a Netscape cookies file. Required for age-gated or members-only content.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Youtube Cookies Path","description":"Optional path to a Netscape cookies file. Required for age-gated or members-only content.","uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path","typeLabel":"string | null"},"youtube_request_sleep":{"type":"number","maximum":30,"minimum":0,"title":"Youtube Request Sleep","description":"Seconds to sleep between yt-dlp requests. Default: 1.0.","default":1,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_request_sleep","typeLabel":"number"},"delay_between_requests":{"type":"number","maximum":60,"minimum":0,"title":"Delay Between Requests","description":"Delay in seconds between consecutive requests. Useful for polite crawling and avoiding rate limits. Default: 0 (no delay).","default":0,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13.delay_between_requests","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.13","typeLabel":"WebScraperExtractorParams · object"},{"type":"object","title":"CustomPluginParams","description":"Parameters for custom plugin extractors.\n\nThis model accepts any extractor_type that doesn't match the builtin extractors,\nallowing custom plugins to define their own parameters.","required":["extractor_type"],"example":{"split_method":"time","time_split_interval":10},"properties":{"extractor_type":{"type":"string","title":"Extractor Type","description":"Custom plugin extractor type (plugin name)","isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.14.extractor_type","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.14","typeLabel":"CustomPluginParams · object"},{"type":"null","title":"Parameters","description":"Parameters for the feature extractor. Each extractor type has specific parameters. See the schema for your chosen extractor (e.g., MultimodalExtractorParams for multimodal_extractor).","example":{"split_method":"time","time_split_interval":10},"uniqueKey":"results.items.[INDEX].feature_extractor.parameters.oneOf.15","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.parameters","typeLabel":"AudioFingerprintExtractorParams · object | ColbertExtractorParams · object | ColqwenExtractorParams · object | DocumentGraphExtractorParams · object | FaceIdentityExtractorParams · object | GeminiMultifileExtractorParams · object | ImageExtractorParams · object | MultimodalExtractorParams · object | PassthroughExtractorParams · object | ScrollingTextExtractorParams · object | TextExtractorParams · object | TranscodingExtractorParams · object | UniversalExtractorParams · object | WebScraperExtractorParams · object | CustomPluginParams · object | null"},"input_mappings":{"oneOf":[{"type":"object","title":"Input Mappings","description":"Mapping from extractor input names to source field paths. Tells the extractor which source fields to process. Single value: {'image': 'thumbnail_url'} maps one blob field to one extractor input. Array value: {'files': ['image', 'spec_pdf', 'description']} maps multiple blob fields to a single extractor input as a list — used by multi-file extractors like gemini_multifile_extractor that embed all blobs of an object into one embedding.","example":{"image":"product_image","text":"title"},"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties","typeLabel":"string | string[]"},"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.0","typeLabel":"Input Mappings · object"},{"type":"array","items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"Key used in the constructed inputs payload.","isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].source_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Source of the value (payload, literal, vector).","uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].source_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].path","typeLabel":"string | null"},"override":{"oneOf":[{"title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].override.oneOf.0","typeLabel":"any"},{"type":"null","title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].override.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX]","typeLabel":"InputMapping · object"},"title":"Input Mappings","description":"Mapping from extractor input names to source field paths. Tells the extractor which source fields to process. Single value: {'image': 'thumbnail_url'} maps one blob field to one extractor input. Array value: {'files': ['image', 'spec_pdf', 'description']} maps multiple blob fields to a single extractor input as a list — used by multi-file extractors like gemini_multifile_extractor that embed all blobs of an object into one embedding.","example":{"image":"product_image","text":"title"},"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings.oneOf.1","typeLabel":"InputMapping · object[]"}],"uniqueKey":"results.items.[INDEX].feature_extractor.input_mappings","typeLabel":"Input Mappings · object | InputMapping · object[]"},"field_passthrough":{"items":{"properties":{"source_path":{"type":"string","title":"Source Path","description":"REQUIRED. Path to the source field to copy. Simple fields: Use field name directly (e.g., 'title', 'campaign_id'). Nested fields: Use dot notation (e.g., 'metadata.author', 'config.model.version'). The field must exist in the source bucket schema or upstream collection schema. Without target_path, nested fields are flattened: 'metadata.author' becomes 'author' in output.","examples":["title","campaign_id","metadata.author","config.model_version","category"],"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].source_path","typeLabel":"string"},"target_path":{"oneOf":[{"type":"string","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path","typeLabel":"string | null"},"default":{"oneOf":[{"title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default.oneOf.0","typeLabel":"any"},{"type":"null","title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default","typeLabel":"any | null"},"required":{"type":"boolean","title":"Required","description":"OPTIONAL. Whether this field MUST exist in source. If True and field missing: Raises validation error, processing fails. If False and field missing: Field omitted (or default used if provided). Use True for: Critical identifiers, required business fields. Use False for: Optional metadata, nice-to-have fields. Default: False (field is optional).","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].required","typeLabel":"boolean"}},"type":"object","required":["source_path"],"title":"FieldPassthrough","description":"Configuration for passing fields from source to output documents.\n\nSimple field passthrough: specify which fields to copy from source (bucket object\nor upstream collection document) to the output documents alongside extractor outputs.\n\nUse Cases:\n - Preserve identifiers: campaign_id, product_sku, user_id\n - Keep metadata: category, tags, author, timestamp\n - Maintain business context: priority, status, region\n - Extract nested values: metadata.author, config.model_version\n - Rename fields for cleaner schemas: doc_title → title\n\nField Selection:\n - WITHOUT field_passthrough: Only extractor outputs appear in documents\n - WITH field_passthrough: Specified fields + extractor outputs\n - WITH include_all_source_fields=True: All source fields + extractor outputs\n\nField Naming:\n - WITHOUT target_path: Output uses source name (or last component for nested)\n - \"title\" → \"title\"\n - \"metadata.author\" → \"author\"\n - WITH target_path: Output uses specified name\n - source_path=\"doc_title\", target_path=\"title\" → \"title\"\n - source_path=\"metadata.author\", target_path=\"contributor\" → \"contributor\"\n\nRequirements:\n - source_path is REQUIRED - specifies which field to copy (supports dot notation)\n - target_path is OPTIONAL - rename field in output (default: auto-derived name)\n - default is OPTIONAL - provides fallback if field missing (default: omit field)\n - required is OPTIONAL - errors if field missing (default: false, omit field)","examples":[{"description":"Simple field passthrough","required":true,"source_path":"title"},{"default":"uncategorized","description":"Field with default value","source_path":"category"},{"description":"Field renaming for cleaner schema","source_path":"doc_title","target_path":"title"},{"description":"Nested field extraction with custom name","source_path":"metadata.author","target_path":"contributor"},{"description":"Required field with renaming","required":true,"source_path":"campaign_id","target_path":"campaign"},{"default":"normal","description":"Optional field with default and renaming","required":false,"source_path":"metadata.priority","target_path":"priority"}],"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX]","typeLabel":"FieldPassthrough · object"},"type":"array","title":"Field Passthrough","description":"NOT REQUIRED. List of specific fields to pass through from source to output documents. These fields are included alongside extractor-computed features (embeddings, detections, etc.). Empty list = only extractor outputs in documents (default behavior). With entries = specified fields + extractor outputs in documents. \n\nHow It Works:\n1. During processing, fields are extracted from source object/document\n2. They appear in output documents at the root level\n3. Field filtering happens automatically (only listed fields included)\n4. Use target_path to rename fields for cleaner schemas\n\nCommon Use Cases:\n- Preserve identifiers: campaign_id, product_sku, order_id\n- Keep metadata: category, tags, author, created_at\n- Enable filtering: department, status, priority, region\n- Maintain context: title, description, source_url\n\nBehavior:\n- Works with include_all_source_fields=False (default): ONLY these fields included\n- Works with include_all_source_fields=True: These configs used for renaming/defaults\n- Fields must exist in source bucket_schema or upstream collection output_schema\n- Missing optional fields are omitted (unless default provided)\n- Missing required fields cause processing errors\n\nOutput Schema:\noutput_schema = field_passthrough fields + extractor output fields\nExample: ['title', 'category', 'text_extractor_v1_embedding']","examples":[[{"required":true,"source_path":"title"},{"required":true,"source_path":"campaign_id"}],[{"default":"uncategorized","source_path":"category"},{"source_path":"metadata.author","target_path":"author"}]],"uniqueKey":"results.items.[INDEX].feature_extractor.field_passthrough","typeLabel":"FieldPassthrough · object[]"},"include_all_source_fields":{"type":"boolean","title":"Include All Source Fields","description":"NOT REQUIRED. Whether to include ALL fields from source object/document in output. Default: False (only field_passthrough fields included). \n\nWhen False (RECOMMENDED):\n- Only fields listed in field_passthrough are included in output\n- Creates clean, predictable output schemas\n- Prevents data leakage of unwanted fields\n- Output = field_passthrough fields + extractor outputs\n\nWhen True (USE WITH CAUTION):\n- ALL source fields are included in output documents\n- field_passthrough still used for renaming/defaults/requirements\n- Can result in large documents if source has many fields\n- Can leak sensitive or unnecessary data\n- Output = all source fields + extractor outputs\n\nUse True When:\n- You want to preserve complete source data\n- Source has limited, well-defined fields\n- Downstream processing needs all context\n\nUse False When (MOST CASES):\n- You want clean, controlled output schemas\n- Source has many fields you don't need\n- You want explicit field selection\n- You're concerned about document size\n\nExamples:\nFalse: source={a,b,c,d} + passthrough=[a,b] → output={a,b,embedding}\nTrue: source={a,b,c,d} + passthrough=[a→x] → output={x,b,c,d,embedding}","default":false,"uniqueKey":"results.items.[INDEX].feature_extractor.include_all_source_fields","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","required":["feature_extractor_name","version","feature_extractor_id"],"title":"FeatureExtractorConfig","description":"REQUIRED. Single feature extractor configuration for this collection. For a transform-based collection (retriever_transform set) this is a placeholder sentinel; the retriever_transform defines the actual build. Defines: extractor name/version, input_mappings, field_passthrough, parameters. Task 9 change: ONE extractor per collection (previously supported multiple). For multiple extractors: Create multiple collections and use collection-to-collection pipelines. Use field_passthrough to include additional source fields beyond extractor outputs.","examples":[{"feature_extractor_name":"text_extractor","field_passthrough":[{"source_path":"title"}],"input_mappings":{"text":"content"},"version":"v1"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].feature_extractor","typeLabel":"FeatureExtractorConfig · object"},"source":{"properties":{"type":{"type":"string","enum":["bucket","collection","taxonomy","cluster","direct_upsert","signals","none"],"title":"SourceType","description":"REQUIRED. Type of source for this collection. 'bucket': Process objects from one or more buckets (first-stage processing). 'collection': Process documents from another collection (downstream processing). Use 'bucket' for initial data ingestion, 'collection' for decomposition trees.","examples":["bucket","collection"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source.type","typeLabel":"enum\u003cstring>"},"bucket_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source.bucket_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Bucket Ids","description":"List of bucket IDs when type='bucket'. REQUIRED when type='bucket'. NOT ALLOWED when type='collection'. Can specify one or more buckets to process. Single bucket: Use array with one element ['bkt_id']. Multiple buckets: All buckets MUST have compatible schemas. Schema compatibility validated at collection creation. Compatible schemas have: 1) Same field names, 2) Same field types, 3) Same required status. Documents will include root_bucket_id to track which bucket they came from. Use cases: multi-region data, multi-team consolidation, environment aggregation.","minItems":1,"example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source.bucket_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Bucket Ids","description":"List of bucket IDs when type='bucket'. REQUIRED when type='bucket'. NOT ALLOWED when type='collection'. Can specify one or more buckets to process. Single bucket: Use array with one element ['bkt_id']. Multiple buckets: All buckets MUST have compatible schemas. Schema compatibility validated at collection creation. Compatible schemas have: 1) Same field names, 2) Same field types, 3) Same required status. Documents will include root_bucket_id to track which bucket they came from. Use cases: multi-region data, multi-team consolidation, environment aggregation.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source.bucket_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.bucket_ids","typeLabel":"string[] | null"},"source_namespace_id":{"oneOf":[{"type":"string","title":"Source Namespace Id","description":"Namespace ID where the source buckets reside. Use this to process buckets from a different namespace within the same organization. When omitted, buckets are looked up in the current (collection's) namespace. Only valid when type='bucket'.","uniqueKey":"results.items.[INDEX].source.source_namespace_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Namespace Id","description":"Namespace ID where the source buckets reside. Use this to process buckets from a different namespace within the same organization. When omitted, buckets are looked up in the current (collection's) namespace. Only valid when type='bucket'.","uniqueKey":"results.items.[INDEX].source.source_namespace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_namespace_id","typeLabel":"string | null"},"collection_id":{"oneOf":[{"type":"string","title":"Collection Id","description":"Collection ID when type='collection' (single collection). Use this OR collection_ids (not both). REQUIRED when type='collection' and processing single collection. NOT ALLOWED when type='bucket'. The collection will process documents from this upstream collection. The upstream collection's output_schema becomes this collection's input_schema. This enables decomposition trees (multi-stage pipelines). Example: Process frames collection → create scenes collection.","example":"col_video_frames","uniqueKey":"results.items.[INDEX].source.collection_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Collection Id","description":"Collection ID when type='collection' (single collection). Use this OR collection_ids (not both). REQUIRED when type='collection' and processing single collection. NOT ALLOWED when type='bucket'. The collection will process documents from this upstream collection. The upstream collection's output_schema becomes this collection's input_schema. This enables decomposition trees (multi-stage pipelines). Example: Process frames collection → create scenes collection.","example":"col_video_frames","uniqueKey":"results.items.[INDEX].source.collection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.collection_id","typeLabel":"string | null"},"collection_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source.collection_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Collection Ids","description":"List of collection IDs when type='collection' (multiple collections). Use this OR collection_id (not both). REQUIRED when type='collection' and processing multiple collections. NOT ALLOWED when type='bucket'. Used for operations that consolidate multiple upstream collections. Example: Clustering across multiple collections → cluster output collection. All collections must have compatible schemas for consolidation operations.","minItems":1,"example":["col_us_products","col_eu_products"],"uniqueKey":"results.items.[INDEX].source.collection_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Collection Ids","description":"List of collection IDs when type='collection' (multiple collections). Use this OR collection_id (not both). REQUIRED when type='collection' and processing multiple collections. NOT ALLOWED when type='bucket'. Used for operations that consolidate multiple upstream collections. Example: Clustering across multiple collections → cluster output collection. All collections must have compatible schemas for consolidation operations.","example":["col_us_products","col_eu_products"],"uniqueKey":"results.items.[INDEX].source.collection_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.collection_ids","typeLabel":"string[] | null"},"inherited_bucket_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source.inherited_bucket_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Inherited Bucket Ids","description":"List of original bucket IDs that source collections originated from. OPTIONAL. Only used when type='collection'. Tracks the complete lineage chain: buckets → collections → derived collections. Extracted from upstream collection metadata at collection creation time. Enables tracing derived collections (like cluster outputs) back to original data sources. Example: Cluster output collection inherits bucket IDs from its source collections. Format: List of bucket IDs with 'bkt_' prefix.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source.inherited_bucket_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Inherited Bucket Ids","description":"List of original bucket IDs that source collections originated from. OPTIONAL. Only used when type='collection'. Tracks the complete lineage chain: buckets → collections → derived collections. Extracted from upstream collection metadata at collection creation time. Enables tracing derived collections (like cluster outputs) back to original data sources. Example: Cluster output collection inherits bucket IDs from its source collections. Format: List of bucket IDs with 'bkt_' prefix.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source.inherited_bucket_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.inherited_bucket_ids","typeLabel":"string[] | null"},"source_filters":{"oneOf":[{"type":"object","title":"SourceFilters","description":"Optional filters to apply to source data. When specified, only objects/documents matching these filters will be processed by this collection. Filters are evaluated at batch creation time. Uses same LogicalOperator model as list APIs for consistency.","example":{"filters":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]}},"properties":{"filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Optional logical filters to apply to source data. Uses LogicalOperator model with AND/OR/NOT support. When specified, only objects/documents matching these filters will be processed by this collection. When null, all source data is processed (no filtering). Filters are consistent across all batch runs for this collection.","example":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]},"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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.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":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.case_sensitive.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0.case_sensitive","typeLabel":"boolean | null"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.0","typeLabel":"LogicalOperator · object"},{"type":"null","description":"Optional logical filters to apply to source data. Uses LogicalOperator model with AND/OR/NOT support. When specified, only objects/documents matching these filters will be processed by this collection. When null, all source data is processed (no filtering). Filters are consistent across all batch runs for this collection.","example":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0.filters","typeLabel":"LogicalOperator · object | null"}},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.0","typeLabel":"SourceFilters · object"},{"type":"null","description":"Optional filters to apply to source data. When specified, only objects/documents matching these filters will be processed by this collection. Filters are evaluated at batch creation time. Uses same LogicalOperator model as list APIs for consistency.","example":{"filters":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]}},"uniqueKey":"results.items.[INDEX].source.source_filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.source_filters","typeLabel":"SourceFilters · object | null"},"field_map":{"oneOf":[{"type":"object","title":"Field Map","description":"Optional per-source field selection for multi-source collections (multiple bucket_ids or collection_ids, possibly with DIFFERENT schemas). Maps each source id (a bucket_id or collection_id) to a list of FieldPassthrough entries choosing which of THAT source's fields land in the merged collection, and where (source_path -> target_path). OMITTED SOURCE: a source declared in bucket_ids/collection_ids but absent from field_map passes ALL of its fields through unchanged — field_map is a narrowing, not a required allowlist. TARGET-PATH COLLISION: if two sources (or two entries) map fields to the same target_path, collection creation fails with 422 naming the colliding target_path and the source ids. No silent first/last-wins — rename one target_path to resolve.","example":{"bkt_mosaic":[{"source_path":"headline","target_path":"title"},{"required":true,"source_path":"take","target_path":"take"}],"col_iconik_legacy":[{"default":"untitled","source_path":"name","target_path":"display_name"}]},"additionalProperties":{"items":{"properties":{"source_path":{"type":"string","title":"Source Path","description":"REQUIRED. Path to the source field to copy. Simple fields: Use field name directly (e.g., 'title', 'campaign_id'). Nested fields: Use dot notation (e.g., 'metadata.author', 'config.model.version'). The field must exist in the source bucket schema or upstream collection schema. Without target_path, nested fields are flattened: 'metadata.author' becomes 'author' in output.","examples":["title","campaign_id","metadata.author","config.model_version","category"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].source_path","typeLabel":"string"},"target_path":{"oneOf":[{"type":"string","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path","typeLabel":"string | null"},"default":{"oneOf":[{"title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].default.oneOf.0","typeLabel":"any"},{"type":"null","title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].default","typeLabel":"any | null"},"required":{"type":"boolean","title":"Required","description":"OPTIONAL. Whether this field MUST exist in source. If True and field missing: Raises validation error, processing fails. If False and field missing: Field omitted (or default used if provided). Use True for: Critical identifiers, required business fields. Use False for: Optional metadata, nice-to-have fields. Default: False (field is optional).","default":false,"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX].required","typeLabel":"boolean"}},"type":"object","required":["source_path"],"title":"FieldPassthrough","description":"Configuration for passing fields from source to output documents.\n\nSimple field passthrough: specify which fields to copy from source (bucket object\nor upstream collection document) to the output documents alongside extractor outputs.\n\nUse Cases:\n - Preserve identifiers: campaign_id, product_sku, user_id\n - Keep metadata: category, tags, author, timestamp\n - Maintain business context: priority, status, region\n - Extract nested values: metadata.author, config.model_version\n - Rename fields for cleaner schemas: doc_title → title\n\nField Selection:\n - WITHOUT field_passthrough: Only extractor outputs appear in documents\n - WITH field_passthrough: Specified fields + extractor outputs\n - WITH include_all_source_fields=True: All source fields + extractor outputs\n\nField Naming:\n - WITHOUT target_path: Output uses source name (or last component for nested)\n - \"title\" → \"title\"\n - \"metadata.author\" → \"author\"\n - WITH target_path: Output uses specified name\n - source_path=\"doc_title\", target_path=\"title\" → \"title\"\n - source_path=\"metadata.author\", target_path=\"contributor\" → \"contributor\"\n\nRequirements:\n - source_path is REQUIRED - specifies which field to copy (supports dot notation)\n - target_path is OPTIONAL - rename field in output (default: auto-derived name)\n - default is OPTIONAL - provides fallback if field missing (default: omit field)\n - required is OPTIONAL - errors if field missing (default: false, omit field)","examples":[{"description":"Simple field passthrough","required":true,"source_path":"title"},{"default":"uncategorized","description":"Field with default value","source_path":"category"},{"description":"Field renaming for cleaner schema","source_path":"doc_title","target_path":"title"},{"description":"Nested field extraction with custom name","source_path":"metadata.author","target_path":"contributor"},{"description":"Required field with renaming","required":true,"source_path":"campaign_id","target_path":"campaign"},{"default":"normal","description":"Optional field with default and renaming","required":false,"source_path":"metadata.priority","target_path":"priority"}],"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"FieldPassthrough · object"},"type":"array","uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0.additionalProperties","typeLabel":"FieldPassthrough · object[]"},"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.0","typeLabel":"Field Map · object"},{"type":"null","title":"Field Map","description":"Optional per-source field selection for multi-source collections (multiple bucket_ids or collection_ids, possibly with DIFFERENT schemas). Maps each source id (a bucket_id or collection_id) to a list of FieldPassthrough entries choosing which of THAT source's fields land in the merged collection, and where (source_path -> target_path). OMITTED SOURCE: a source declared in bucket_ids/collection_ids but absent from field_map passes ALL of its fields through unchanged — field_map is a narrowing, not a required allowlist. TARGET-PATH COLLISION: if two sources (or two entries) map fields to the same target_path, collection creation fails with 422 naming the colliding target_path and the source ids. No silent first/last-wins — rename one target_path to resolve.","example":{"bkt_mosaic":[{"source_path":"headline","target_path":"title"},{"required":true,"source_path":"take","target_path":"take"}],"col_iconik_legacy":[{"default":"untitled","source_path":"name","target_path":"display_name"}]},"uniqueKey":"results.items.[INDEX].source.field_map.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source.field_map","typeLabel":"Field Map · object | null"}},"type":"object","required":["type"],"title":"SourceConfig","description":"REQUIRED. Source configuration defining where data comes from. Type 'bucket': Process objects from one or more buckets (tier 1). Type 'collection': Process documents from upstream collection(s) (tier 2+). For multi-bucket sources, all buckets must have compatible schemas. For multi-collection sources, all collections must have compatible schemas. Determines input_schema and enables decomposition trees.","examples":[{"bucket_ids":["bkt_articles"],"type":"bucket"},{"bucket_ids":["bkt_us_products","bkt_eu_products"],"type":"bucket"},{"collection_id":"col_video_frames","type":"collection"},{"collection_ids":["col_products_2023","col_products_2024"],"type":"collection"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source","typeLabel":"SourceConfig · object"},"collection_id":{"type":"string","title":"Collection Id","description":"NOT REQUIRED (auto-generated). Unique identifier for this collection. Used for: API paths, document queries, pipeline references. Format: 'col_' prefix + 10 random alphanumeric characters. Stable after creation - use for all collection references.","examples":["col_a1b2c3d4e5","col_xyz789abc","col_video_frames"],"uniqueKey":"results.items.[INDEX].collection_id","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"NOT REQUIRED. Human-readable description of the collection's purpose. Use for: Documentation, team communication, UI display. Common pattern: Describe what the collection contains and what processing is applied.","example":"Video frames extracted at 1 FPS with CLIP embeddings","uniqueKey":"results.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"NOT REQUIRED. Human-readable description of the collection's purpose. Use for: Documentation, team communication, UI display. Common pattern: Describe what the collection contains and what processing is applied.","example":"Video frames extracted at 1 FPS with CLIP embeddings","uniqueKey":"results.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].description","typeLabel":"string | null"},"input_schema":{"oneOf":[{"type":"object","title":"BucketSchema","description":"Auto-computed from source. Input schema defining fields available to the feature extractor. Source: bucket.bucket_schema (if source.type='bucket') OR upstream_collection.output_schema (if source.type='collection'). Determines: Which fields can be used in input_mappings and field_passthrough. This is the 'left side' of the transformation - what data goes IN. Format: BucketSchema with properties dict. Use for: Validating input_mappings, configuring field_passthrough.","required":["properties"],"example":{"properties":{"title":{"type":"string"},"content":{"type":"text"}}},"properties":{"properties":{"additionalProperties":{"properties":{"type":{"type":"string","enum":["string","number","integer","float","boolean","object","array","date","datetime","text","image","audio","video","pdf","excel"],"title":"BucketSchemaFieldType","description":"Supported data types for bucket schema fields.\n\nTypes fall into two categories:\n\n1. **Metadata Types** (JSON types):\n - Stored as object metadata\n - Standard JSON-compatible types\n - Not processed by extractors (unless explicitly mapped)\n - Examples: string, number, boolean, date\n\n2. **File Types** (blobs):\n - Stored as files/blobs\n - Processed by extractors\n - Require file content (URL or base64)\n - Examples: text, image, video, pdf\n\n**GIF Special Handling**:\n GIF files can be declared as either IMAGE or VIDEO type:\n\n - As IMAGE: GIF is embedded as a single static image (first frame)\n - As VIDEO: GIF is decomposed frame-by-frame with embeddings per frame\n\n The multimodal extractor detects GIFs via MIME type (image/gif) and routes\n them based on your schema declaration. Use VIDEO for animated GIFs where\n frame-level search is needed, IMAGE for static/thumbnail use cases.\n\nNOTE: For retriever input schemas that need to accept document references\n(e.g., \"find similar documents\"), use RetrieverInputSchemaFieldType instead,\nwhich includes all bucket types plus document_reference.","isRequired":true,"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.type","typeLabel":"enum\u003cstring>"},"default":{"oneOf":[{"title":"Default"},{"type":"null","title":"Default","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.default","typeLabel":"null"},"items":{"oneOf":[{},{"type":"null","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.\\items.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.\\items","typeLabel":"null"},"properties":{"oneOf":[{"type":"object","title":"Properties","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.properties.oneOf.0","typeLabel":"Properties · object"},{"type":"null","title":"Properties","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.properties.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.properties","typeLabel":"Properties · object | null"},"examples":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.examples.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.examples.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.examples","typeLabel":"any[] | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.description","typeLabel":"string | null"},"enum":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.enum.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Enum","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.enum.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Enum","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.enum.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.enum","typeLabel":"any[] | null"},"required":{"oneOf":[{"type":"boolean","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.required.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.required.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties.required","typeLabel":"boolean | null"}},"additionalProperties":true,"type":"object","required":["type"],"title":"BucketSchemaField","description":"Schema field definition for bucket objects.","uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties.additionalProperties","typeLabel":"BucketSchemaField · object"},"type":"object","title":"Properties","description":"REQUIRED. Map of field names to their type definitions. Each field must have a 'type' from the supported types: metadata types (string, number, integer, float, boolean, object, array, date, datetime) or file/blob types (text, image, audio, video, pdf, excel). NOTE: Use Mixpeek types, NOT JSON Schema types — e.g. use 'string' not 'keyword', 'text' for text blobs, 'image' for image blobs. Example: {\"title\": {\"type\": \"string\"}, \"photo\": {\"type\": \"image\"}}","isRequired":true,"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0.properties","typeLabel":"Properties · object"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].input_schema.oneOf.0","typeLabel":"BucketSchema · object"},{"type":"null","description":"Auto-computed from source. Input schema defining fields available to the feature extractor. Source: bucket.bucket_schema (if source.type='bucket') OR upstream_collection.output_schema (if source.type='collection'). Determines: Which fields can be used in input_mappings and field_passthrough. This is the 'left side' of the transformation - what data goes IN. Format: BucketSchema with properties dict. Use for: Validating input_mappings, configuring field_passthrough.","example":{"properties":{"title":{"type":"string"},"content":{"type":"text"}}},"uniqueKey":"results.items.[INDEX].input_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].input_schema","typeLabel":"BucketSchema · object | null"},"output_schema":{"oneOf":[{"type":"object","title":"BucketSchema","description":"Auto-computed at creation. Output schema defining fields in final documents. Computed as: field_passthrough fields + extractor output fields (deterministic). Known IMMEDIATELY when collection is created - no waiting for documents! This is the 'right side' of the transformation - what data comes OUT. Use for: Understanding document structure, building queries, schema validation. Example: {title (passthrough), embedding (extractor output)} = output_schema.","required":["properties"],"example":{"properties":{"title":{"type":"string"},"text_extractor_v1_embedding":{"type":"array"}}},"properties":{"properties":{"additionalProperties":{"properties":{"type":{"type":"string","enum":["string","number","integer","float","boolean","object","array","date","datetime","text","image","audio","video","pdf","excel"],"title":"BucketSchemaFieldType","description":"Supported data types for bucket schema fields.\n\nTypes fall into two categories:\n\n1. **Metadata Types** (JSON types):\n - Stored as object metadata\n - Standard JSON-compatible types\n - Not processed by extractors (unless explicitly mapped)\n - Examples: string, number, boolean, date\n\n2. **File Types** (blobs):\n - Stored as files/blobs\n - Processed by extractors\n - Require file content (URL or base64)\n - Examples: text, image, video, pdf\n\n**GIF Special Handling**:\n GIF files can be declared as either IMAGE or VIDEO type:\n\n - As IMAGE: GIF is embedded as a single static image (first frame)\n - As VIDEO: GIF is decomposed frame-by-frame with embeddings per frame\n\n The multimodal extractor detects GIFs via MIME type (image/gif) and routes\n them based on your schema declaration. Use VIDEO for animated GIFs where\n frame-level search is needed, IMAGE for static/thumbnail use cases.\n\nNOTE: For retriever input schemas that need to accept document references\n(e.g., \"find similar documents\"), use RetrieverInputSchemaFieldType instead,\nwhich includes all bucket types plus document_reference.","isRequired":true,"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.type","typeLabel":"enum\u003cstring>"},"default":{"oneOf":[{"title":"Default"},{"type":"null","title":"Default","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.default","typeLabel":"null"},"items":{"oneOf":[{},{"type":"null","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.\\items.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.\\items","typeLabel":"null"},"properties":{"oneOf":[{"type":"object","title":"Properties","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.properties.oneOf.0","typeLabel":"Properties · object"},{"type":"null","title":"Properties","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.properties.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.properties","typeLabel":"Properties · object | null"},"examples":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.examples.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.examples.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.examples","typeLabel":"any[] | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.description","typeLabel":"string | null"},"enum":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.enum.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Enum","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.enum.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Enum","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.enum.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.enum","typeLabel":"any[] | null"},"required":{"oneOf":[{"type":"boolean","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.required.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.required.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties.required","typeLabel":"boolean | null"}},"additionalProperties":true,"type":"object","required":["type"],"title":"BucketSchemaField","description":"Schema field definition for bucket objects.","uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties.additionalProperties","typeLabel":"BucketSchemaField · object"},"type":"object","title":"Properties","description":"REQUIRED. Map of field names to their type definitions. Each field must have a 'type' from the supported types: metadata types (string, number, integer, float, boolean, object, array, date, datetime) or file/blob types (text, image, audio, video, pdf, excel). NOTE: Use Mixpeek types, NOT JSON Schema types — e.g. use 'string' not 'keyword', 'text' for text blobs, 'image' for image blobs. Example: {\"title\": {\"type\": \"string\"}, \"photo\": {\"type\": \"image\"}}","isRequired":true,"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0.properties","typeLabel":"Properties · object"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].output_schema.oneOf.0","typeLabel":"BucketSchema · object"},{"type":"null","description":"Auto-computed at creation. Output schema defining fields in final documents. Computed as: field_passthrough fields + extractor output fields (deterministic). Known IMMEDIATELY when collection is created - no waiting for documents! This is the 'right side' of the transformation - what data comes OUT. Use for: Understanding document structure, building queries, schema validation. Example: {title (passthrough), embedding (extractor output)} = output_schema.","example":{"properties":{"title":{"type":"string"},"text_extractor_v1_embedding":{"type":"array"}}},"uniqueKey":"results.items.[INDEX].output_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].output_schema","typeLabel":"BucketSchema · object | null"},"source_bucket_schemas":{"oneOf":[{"type":"object","title":"Source Bucket Schemas","description":"NOT REQUIRED (auto-computed). Snapshot of bucket schemas at collection creation. Only populated for multi-bucket collections (source.type='bucket' with multiple bucket_ids). Key: bucket_id, Value: BucketSchema at time of collection creation. Used for: Schema compatibility validation, document lineage, debugging. Schema snapshot is immutable - bucket schema changes after collection creation do not affect this. Single-bucket collections may omit this field (schema in input_schema is sufficient).","example":null,"additionalProperties":{"properties":{"properties":{"additionalProperties":{"properties":{"type":{"type":"string","enum":["string","number","integer","float","boolean","object","array","date","datetime","text","image","audio","video","pdf","excel"],"title":"BucketSchemaFieldType","description":"Supported data types for bucket schema fields.\n\nTypes fall into two categories:\n\n1. **Metadata Types** (JSON types):\n - Stored as object metadata\n - Standard JSON-compatible types\n - Not processed by extractors (unless explicitly mapped)\n - Examples: string, number, boolean, date\n\n2. **File Types** (blobs):\n - Stored as files/blobs\n - Processed by extractors\n - Require file content (URL or base64)\n - Examples: text, image, video, pdf\n\n**GIF Special Handling**:\n GIF files can be declared as either IMAGE or VIDEO type:\n\n - As IMAGE: GIF is embedded as a single static image (first frame)\n - As VIDEO: GIF is decomposed frame-by-frame with embeddings per frame\n\n The multimodal extractor detects GIFs via MIME type (image/gif) and routes\n them based on your schema declaration. Use VIDEO for animated GIFs where\n frame-level search is needed, IMAGE for static/thumbnail use cases.\n\nNOTE: For retriever input schemas that need to accept document references\n(e.g., \"find similar documents\"), use RetrieverInputSchemaFieldType instead,\nwhich includes all bucket types plus document_reference.","isRequired":true,"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.type","typeLabel":"enum\u003cstring>"},"default":{"oneOf":[{"title":"Default"},{"type":"null","title":"Default","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.default","typeLabel":"null"},"items":{"oneOf":[{},{"type":"null","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.\\items.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.\\items","typeLabel":"null"},"properties":{"oneOf":[{"type":"object","title":"Properties","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.properties.oneOf.0","typeLabel":"Properties · object"},{"type":"null","title":"Properties","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.properties.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.properties","typeLabel":"Properties · object | null"},"examples":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.examples.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.examples.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.examples","typeLabel":"any[] | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.description","typeLabel":"string | null"},"enum":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.enum.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Enum","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.enum.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Enum","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.enum.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.enum","typeLabel":"any[] | null"},"required":{"oneOf":[{"type":"boolean","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.required.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.required.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties.required","typeLabel":"boolean | null"}},"additionalProperties":true,"type":"object","required":["type"],"title":"BucketSchemaField","description":"Schema field definition for bucket objects.","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties.additionalProperties","typeLabel":"BucketSchemaField · object"},"type":"object","title":"Properties","description":"REQUIRED. Map of field names to their type definitions. Each field must have a 'type' from the supported types: metadata types (string, number, integer, float, boolean, object, array, date, datetime) or file/blob types (text, image, audio, video, pdf, excel). NOTE: Use Mixpeek types, NOT JSON Schema types — e.g. use 'string' not 'keyword', 'text' for text blobs, 'image' for image blobs. Example: {\"title\": {\"type\": \"string\"}, \"photo\": {\"type\": \"image\"}}","isRequired":true,"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties.properties","typeLabel":"Properties · object"}},"additionalProperties":true,"type":"object","required":["properties"],"title":"BucketSchema","description":"Schema definition for bucket objects.\n\nIMPORTANT: The bucket schema defines what fields your bucket objects will have.\nThis schema is REQUIRED if you want to:\n1. Create collections that use input_mappings to process your bucket data\n2. Validate object structure before ingestion\n3. Enable type-safe data pipelines\n\nThe schema defines the custom fields that will be used in:\n- Blob properties (e.g., \"content\", \"thumbnail\", \"transcript\")\n- Object metadata structure\n- Blob data structures\n\nExample workflow:\n1. Create bucket WITH schema defining your data structure\n2. Upload objects that conform to that schema\n3. Create collections that map schema fields to feature extractors\n\nWithout a bucket_schema, collections cannot use input_mappings.","uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0.additionalProperties","typeLabel":"BucketSchema · object"},"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.0","typeLabel":"Source Bucket Schemas · object"},{"type":"null","title":"Source Bucket Schemas","description":"NOT REQUIRED (auto-computed). Snapshot of bucket schemas at collection creation. Only populated for multi-bucket collections (source.type='bucket' with multiple bucket_ids). Key: bucket_id, Value: BucketSchema at time of collection creation. Used for: Schema compatibility validation, document lineage, debugging. Schema snapshot is immutable - bucket schema changes after collection creation do not affect this. Single-bucket collections may omit this field (schema in input_schema is sufficient).","example":null,"uniqueKey":"results.items.[INDEX].source_bucket_schemas.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_bucket_schemas","typeLabel":"Source Bucket Schemas · object | null"},"source_lineage":{"items":{"properties":{"source_config":{"properties":{"type":{"type":"string","enum":["bucket","collection","taxonomy","cluster","direct_upsert","signals","none"],"title":"SourceType","description":"REQUIRED. Type of source for this collection. 'bucket': Process objects from one or more buckets (first-stage processing). 'collection': Process documents from another collection (downstream processing). Use 'bucket' for initial data ingestion, 'collection' for decomposition trees.","examples":["bucket","collection"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.type","typeLabel":"enum\u003cstring>"},"bucket_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.bucket_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Bucket Ids","description":"List of bucket IDs when type='bucket'. REQUIRED when type='bucket'. NOT ALLOWED when type='collection'. Can specify one or more buckets to process. Single bucket: Use array with one element ['bkt_id']. Multiple buckets: All buckets MUST have compatible schemas. Schema compatibility validated at collection creation. Compatible schemas have: 1) Same field names, 2) Same field types, 3) Same required status. Documents will include root_bucket_id to track which bucket they came from. Use cases: multi-region data, multi-team consolidation, environment aggregation.","minItems":1,"example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.bucket_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Bucket Ids","description":"List of bucket IDs when type='bucket'. REQUIRED when type='bucket'. NOT ALLOWED when type='collection'. Can specify one or more buckets to process. Single bucket: Use array with one element ['bkt_id']. Multiple buckets: All buckets MUST have compatible schemas. Schema compatibility validated at collection creation. Compatible schemas have: 1) Same field names, 2) Same field types, 3) Same required status. Documents will include root_bucket_id to track which bucket they came from. Use cases: multi-region data, multi-team consolidation, environment aggregation.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.bucket_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.bucket_ids","typeLabel":"string[] | null"},"source_namespace_id":{"oneOf":[{"type":"string","title":"Source Namespace Id","description":"Namespace ID where the source buckets reside. Use this to process buckets from a different namespace within the same organization. When omitted, buckets are looked up in the current (collection's) namespace. Only valid when type='bucket'.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_namespace_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Namespace Id","description":"Namespace ID where the source buckets reside. Use this to process buckets from a different namespace within the same organization. When omitted, buckets are looked up in the current (collection's) namespace. Only valid when type='bucket'.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_namespace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_namespace_id","typeLabel":"string | null"},"collection_id":{"oneOf":[{"type":"string","title":"Collection Id","description":"Collection ID when type='collection' (single collection). Use this OR collection_ids (not both). REQUIRED when type='collection' and processing single collection. NOT ALLOWED when type='bucket'. The collection will process documents from this upstream collection. The upstream collection's output_schema becomes this collection's input_schema. This enables decomposition trees (multi-stage pipelines). Example: Process frames collection → create scenes collection.","example":"col_video_frames","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Collection Id","description":"Collection ID when type='collection' (single collection). Use this OR collection_ids (not both). REQUIRED when type='collection' and processing single collection. NOT ALLOWED when type='bucket'. The collection will process documents from this upstream collection. The upstream collection's output_schema becomes this collection's input_schema. This enables decomposition trees (multi-stage pipelines). Example: Process frames collection → create scenes collection.","example":"col_video_frames","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_id","typeLabel":"string | null"},"collection_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Collection Ids","description":"List of collection IDs when type='collection' (multiple collections). Use this OR collection_id (not both). REQUIRED when type='collection' and processing multiple collections. NOT ALLOWED when type='bucket'. Used for operations that consolidate multiple upstream collections. Example: Clustering across multiple collections → cluster output collection. All collections must have compatible schemas for consolidation operations.","minItems":1,"example":["col_us_products","col_eu_products"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Collection Ids","description":"List of collection IDs when type='collection' (multiple collections). Use this OR collection_id (not both). REQUIRED when type='collection' and processing multiple collections. NOT ALLOWED when type='bucket'. Used for operations that consolidate multiple upstream collections. Example: Clustering across multiple collections → cluster output collection. All collections must have compatible schemas for consolidation operations.","example":["col_us_products","col_eu_products"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.collection_ids","typeLabel":"string[] | null"},"inherited_bucket_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.inherited_bucket_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Inherited Bucket Ids","description":"List of original bucket IDs that source collections originated from. OPTIONAL. Only used when type='collection'. Tracks the complete lineage chain: buckets → collections → derived collections. Extracted from upstream collection metadata at collection creation time. Enables tracing derived collections (like cluster outputs) back to original data sources. Example: Cluster output collection inherits bucket IDs from its source collections. Format: List of bucket IDs with 'bkt_' prefix.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.inherited_bucket_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Inherited Bucket Ids","description":"List of original bucket IDs that source collections originated from. OPTIONAL. Only used when type='collection'. Tracks the complete lineage chain: buckets → collections → derived collections. Extracted from upstream collection metadata at collection creation time. Enables tracing derived collections (like cluster outputs) back to original data sources. Example: Cluster output collection inherits bucket IDs from its source collections. Format: List of bucket IDs with 'bkt_' prefix.","example":["bkt_marketing_videos"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.inherited_bucket_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.inherited_bucket_ids","typeLabel":"string[] | null"},"source_filters":{"oneOf":[{"type":"object","title":"SourceFilters","description":"Optional filters to apply to source data. When specified, only objects/documents matching these filters will be processed by this collection. Filters are evaluated at batch creation time. Uses same LogicalOperator model as list APIs for consistency.","example":{"filters":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]}},"properties":{"filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Optional logical filters to apply to source data. Uses LogicalOperator model with AND/OR/NOT support. When specified, only objects/documents matching these filters will be processed by this collection. When null, all source data is processed (no filtering). Filters are consistent across all batch runs for this collection.","example":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]},"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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.AND.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.OR.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.NOT.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.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":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.case_sensitive.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0.case_sensitive","typeLabel":"boolean | null"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.0","typeLabel":"LogicalOperator · object"},{"type":"null","description":"Optional logical filters to apply to source data. Uses LogicalOperator model with AND/OR/NOT support. When specified, only objects/documents matching these filters will be processed by this collection. When null, all source data is processed (no filtering). Filters are consistent across all batch runs for this collection.","example":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0.filters","typeLabel":"LogicalOperator · object | null"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.0","typeLabel":"SourceFilters · object"},{"type":"null","description":"Optional filters to apply to source data. When specified, only objects/documents matching these filters will be processed by this collection. Filters are evaluated at batch creation time. Uses same LogicalOperator model as list APIs for consistency.","example":{"filters":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.source_filters","typeLabel":"SourceFilters · object | null"},"field_map":{"oneOf":[{"type":"object","title":"Field Map","description":"Optional per-source field selection for multi-source collections (multiple bucket_ids or collection_ids, possibly with DIFFERENT schemas). Maps each source id (a bucket_id or collection_id) to a list of FieldPassthrough entries choosing which of THAT source's fields land in the merged collection, and where (source_path -> target_path). OMITTED SOURCE: a source declared in bucket_ids/collection_ids but absent from field_map passes ALL of its fields through unchanged — field_map is a narrowing, not a required allowlist. TARGET-PATH COLLISION: if two sources (or two entries) map fields to the same target_path, collection creation fails with 422 naming the colliding target_path and the source ids. No silent first/last-wins — rename one target_path to resolve.","example":{"bkt_mosaic":[{"source_path":"headline","target_path":"title"},{"required":true,"source_path":"take","target_path":"take"}],"col_iconik_legacy":[{"default":"untitled","source_path":"name","target_path":"display_name"}]},"additionalProperties":{"items":{"properties":{"source_path":{"type":"string","title":"Source Path","description":"REQUIRED. Path to the source field to copy. Simple fields: Use field name directly (e.g., 'title', 'campaign_id'). Nested fields: Use dot notation (e.g., 'metadata.author', 'config.model.version'). The field must exist in the source bucket schema or upstream collection schema. Without target_path, nested fields are flattened: 'metadata.author' becomes 'author' in output.","examples":["title","campaign_id","metadata.author","config.model_version","category"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].source_path","typeLabel":"string"},"target_path":{"oneOf":[{"type":"string","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].target_path","typeLabel":"string | null"},"default":{"oneOf":[{"title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].default.oneOf.0","typeLabel":"any"},{"type":"null","title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].default","typeLabel":"any | null"},"required":{"type":"boolean","title":"Required","description":"OPTIONAL. Whether this field MUST exist in source. If True and field missing: Raises validation error, processing fails. If False and field missing: Field omitted (or default used if provided). Use True for: Critical identifiers, required business fields. Use False for: Optional metadata, nice-to-have fields. Default: False (field is optional).","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX].required","typeLabel":"boolean"}},"type":"object","required":["source_path"],"title":"FieldPassthrough","description":"Configuration for passing fields from source to output documents.\n\nSimple field passthrough: specify which fields to copy from source (bucket object\nor upstream collection document) to the output documents alongside extractor outputs.\n\nUse Cases:\n - Preserve identifiers: campaign_id, product_sku, user_id\n - Keep metadata: category, tags, author, timestamp\n - Maintain business context: priority, status, region\n - Extract nested values: metadata.author, config.model_version\n - Rename fields for cleaner schemas: doc_title → title\n\nField Selection:\n - WITHOUT field_passthrough: Only extractor outputs appear in documents\n - WITH field_passthrough: Specified fields + extractor outputs\n - WITH include_all_source_fields=True: All source fields + extractor outputs\n\nField Naming:\n - WITHOUT target_path: Output uses source name (or last component for nested)\n - \"title\" → \"title\"\n - \"metadata.author\" → \"author\"\n - WITH target_path: Output uses specified name\n - source_path=\"doc_title\", target_path=\"title\" → \"title\"\n - source_path=\"metadata.author\", target_path=\"contributor\" → \"contributor\"\n\nRequirements:\n - source_path is REQUIRED - specifies which field to copy (supports dot notation)\n - target_path is OPTIONAL - rename field in output (default: auto-derived name)\n - default is OPTIONAL - provides fallback if field missing (default: omit field)\n - required is OPTIONAL - errors if field missing (default: false, omit field)","examples":[{"description":"Simple field passthrough","required":true,"source_path":"title"},{"default":"uncategorized","description":"Field with default value","source_path":"category"},{"description":"Field renaming for cleaner schema","source_path":"doc_title","target_path":"title"},{"description":"Nested field extraction with custom name","source_path":"metadata.author","target_path":"contributor"},{"description":"Required field with renaming","required":true,"source_path":"campaign_id","target_path":"campaign"},{"default":"normal","description":"Optional field with default and renaming","required":false,"source_path":"metadata.priority","target_path":"priority"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"FieldPassthrough · object"},"type":"array","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0.additionalProperties","typeLabel":"FieldPassthrough · object[]"},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.0","typeLabel":"Field Map · object"},{"type":"null","title":"Field Map","description":"Optional per-source field selection for multi-source collections (multiple bucket_ids or collection_ids, possibly with DIFFERENT schemas). Maps each source id (a bucket_id or collection_id) to a list of FieldPassthrough entries choosing which of THAT source's fields land in the merged collection, and where (source_path -> target_path). OMITTED SOURCE: a source declared in bucket_ids/collection_ids but absent from field_map passes ALL of its fields through unchanged — field_map is a narrowing, not a required allowlist. TARGET-PATH COLLISION: if two sources (or two entries) map fields to the same target_path, collection creation fails with 422 naming the colliding target_path and the source ids. No silent first/last-wins — rename one target_path to resolve.","example":{"bkt_mosaic":[{"source_path":"headline","target_path":"title"},{"required":true,"source_path":"take","target_path":"take"}],"col_iconik_legacy":[{"default":"untitled","source_path":"name","target_path":"display_name"}]},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config.field_map","typeLabel":"Field Map · object | null"}},"type":"object","required":["type"],"title":"SourceConfig","description":"Configuration of the source for this lineage entry","examples":[{"bucket_ids":["bkt_marketing_videos"],"description":"Single bucket source","type":"bucket"},{"bucket_ids":["bkt_marketing_ads"],"description":"Bucket source with video-only filter","source_filters":{"filters":{"AND":[{"field":"blobs.type","operator":"eq","value":"video"}]}},"type":"bucket"},{"bucket_ids":["bkt_us_products","bkt_eu_products","bkt_asia_products"],"description":"Multi-bucket source (region consolidation)","type":"bucket"},{"bucket_ids":["bkt_us_ads","bkt_eu_ads","bkt_asia_ads"],"description":"Multi-bucket source with brand filter","source_filters":{"filters":{"OR":[{"field":"brand_name","operator":"in","value":["Acme","TechCo"]},{"field":"category","operator":"eq","value":"premium"}]}},"type":"bucket"},{"collection_id":"col_video_frames","description":"Collection source (decomposition tree)","type":"collection"},{"collection_id":"col_raw_frames","description":"Collection source with active documents only","source_filters":{"filters":{"AND":[{"field":"__fully_enriched","operator":"eq","value":true},{"field":"quality_score","operator":"gte","value":0.8}]}},"type":"collection"},{"collection_ids":["col_us_products","col_eu_products","col_asia_products"],"description":"Multi-collection source (cluster output)","type":"collection"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].source_config","typeLabel":"SourceConfig · object"},"feature_extractor":{"properties":{"feature_extractor_name":{"type":"string","title":"Feature Extractor Name","description":"Name of the feature extractor","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.feature_extractor_name","typeLabel":"string"},"version":{"type":"string","title":"Version","description":"Version of the feature extractor (e.g., 'v1', 'v2')","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.version","typeLabel":"string"},"feature_extractor_id":{"type":"string","title":"Feature Extractor Id","description":"Construct unique identifier for the feature extractor instance (name + version).","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.feature_extractor_id","typeLabel":"string"},"params":{"oneOf":[{"type":"object","title":"Params","description":"Optional extractor parameters that affect vector index configuration. Parameters set here are locked at namespace creation and determine vector dimensions in the vector store. Collections using this extractor must use compatible params. Example: {'model': 'siglip_base'}","additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.params.oneOf.0","typeLabel":"Params · object"},{"type":"null","title":"Params","description":"Optional extractor parameters that affect vector index configuration. Parameters set here are locked at namespace creation and determine vector dimensions in the vector store. Collections using this extractor must use compatible params. Example: {'model': 'siglip_base'}","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.params.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.params","typeLabel":"Params · object | null"},"parameters":{"oneOf":[{"type":"object","title":"AudioFingerprintExtractorParams","description":"Parameters for the Audio Fingerprint Extractor.\n\nProcesses audio files (or audio extracted from video) through CLAP\n(Contrastive Language-Audio Pretraining) to produce 512-d embeddings\nsuitable for audio fingerprint matching.\n\nCore Pipeline:\n1. Audio extraction (if video input, via FFmpeg)\n2. Segmentation into fixed-length windows\n3. CLAP embedding (laion/clap-htsat-tiny, 512-d)\n4. L2 normalization\n\nUse Cases:\n - Sound mark detection (IP safety)\n - Audio similarity search\n - Music/jingle identification\n - Audio deduplication","example":{"extractor_type":"audio_fingerprint_extractor","normalize_embeddings":true,"sample_rate":48000,"segment_duration_sec":5,"segment_hop_sec":2.5},"properties":{"extractor_type":{"type":"string","const":"audio_fingerprint_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'audio_fingerprint_extractor'.","default":"audio_fingerprint_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.extractor_type","typeLabel":"string"},"segment_duration_sec":{"type":"number","maximum":30,"minimum":1,"title":"Segment Duration Sec","description":"Duration of each audio segment in seconds. 5.0: Recommended for sound mark matching. Shorter segments increase recall but reduce per-segment context.","default":5,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.segment_duration_sec","typeLabel":"number"},"segment_hop_sec":{"type":"number","maximum":15,"minimum":0.5,"title":"Segment Hop Sec","description":"Hop size between segments in seconds. 2.5: 50% overlap (recommended). Set equal to segment_duration_sec for no overlap.","default":2.5,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.segment_hop_sec","typeLabel":"number"},"sample_rate":{"type":"integer","title":"Sample Rate","description":"Target sample rate for audio. 48000: CLAP default (recommended). Audio is resampled to this rate before embedding.","default":48000,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.sample_rate","typeLabel":"integer"},"normalize_embeddings":{"type":"boolean","title":"Normalize Embeddings","description":"L2-normalize embeddings to unit vectors (recommended for cosine similarity).","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.normalize_embeddings","typeLabel":"boolean"},"max_audio_length_sec":{"type":"number","maximum":600,"minimum":1,"title":"Max Audio Length Sec","description":"Maximum audio length to process in seconds. 120: Default (2 minutes). Audio beyond this is truncated.","default":120,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0.max_audio_length_sec","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.0","typeLabel":"AudioFingerprintExtractorParams · object"},{"type":"object","title":"ColbertExtractorParams","description":"Parameters for the ColBERT extractor.","example":{"extractor_type":"colbert_extractor"},"properties":{"extractor_type":{"type":"string","const":"colbert_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"colbert_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.1.extractor_type","typeLabel":"string"},"split_by":{"type":"string","enum":["characters","words","sentences","paragraphs","pages","time_segments","markdown","none"],"title":"TextSplitStrategy","description":"Strategy for splitting text into multiple documents. ColBERT reads at most 512 tokens of each document, so long texts should be split.","default":"none","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.1.split_by","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target chunk size, counted in the split_by strategy's own unit.","default":300,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.1.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between consecutive chunks, in the same unit as chunk_size.","default":0,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.1.chunk_overlap","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.1","typeLabel":"ColbertExtractorParams · object"},{"type":"object","title":"ColqwenExtractorParams","description":"Parameters for the ColQwen extractor.","example":{"extractor_type":"colqwen_extractor"},"properties":{"extractor_type":{"type":"string","const":"colqwen_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"colqwen_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.2.extractor_type","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Whether to generate a thumbnail of each image, page or frame.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.2.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Whether to use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.2.use_cdn","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.2","typeLabel":"ColqwenExtractorParams · object"},{"type":"object","title":"DocumentGraphExtractorParams","description":"Parameters for the document graph extractor.\n\nThis extractor decomposes PDFs into spatial blocks with layout classification,\nconfidence scoring, and optional VLM correction for degraded documents.\n\n**When to Use**:\n - Historical/archival document processing (FBI files, old records)\n - Scanned documents with mixed quality\n - Documents requiring spatial understanding (forms, tables, multi-column)\n - When you need block-level granularity with bounding boxes\n - When confidence scoring is needed for downstream filtering\n\n**When NOT to Use**:\n - Simple text-only documents -> Use text_extractor instead\n - When page-level granularity is sufficient -> Use pdf_extractor instead\n - Real-time processing requirements -> VLM correction adds latency","example":{"extractor_type":"document_graph_extractor","fast_mode":true,"generate_thumbnails":true,"layout_detector":"pymupdf","run_text_embedding":true,"use_layout_detection":true},"properties":{"extractor_type":{"type":"string","const":"document_graph_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification. Must be 'document_graph_extractor'.","default":"document_graph_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.extractor_type","typeLabel":"string"},"use_layout_detection":{"type":"boolean","title":"Use Layout Detection","description":"Enable ML-based layout detection to find ALL document elements (text, images, tables, figures). When enabled, uses the configured layout_detector to detect and extract both text regions AND non-text elements (scanned images, figures, charts) as separate documents. **Recommended for**: Scanned documents, image-heavy PDFs, mixed content documents. **When disabled**: Falls back to text-only extraction (faster but misses images). Default: True (detects all elements including images).","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.use_layout_detection","typeLabel":"boolean"},"layout_detector":{"type":"string","enum":["pymupdf","docling"],"title":"Layout Detector","description":"Layout detection engine to use when use_layout_detection=True. 'pymupdf': Fast, rule-based detection using PyMuPDF heuristics (~15 pages/sec). 'docling': SOTA ML-based detection using IBM Docling with DiT model (~3-8 sec/doc). **Docling advantages**: Better semantic type detection (section_header vs paragraph), true table structure extraction (rows/cols), more accurate figure detection. **PyMuPDF advantages**: Much faster, lower memory usage, simpler dependencies. Default: 'pymupdf' for speed. Use 'docling' for accuracy-critical applications.","default":"pymupdf","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.layout_detector","typeLabel":"enum\u003cstring>"},"vertical_threshold":{"type":"number","maximum":100,"minimum":1,"title":"Vertical Threshold","description":"Maximum vertical gap (in points) between lines to be grouped in same block. Increase for looser grouping, decrease for tighter blocks. Default 15pt works well for standard documents.","default":15,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.vertical_threshold","typeLabel":"number"},"horizontal_threshold":{"type":"number","maximum":200,"minimum":1,"title":"Horizontal Threshold","description":"Maximum horizontal distance (in points) for overlap detection. Affects column detection and block merging. Increase for wider columns, decrease for narrow layouts.","default":50,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.horizontal_threshold","typeLabel":"number"},"min_text_length":{"type":"integer","maximum":500,"minimum":1,"title":"Min Text Length","description":"Minimum text length (characters) to keep a block. Blocks with less text are filtered out. Helps remove noise and tiny fragments.","default":20,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.min_text_length","typeLabel":"integer"},"base_confidence":{"type":"number","maximum":1,"minimum":0,"title":"Base Confidence","description":"Base confidence score for embedded (native) text. Penalties are subtracted for OCR artifacts, encoding issues, etc.","default":0.85,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.base_confidence","typeLabel":"number"},"min_confidence_for_vlm":{"type":"number","maximum":1,"minimum":0,"title":"Min Confidence For Vlm","description":"Confidence threshold below which VLM correction is triggered. Blocks with confidence \u003c this value get sent to VLM for correction. Only applies when use_vlm_correction=True.","default":0.6,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.min_confidence_for_vlm","typeLabel":"number"},"use_vlm_correction":{"type":"boolean","title":"Use Vlm Correction","description":"Enable VLM (Vision Language Model) correction for low-confidence blocks. Uses Gemini/GPT-4V to correct OCR errors by analyzing the page image. Significantly slower (~1 page/sec) but improves accuracy for degraded docs.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.use_vlm_correction","typeLabel":"boolean"},"fast_mode":{"type":"boolean","title":"Fast Mode","description":"Skip VLM correction entirely for maximum throughput (~15 pages/sec). Overrides use_vlm_correction. Use when speed is more important than accuracy.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.fast_mode","typeLabel":"boolean"},"vlm_provider":{"type":"string","title":"Vlm Provider","description":"LLM provider for VLM correction. Options: 'google' (Gemini), 'openai' (GPT-4V), 'anthropic' (Claude). Google recommended for best vision quality.","default":"google","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.vlm_provider","typeLabel":"string"},"vlm_model":{"type":"string","title":"Vlm Model","description":"Specific model for VLM correction. Examples: 'gemini-2.5-flash', 'gpt-4o', 'claude-3-5-sonnet'.","default":"gemini-2.5-flash","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.vlm_model","typeLabel":"string"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for VLM correction (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for VLM correction (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.llm_api_key","typeLabel":"string | null"},"run_text_embedding":{"type":"boolean","title":"Run Text Embedding","description":"Generate text embeddings for semantic search over block content. Uses E5-Large (1024-dim) for multilingual support.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.run_text_embedding","typeLabel":"boolean"},"render_dpi":{"type":"integer","maximum":300,"minimum":72,"title":"Render Dpi","description":"DPI for page rendering (used for VLM correction). 72: Fast, lower quality. 150: Balanced (recommended). 300: High quality, slower.","default":150,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.render_dpi","typeLabel":"integer"},"generate_thumbnails":{"type":"boolean","title":"Generate Thumbnails","description":"Generate thumbnail images for blocks. Useful for visual previews and UI display.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.generate_thumbnails","typeLabel":"boolean"},"thumbnail_mode":{"type":"string","title":"Thumbnail Mode","description":"Thumbnail generation mode. 'full_page': Low-res thumbnail of entire page. 'segment': Cropped thumbnail of just the block's bounding box. 'both': Generate both types (recommended for flexibility).","default":"both","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.thumbnail_mode","typeLabel":"string"},"thumbnail_dpi":{"type":"integer","maximum":150,"minimum":36,"title":"Thumbnail Dpi","description":"DPI for thumbnail generation. Lower DPI = smaller files. 72: Standard web quality. 36: Very small thumbnails.","default":72,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3.thumbnail_dpi","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.3","typeLabel":"DocumentGraphExtractorParams · object"},{"type":"object","title":"FaceIdentityExtractorParams","description":"Parameters for the Face Identity Extractor.\n\nThe Face Identity Extractor processes images or video frames to detect, align,\nand embed faces using production-grade SOTA models (SCRFD + ArcFace).\n\nCore Pipeline:\n1. SCRFD Detection → Bounding boxes + 5 landmarks\n2. 5-Point Affine Alignment → 112×112 canonical face\n3. ArcFace Embedding → 512-d L2-normalized vector\n4. Optional Quality Scoring → Filter low-quality faces\n\nUse Cases:\n - Face verification (1:1 matching)\n - Face identification (1:N search)\n - Face clustering (group photos by person)\n - Duplicate face detection","example":{"detection_model":"scrfd_2.5g","detection_threshold":0.7,"enable_quality_scoring":true,"extractor_type":"face_identity_extractor","max_faces_per_image":1,"min_face_size":40,"normalize_embeddings":true,"output_mode":"per_face","quality_threshold":0.5},"properties":{"extractor_type":{"type":"string","const":"face_identity_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification. Must be 'face_identity_extractor'.","default":"face_identity_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.extractor_type","typeLabel":"string"},"detection_model":{"type":"string","enum":["scrfd_500m","scrfd_2.5g","scrfd_10g"],"title":"Detection Model","description":"SCRFD model for face detection. 'scrfd_500m': Fastest (2-3ms). 'scrfd_2.5g': Balanced (5-7ms), recommended. 'scrfd_10g': Highest accuracy (10-15ms).","default":"scrfd_2.5g","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.detection_model","typeLabel":"enum\u003cstring>"},"min_face_size":{"type":"integer","maximum":200,"minimum":10,"title":"Min Face Size","description":"Minimum face size in pixels to detect. 20px: Balanced. 40px: Higher quality. 10px: Maximum recall.","default":20,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.min_face_size","typeLabel":"integer"},"detection_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Detection Threshold","description":"Confidence threshold for face detection (0.0-1.0).","default":0.5,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.detection_threshold","typeLabel":"number"},"max_faces_per_image":{"oneOf":[{"type":"integer","title":"Max Faces Per Image","description":"Maximum number of faces to process per image. None: Process all.","minimum":1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Faces Per Image","description":"Maximum number of faces to process per image. None: Process all.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.max_faces_per_image","typeLabel":"integer | null"},"normalize_embeddings":{"type":"boolean","title":"Normalize Embeddings","description":"L2-normalize embeddings to unit vectors (recommended).","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.normalize_embeddings","typeLabel":"boolean"},"enable_quality_scoring":{"type":"boolean","title":"Enable Quality Scoring","description":"Compute quality scores (blur, size, landmarks). Adds ~5ms per face.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.enable_quality_scoring","typeLabel":"boolean"},"quality_threshold":{"oneOf":[{"type":"number","title":"Quality Threshold","description":"Minimum quality score to index faces. None: Index all faces. 0.5: Moderate filtering. 0.7: High quality only.","maximum":1,"minimum":0,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Quality Threshold","description":"Minimum quality score to index faces. None: Index all faces. 0.5: Moderate filtering. 0.7: High quality only.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.quality_threshold","typeLabel":"number | null"},"max_video_length":{"type":"integer","maximum":300,"minimum":1,"title":"Max Video Length","description":"Maximum video length in seconds. 60: Default. 10: Recommended for retrieval. 300: Maximum (extraction only).","default":60,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.max_video_length","typeLabel":"integer"},"video_sampling_fps":{"oneOf":[{"type":"number","title":"Video Sampling Fps","description":"Frames per second to sample from video. 1.0: One frame per second (recommended).","default":1,"maximum":60,"minimum":0.1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Video Sampling Fps","description":"Frames per second to sample from video. 1.0: One frame per second (recommended).","default":1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.video_sampling_fps","typeLabel":"number | null"},"video_deduplication":{"type":"boolean","title":"Video Deduplication","description":"Remove duplicate faces across video frames (extraction only). Reduces 90-95% redundancy. NOT used in retrieval.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.video_deduplication","typeLabel":"boolean"},"video_deduplication_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Video Deduplication Threshold","description":"Cosine similarity threshold for deduplication. 0.8: Conservative (default).","default":0.8,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.video_deduplication_threshold","typeLabel":"number"},"output_mode":{"type":"string","enum":["per_face","per_image"],"title":"Output Mode","description":"'per_face': One document per face (recommended). 'per_image': One doc per image with faces array.","default":"per_face","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.output_mode","typeLabel":"enum\u003cstring>"},"include_face_crops":{"type":"boolean","title":"Include Face Crops","description":"Include aligned 112×112 face crops as base64. Adds ~5KB per face. Required for LLM cluster labeling to see actual faces instead of hallucinating.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.include_face_crops","typeLabel":"boolean"},"include_source_frame_thumbnail":{"type":"boolean","title":"Include Source Frame Thumbnail","description":"Include resized source frame/image as base64 thumbnail (~15-30KB per face). Used for display with bounding box overlay.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.include_source_frame_thumbnail","typeLabel":"boolean"},"store_detection_metadata":{"type":"boolean","title":"Store Detection Metadata","description":"Store bbox, landmarks, detection scores. Recommended for debugging.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4.store_detection_metadata","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.4","typeLabel":"FaceIdentityExtractorParams · object"},{"type":"object","title":"GeminiMultifileExtractorParams","description":"Parameters for the Gemini Multifile Extractor.\n\nUses Gemini Embedding 2 (gemini-embedding-2) to embed all files\nof an object into a single 3072-d vector in one API call. Supports images,\nvideo, audio, PDF, and text blobs.","example":{"extractor_type":"gemini_multifile_extractor","input_key":"files","output_dimensionality":3072,"task_type":"RETRIEVAL_DOCUMENT"},"properties":{"extractor_type":{"type":"string","const":"gemini_multifile_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"gemini_multifile_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.5.extractor_type","typeLabel":"string"},"output_dimensionality":{"type":"integer","maximum":3072,"minimum":256,"title":"Output Dimensionality","description":"Output embedding dimensions. Gemini Embedding 2 supports 3072 (default), 768, or 256 via truncation. Lower dimensions reduce storage cost at slight quality loss.","default":3072,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.5.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding intent used as a text instruction for Gemini Embedding 2. Common values: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.5.task_type","typeLabel":"string"},"input_key":{"type":"string","title":"Input Key","description":"The input_mappings key whose value is the list of blob fields to embed together. Must match the key used in input_mappings (e.g., 'files'). Default: 'files'.","default":"files","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.5.input_key","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.5","typeLabel":"GeminiMultifileExtractorParams · object"},{"type":"object","title":"ImageExtractorParams","description":"Parameters for the Image Extractor.","example":{"enable_thumbnails":true,"extractor_type":"image_extractor","use_cdn":false},"properties":{"extractor_type":{"type":"string","const":"image_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"image_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.extractor_type","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Whether to generate thumbnail images.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Whether to use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.use_cdn","typeLabel":"boolean"},"tile_grid":{"oneOf":[{"type":"object","title":"TileGrid","description":"OPTIONAL. Also index each video frame and image as a cols x rows grid of crops, one document per tile, so a small thing in a wide shot is found by the crop that holds it. Each tile document carries tile_index (0 = the full frame, then crops row by row) and frame_key, shared by the tiles of one frame; a retriever's group_by stage on frame_key with max_per_group 1 ranks frames by their best tile. Multiplies the documents and embedding work by cols x rows + 1. PDF pages are not tiled. Default: off, one document per frame.","properties":{"cols":{"type":"integer","maximum":4,"minimum":1,"title":"Cols","description":"Crops across a frame.","default":3,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.cols","typeLabel":"integer"},"rows":{"type":"integer","maximum":4,"minimum":1,"title":"Rows","description":"Crops down a frame.","default":2,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.rows","typeLabel":"integer"},"include_full_frame":{"type":"boolean","title":"Include Full Frame","description":"Also index the whole frame as tile 0, so a thing that fills the frame is still found by its full view.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0.include_full_frame","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.0","typeLabel":"TileGrid · object"},{"type":"null","description":"OPTIONAL. Also index each video frame and image as a cols x rows grid of crops, one document per tile, so a small thing in a wide shot is found by the crop that holds it. Each tile document carries tile_index (0 = the full frame, then crops row by row) and frame_key, shared by the tiles of one frame; a retriever's group_by stage on frame_key with max_per_group 1 ranks frames by their best tile. Multiplies the documents and embedding work by cols x rows + 1. PDF pages are not tiled. Default: off, one document per frame.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6.tile_grid","typeLabel":"TileGrid · object | null"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.6","typeLabel":"ImageExtractorParams · object"},{"type":"object","title":"MultimodalExtractorParams","description":"Parameters for multimodal extractor v2.\n\nSame pipeline as v1 but uses Gemini Embedding 2 (3072D) for the\nmultimodal embedding step. Supports configurable output dimensions\nvia Matryoshka representation learning (3072/1536/768).","example":{"split_method":"time","time_split_interval":10},"properties":{"extractor_type":{"type":"string","const":"multimodal_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'multimodal_extractor'.","default":"multimodal_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.extractor_type","typeLabel":"string"},"split_method":{"type":"string","enum":["time","scene","silence"],"title":"SplitMethod","description":"Video splitting strategy.","default":"time","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.split_method","typeLabel":"enum\u003cstring>"},"description_prompt":{"type":"string","title":"Description Prompt","description":"Prompt for description generation.","default":"Watch this video segment carefully and describe exactly what you see. Do not make up or infer details that are not visible in the footage. Include: who is shown (gender, appearance, actions), what they are doing, the setting/location, and any products, text, or branding visible on screen.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.description_prompt","typeLabel":"string"},"time_split_interval":{"oneOf":[{"type":"integer","title":"Time Split Interval","description":"Interval in seconds for 'time' splitting.","default":10,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Time Split Interval","description":"Interval in seconds for 'time' splitting.","default":10,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.time_split_interval","typeLabel":"integer | null"},"silence_db_threshold":{"oneOf":[{"type":"integer","title":"Silence Db Threshold","description":"Decibel threshold for silence detection. Recommended: -40.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Silence Db Threshold","description":"Decibel threshold for silence detection. Recommended: -40.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.silence_db_threshold","typeLabel":"integer | null"},"scene_detection_threshold":{"oneOf":[{"type":"number","title":"Scene Detection Threshold","description":"Scene detection threshold (0.0-1.0). Recommended: 0.5.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Scene Detection Threshold","description":"Scene detection threshold (0.0-1.0). Recommended: 0.5.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.scene_detection_threshold","typeLabel":"number | null"},"run_transcription":{"type":"boolean","title":"Run Transcription","description":"Run Whisper transcription on segments.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_transcription","typeLabel":"boolean"},"transcription_language":{"oneOf":[{"type":"string","title":"Transcription Language","description":"ISO-639-1 code that forces the transcription language, e.g. `ru`, `fa`, `zh`. Leave unset to detect the language per segment, which is the right choice for a mixed-language corpus.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transcription Language","description":"ISO-639-1 code that forces the transcription language, e.g. `ru`, `fa`, `zh`. Leave unset to detect the language per segment, which is the right choice for a mixed-language corpus.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.transcription_language","typeLabel":"string | null"},"run_video_description":{"type":"boolean","title":"Run Video Description","description":"Generate Gemini descriptions for segments.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_video_description","typeLabel":"boolean"},"run_transcription_embedding":{"type":"boolean","title":"Run Transcription Embedding","description":"Generate E5 embeddings for transcriptions (1024D).","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_transcription_embedding","typeLabel":"boolean"},"run_ocr_embedding":{"type":"boolean","title":"Run Ocr Embedding","description":"Generate E5 embeddings for OCR text (1024D). Requires run_ocr.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_ocr_embedding","typeLabel":"boolean"},"run_description_embedding":{"type":"boolean","title":"Run Description Embedding","description":"Generate E5 embeddings for descriptions (1024D). Requires run_video_description.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_description_embedding","typeLabel":"boolean"},"run_multimodal_embedding":{"type":"boolean","title":"Run Multimodal Embedding","description":"Generate Gemini Embedding 2 multimodal embeddings (3072D). Creates unified embeddings across video, image, text, audio, and GIF content.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_multimodal_embedding","typeLabel":"boolean"},"run_ocr":{"type":"boolean","title":"Run Ocr","description":"Extract text from video frames via Gemini OCR.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.run_ocr","typeLabel":"boolean"},"max_segment_duration":{"oneOf":[{"type":"number","title":"Max Segment Duration","description":"Maximum duration in seconds for any single segment. Scene/silence segments longer than this are subdivided. Set to None to disable. Default: 30s.","default":30,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Segment Duration","description":"Maximum duration in seconds for any single segment. Scene/silence segments longer than this are subdivided. Set to None to disable. Default: 30s.","default":30,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.max_segment_duration","typeLabel":"number | null"},"sensitivity":{"type":"string","title":"Sensitivity","description":"Scene detection sensitivity.","default":"low","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.sensitivity","typeLabel":"string"},"enable_thumbnails":{"type":"boolean","title":"Enable Thumbnails","description":"Generate thumbnail images for segments.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.enable_thumbnails","typeLabel":"boolean"},"use_cdn":{"type":"boolean","title":"Use Cdn","description":"Use CloudFront CDN for thumbnail delivery.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.use_cdn","typeLabel":"boolean"},"generation_config":{"properties":{"candidate_count":{"type":"integer","title":"Candidate Count","description":"Number of candidate responses to generate for video description.","default":1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.candidate_count","typeLabel":"integer"},"max_output_tokens":{"type":"integer","title":"Max Output Tokens","description":"Maximum number of tokens for the generated video description.","default":1024,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.max_output_tokens","typeLabel":"integer"},"temperature":{"type":"number","title":"Temperature","description":"Controls randomness for video description generation. Higher is more random.","default":0.2,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.temperature","typeLabel":"number"},"top_p":{"type":"number","title":"Top P","description":"Nucleus sampling (top-p) for video description generation.","default":0.8,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.top_p","typeLabel":"number"},"video_fps":{"oneOf":[{"type":"number","title":"Video Fps","description":"Frames per second the model reads from each video segment for the description. Unset uses the model's default of 1. Raise it (for example to 4 or 5) for fast or fine motion such as hand work; input tokens grow with the rate.","maximum":24,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps.oneOf.0","typeLabel":"number"},{"type":"null","title":"Video Fps","description":"Frames per second the model reads from each video segment for the description. Unset uses the model's default of 1. Raise it (for example to 4 or 5) for fast or fine motion such as hand work; input tokens grow with the rate.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.video_fps","typeLabel":"number | null"},"response_mime_type":{"oneOf":[{"type":"string","title":"Response Mime Type","description":"MIME type for response (e.g., 'application/json')","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Response Mime Type","description":"MIME type for response (e.g., 'application/json')","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_mime_type","typeLabel":"string | null"},"response_schema":{"oneOf":[{"type":"object","title":"Response Schema","description":"JSON schema for structured output","additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema.oneOf.0","typeLabel":"Response Schema · object"},{"type":"null","title":"Response Schema","description":"JSON schema for structured output","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config.response_schema","typeLabel":"Response Schema · object | null"}},"type":"object","title":"GenerationConfig","description":"Configuration for generative models.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.generation_config","typeLabel":"GenerationConfig · object"},"output_dimensionality":{"type":"integer","title":"Output Dimensionality","description":"Output embedding dimensions. Gemini Embedding 2 supports Matryoshka dimension reduction: 3072 (full), 1536, or 768.","default":3072,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding task type hint. Options: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.task_type","typeLabel":"string"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Custom structured output schema for Gemini extraction. String for natural language prompt, dict for explicit JSON schema.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.response_shape","typeLabel":"string | Response Shape · object | null"},"embedding_task":{"oneOf":[{"type":"string","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Note: Vertex AI multimodal embeddings ignore this — only E5 transcription embeddings use it.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task.oneOf.0","typeLabel":"string"},{"type":"null","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Note: Vertex AI multimodal embeddings ignore this — only E5 transcription embeddings use it.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7.embedding_task","typeLabel":"string | null"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.7","typeLabel":"MultimodalExtractorParams · object"},{"type":"object","title":"PassthroughExtractorParams","description":"Parameters for passthrough extractor.\n\nMinimal configuration - just passes data through with canonicalization.\nWith ``vector_fields`` set, each row of a JSONL or Parquet object becomes\nits own document carrying the row's precomputed vectors.","properties":{"extractor_type":{"type":"string","const":"passthrough_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"passthrough_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.extractor_type","typeLabel":"string"},"preserve_metadata":{"type":"boolean","title":"Preserve Metadata","description":"Preserve source object metadata in output document.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.preserve_metadata","typeLabel":"boolean"},"vector_fields":{"items":{"properties":{"field":{"type":"string","minLength":1,"title":"Field","description":"Key in each row that holds the vector, as a list of numbers. A row without this key, or with a vector of the wrong length, is reported as a failed row and the other rows are still written.","examples":["embedding"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].field","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Name of the vector index the vector is stored under. Use this name in a feature_search stage to search the rows with a raw query vector. Letters, digits and underscores, starting with a letter, at most 64 characters, and unique within vector_fields.","examples":["text_embedding"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].name","typeLabel":"string"},"dimensions":{"type":"integer","maximum":65536,"minimum":1,"title":"Dimensions","description":"Length of every vector in this field.","examples":[384,768,1536],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].dimensions","typeLabel":"integer"},"distance":{"type":"string","enum":["cosine","dot","euclidean"],"title":"Distance","description":"Distance metric for the index. Use the metric the vectors were trained for.","default":"cosine","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX].distance","typeLabel":"enum\u003cstring>"}},"type":"object","required":["field","name","dimensions"],"title":"VectorFieldSpec","description":"One precomputed vector carried on each row of a JSONL or Parquet object.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields.items.[INDEX]","typeLabel":"VectorFieldSpec · object"},"type":"array","title":"Vector Fields","description":"Precomputed vectors to store from a JSONL or Parquet object. When set, every row of the object becomes its own document: the row's other fields are stored on the document, and each listed vector is stored under its own vector index, searchable with a raw vector in a feature_search stage. Leave empty, and leave row_format unset, to store one document per object.","examples":[[{"dimensions":384,"distance":"cosine","field":"embedding","name":"text_embedding"}]],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.vector_fields","typeLabel":"VectorFieldSpec · object[]"},"row_format":{"oneOf":[{"type":"string","title":"Row Format","description":"Read each row of a JSONL or Parquet object as its own document. Set it without vector_fields for payload-only rows (events, spans, logs). With vector_fields set, leave it unset to read the format from the object's file extension (.jsonl or .ndjson for JSONL, .parquet for Parquet).","enum":["jsonl","parquet"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Row Format","description":"Read each row of a JSONL or Parquet object as its own document. Set it without vector_fields for payload-only rows (events, spans, logs). With vector_fields set, leave it unset to read the format from the object's file extension (.jsonl or .ndjson for JSONL, .parquet for Parquet).","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8.row_format","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.8","typeLabel":"PassthroughExtractorParams · object"},{"type":"object","title":"ScrollingTextExtractorParams","description":"Parameters for the on-screen text extractor.\n\nExtracts ALL on-screen text from video: STATIC overlays (title cards,\ndisclaimers, captions, CTAs — the majority of ad-creative text) via\nkeyframe-grid VLM OCR, and SCROLLING/marquee text via computer vision\n(phase-correlation band detection + panoramic stitching) + VLM OCR.\n\n**When to Use**:\n - Ad creative with static overlay text (disclaimers, CTAs, titles)\n - Video ads with scrolling promotional banners or tickers\n - News broadcasts with scrolling chyrons or tickers\n - Videos with terms \u0026 conditions or disclaimers (static or scrolling)\n - Social media content with text overlays\n - Credits sequences in film/TV content\n - Live event streams with scrolling info bars\n\n**When NOT to Use**:\n - Spoken content → use multimodal_extractor with run_transcription=True\n - Text documents/PDFs → use text_extractor\n\n**How It Works**:\n Static pass (static_ocr=True, default):\n 1. Select visually distinct keyframes (identical frames collapse to one)\n 2. Stitch them into a single grid image\n 3. OCR the grid with one vision-language-model call (Gemini)\n\n Scrolling pass:\n 1. Sample frames from video at configurable FPS\n 2. Split each frame into horizontal and vertical strips\n 3. Phase-correlate consecutive frames to measure per-strip pixel shift\n 4. Strips with consistent shift in one direction = scrolling band\n 5. Stitch the band across frames into a single wide/tall panorama image\n 6. OCR the panorama using a vision language model (Gemini)\n 7. Deduplicate repeated marquee loops (e.g. \"SALE • SALE • SALE •\" → \"SALE\")\n\n**Performance**:\n - Processing speed: ~2-5x realtime (depends on video resolution and FPS)\n - Accuracy: Best with consistent scroll speed; handles variable speed with degradation\n - Minimum video length: ~2 seconds (needs 3+ frames for correlation)\n\n**Supported Scroll Directions**:\n - Horizontal: Right-to-left (most common), Left-to-right\n - Vertical: Bottom-to-top (credits), Top-to-bottom","example":{"extractor_type":"scrolling_text_extractor","fps":5,"strip_height":40},"properties":{"extractor_type":{"type":"string","const":"scrolling_text_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'scrolling_text_extractor'.","default":"scrolling_text_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.extractor_type","typeLabel":"string"},"fps":{"type":"number","maximum":30,"minimum":1,"title":"Fps","description":"Frame sampling rate for analysis. Higher values improve detection accuracy for fast-scrolling text but increase processing time. 5 FPS works well for most video ads and tickers.","default":5,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.fps","typeLabel":"number"},"strip_height":{"type":"integer","maximum":200,"minimum":10,"title":"Strip Height","description":"Height (in pixels) of each scanning strip used for phase correlation. Should roughly match the height of the scrolling text band. Smaller values detect narrower text bands; larger values are more robust but may miss thin tickers. 40px works for most standard video ads.","default":40,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.strip_height","typeLabel":"integer"},"min_shift_px":{"type":"number","maximum":20,"minimum":0.5,"title":"Min Shift Px","description":"Minimum pixel shift per frame to consider a strip as 'scrolling'. Lower values detect slower-moving text; higher values filter out noise. 2.0px is a good default for 5 FPS sampling.","default":2,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.min_shift_px","typeLabel":"number"},"consistency_ratio":{"type":"number","maximum":1,"minimum":0.3,"title":"Consistency Ratio","description":"Fraction of frame pairs that must show consistent shift for a band to be classified as scrolling. 0.6 means 60% of frames must agree. Lower values detect intermittent scrolling; higher values reduce false positives.","default":0.6,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.consistency_ratio","typeLabel":"number"},"pad":{"type":"integer","maximum":50,"minimum":0,"title":"Pad","description":"Pixel padding above/below detected band when cropping for stitching.","default":8,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.pad","typeLabel":"integer"},"static_ocr":{"type":"boolean","title":"Static Ocr","description":"Also OCR STATIC on-screen text (title cards, disclaimers, CTAs, captions) — the majority of text in ad creative. Distinct keyframes are stitched into one grid image and read with a single VLM call, so a fully static video costs one OCR call. Disable only if you strictly want scrolling-band text.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.static_ocr","typeLabel":"boolean"},"max_static_frames":{"type":"integer","maximum":12,"minimum":1,"title":"Max Static Frames","description":"Maximum number of visually distinct keyframes sampled for the static-text OCR grid. Identical frames collapse to one; scene changes contribute additional frames up to this cap.","default":4,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9.max_static_frames","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.9","typeLabel":"ScrollingTextExtractorParams · object"},{"type":"object","title":"TextExtractorParams","description":"Parameters for the text extractor.\n\nThe text extractor generates dense vector embeddings optimized for semantic similarity search.\nIt uses the E5-Large multilingual model to convert text into 1024-dimensional vectors.\n\nWhen ``source_type`` is ``\"youtube\"``, the extractor first resolves YouTube URLs\nto caption text via yt-dlp before chunking and embedding. Use ``split_by=\"time_segments\"``\nwith ``segment_length_seconds`` to segment captions by time window.","example":{"chunk_overlap":0,"chunk_size":1000,"extractor_type":"text_extractor","split_by":"none"},"properties":{"extractor_type":{"type":"string","const":"text_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"text_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.extractor_type","typeLabel":"string"},"source_type":{"type":"string","enum":["text","youtube"],"title":"Source Type","description":"Source content type. Use 'youtube' to resolve YouTube URLs to caption text before embedding. Default: 'text' (plain text input).","default":"text","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.source_type","typeLabel":"enum\u003cstring>"},"split_by":{"type":"string","enum":["characters","words","sentences","paragraphs","pages","time_segments","markdown","none"],"title":"TextSplitStrategy","description":"Strategy for splitting text into multiple documents. 'markdown' makes one document per heading section and one per fenced code block, each carrying heading_path, chunk_kind ('section' or 'code') and, for code, code_language.","default":"none","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.split_by","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target chunk size, counted in the split_by strategy's own unit: characters for split_by='characters', words for 'words', sentences for 'sentences', paragraphs for 'paragraphs', pages for 'pages', and words of prose per section chunk for 'markdown' (a longer section splits at paragraph boundaries; code blocks are never split). For example split_by='sentences' with chunk_size=5 produces chunks of 5 sentences. Not used for 'none' or 'time_segments' (use segment_length_seconds there).","default":1000,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between consecutive chunks, counted in the same unit as chunk_size (characters, words, sentences, paragraphs, or pages). For example split_by='sentences' with chunk_overlap=1 carries one sentence from the end of each chunk into the next. Not used for 'markdown'.","default":0,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.chunk_overlap","typeLabel":"integer"},"segment_length_seconds":{"type":"integer","maximum":600,"minimum":30,"title":"Segment Length Seconds","description":"Length of each transcript segment in seconds (for time_segments split strategy). Shorter segments give more precise search results but more documents.","default":120,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.segment_length_seconds","typeLabel":"integer"},"language":{"type":"string","title":"Language","description":"Preferred language code for YouTube captions (when source_type='youtube').","default":"en","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.language","typeLabel":"string"},"extract_captions":{"type":"boolean","title":"Extract Captions","description":"Extract auto-captions or manual subtitles from YouTube videos (when source_type='youtube'). Falls back to video description if False.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.extract_captions","typeLabel":"boolean"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Define custom structured output using LLM extraction.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Define custom structured output using LLM extraction.","additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Define custom structured output using LLM extraction.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.response_shape","typeLabel":"string | Response Shape · object | null"},"llm_provider":{"oneOf":[{"type":"string","title":"Llm Provider","description":"LLM provider for structured extraction (openai, google, anthropic, typesafe). 'typesafe' runs Jev, which answers each response_shape field as a typed question (enum -> choice, boolean -> yes/no, bounded integer -> score) and needs response_shape as a JSON schema of closed-set fields.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Provider","description":"LLM provider for structured extraction (openai, google, anthropic, typesafe). 'typesafe' runs Jev, which answers each response_shape field as a typed question (enum -> choice, boolean -> yes/no, bounded integer -> score) and needs response_shape as a JSON schema of closed-set fields.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_provider","typeLabel":"string | null"},"llm_model":{"oneOf":[{"type":"string","title":"Llm Model","description":"Specific LLM model for structured extraction, e.g. gemini-2.5-flash or jev-latest.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Model","description":"Specific LLM model for structured extraction, e.g. gemini-2.5-flash or jev-latest.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_model","typeLabel":"string | null"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.llm_api_key","typeLabel":"string | null"},"embedding_model":{"oneOf":[{"type":"string","title":"EmbeddingModel","description":"Embedding model to use. Defaults to the current TEXT modality default in the central embedding registry. Changing this on an existing namespace requires a migration — dimensions are fixed at namespace creation.","enum":["laion_clip_vit_l_14_v1","multilingual_e5_large_instruct_v1","vertex_multimodal_embedding","multimodalembedding@001","gemini-embedding-2","google_siglip_base_v1","google_siglip_so400m_v1","text-embedding-3-small","text-embedding-3-large","face_identity_arcface_r100_v1","all_minilm_l6_v2_v1","colbertv2_v1","colqwen2_v1"],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Embedding model to use. Defaults to the current TEXT modality default in the central embedding registry. Changing this on an existing namespace requires a migration — dimensions are fixed at namespace creation.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_model","typeLabel":"enum\u003cstring> | null"},"embedding_task":{"oneOf":[{"type":"string","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5, Gemini). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task.oneOf.0","typeLabel":"string"},{"type":"null","title":"Embedding Task","description":"Embedding task hint for instruction-aware models (E5, Gemini). Prefer setting this at collection level (embedding_task on the collection) rather than here. Collection-level overrides this value. Defaults to 'retrieval_document'. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10.embedding_task","typeLabel":"string | null"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.10","typeLabel":"TextExtractorParams · object"},{"type":"object","title":"TranscodingExtractorParams","description":"Parameters for the Transcoding Extractor.\n\nTranscodes source video (RED R3D, ARRI RAW, MXF, or any FFmpeg-decodable\nformat) to a web-playable H.264/H.265 MP4 uploaded to object storage.\nThe output document carries the converted file's URL in `converted_url`.","example":{"crf":23,"extractor_type":"transcoding_extractor","max_resolution":1080,"output_codec":"libx264","preset":"medium"},"properties":{"extractor_type":{"type":"string","const":"transcoding_extractor","title":"Extractor Type","description":"Discriminator field. Must be 'transcoding_extractor'.","default":"transcoding_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.extractor_type","typeLabel":"string"},"output_codec":{"type":"string","enum":["libx264","libx265"],"title":"Output Codec","description":"Output video codec. libx264 (H.264) for maximum player compatibility; libx265 (H.265) for smaller files.","default":"libx264","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.output_codec","typeLabel":"enum\u003cstring>"},"crf":{"type":"integer","maximum":51,"minimum":0,"title":"Crf","description":"Constant Rate Factor. Lower is higher quality and larger files. 18-23 is the usual H.264 range; 23 is a good default mezzanine.","default":23,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.crf","typeLabel":"integer"},"preset":{"type":"string","enum":["ultrafast","superfast","veryfast","faster","fast","medium","slow","slower","veryslow"],"title":"Preset","description":"FFmpeg encoding speed preset. Slower presets compress better at the same quality but take more CPU time.","default":"medium","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.preset","typeLabel":"enum\u003cstring>"},"max_resolution":{"oneOf":[{"type":"integer","title":"Max Resolution","description":"Cap output height in pixels (width scales proportionally). Set null to keep the source resolution.","default":1080,"maximum":4320,"minimum":144,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Resolution","description":"Cap output height in pixels (width scales proportionally). Set null to keep the source resolution.","default":1080,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.max_resolution","typeLabel":"integer | null"},"audio_codec":{"type":"string","enum":["aac","mp3","copy"],"title":"Audio Codec","description":"Audio codec for the output ('copy' passes audio through).","default":"aac","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.audio_codec","typeLabel":"enum\u003cstring>"},"require_native_sdks":{"type":"boolean","title":"Require Native Sdks","description":"If true, fail a RED/ARRI file instead of falling back to plain FFmpeg when the REDline/art-cmd CLI is not installed on the engine image. Leave false to get best-effort conversion.","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11.require_native_sdks","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.11","typeLabel":"TranscodingExtractorParams · object"},{"type":"object","title":"UniversalExtractorParams","description":"Parameters for the Universal Extractor.","example":{"extract_text":true,"extractor_type":"universal_extractor","generate_description":true,"max_concurrency":4,"max_file_download_mb":500,"output_dimensionality":3072,"task_type":"RETRIEVAL_DOCUMENT"},"properties":{"extractor_type":{"type":"string","const":"universal_extractor","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"universal_extractor","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.extractor_type","typeLabel":"string"},"output_dimensionality":{"type":"integer","maximum":3072,"minimum":256,"title":"Output Dimensionality","description":"Output embedding dimensions (Gemini Embedding 2 supports 256-3072).","default":3072,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.output_dimensionality","typeLabel":"integer"},"task_type":{"type":"string","title":"Task Type","description":"Embedding intent used as a text instruction for Gemini Embedding 2. Common values: RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY.","default":"RETRIEVAL_DOCUMENT","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.task_type","typeLabel":"string"},"generate_description":{"type":"boolean","title":"Generate Description","description":"Generate a text description of the content via Gemini vision/understanding.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.generate_description","typeLabel":"boolean"},"extract_text":{"type":"boolean","title":"Extract Text","description":"Extract text content (OCR for images/docs, transcription for audio/video).","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.extract_text","typeLabel":"boolean"},"max_video_segments":{"type":"integer","maximum":50,"minimum":1,"title":"Max Video Segments","description":"Maximum number of 30s segments to process for video files.","default":10,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.max_video_segments","typeLabel":"integer"},"max_document_pages":{"type":"integer","maximum":200,"minimum":1,"title":"Max Document Pages","description":"Maximum number of pages to process for document files.","default":50,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.max_document_pages","typeLabel":"integer"},"max_file_download_mb":{"type":"integer","maximum":1024,"minimum":1,"title":"Max File Download Mb","description":"Maximum file download size in MB for fast-path processing.","default":500,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.max_file_download_mb","typeLabel":"integer"},"max_concurrency":{"type":"integer","maximum":32,"minimum":1,"title":"Max Concurrency","description":"Maximum per-task object concurrency for fast-path processing.","default":4,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12.max_concurrency","typeLabel":"integer"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.12","typeLabel":"UniversalExtractorParams · object"},{"type":"object","title":"WebScraperExtractorParams","description":"Parameters for the web scraper extractor.\n\nThe web scraper extractor crawls websites and extracts content with three types\nof embeddings for comprehensive multimodal search:\n\n**Embedding Types:**\n- Text (E5-Large): 1024D embeddings for page content\n- Code (Jina Code): 768D embeddings for code blocks\n- Images (SigLIP): 768D semantic embeddings for figures/screenshots\n- Images (DINOv2): 768D structure embeddings for visual layout comparison\n\n**Crawl Modes:**\n- DETERMINISTIC: BFS following all links (default, predictable)\n- SEMANTIC: LLM-guided, prioritizes pages matching crawl_goal\n\n**Rendering Strategies:**\n- AUTO: Tries static, falls back to JS if content too short (default)\n- STATIC: Fast HTTP fetch, works for most sites\n- JAVASCRIPT: Playwright browser for SPAs (React/Vue/Angular)\n\n**Use Cases:**\n- Documentation freshness: Crawl docs, compare against course content\n- Job board ingestion: Extract job listings with structured data\n- Knowledge base building: Convert websites to searchable collections\n- Code example indexing: Find API usage patterns across docs","example":{"chunk_size":3,"chunk_strategy":"paragraphs","extractor_type":"web_scraper","max_depth":3,"max_pages":100},"properties":{"extractor_type":{"type":"string","const":"web_scraper","title":"Extractor Type","description":"Discriminator field for parameter type identification.","default":"web_scraper","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.extractor_type","typeLabel":"string"},"max_depth":{"type":"integer","maximum":10,"minimum":0,"title":"Max Depth","description":"Maximum link depth to crawl. 0=seed page only, 1=seed+direct links, etc. Default: 2. Max: 10.","default":2,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.max_depth","typeLabel":"integer"},"max_pages":{"type":"integer","maximum":500,"minimum":1,"title":"Max Pages","description":"Maximum pages to crawl. Default: 50. Max: 500.","default":50,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.max_pages","typeLabel":"integer"},"crawl_timeout":{"type":"integer","maximum":3600,"minimum":10,"title":"Crawl Timeout","description":"Maximum total time for crawling in seconds. Default: 300 (5 minutes). Increase for large sites with many pages. Max: 3600 (1 hour).","default":300,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_timeout","typeLabel":"integer"},"crawl_mode":{"type":"string","enum":["deterministic","semantic"],"title":"CrawlMode","description":"Crawl strategy. DETERMINISTIC: BFS all links (predictable). SEMANTIC: LLM-guided, prioritizes relevant pages (requires crawl_goal).","default":"deterministic","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_mode","typeLabel":"enum\u003cstring>"},"crawl_goal":{"oneOf":[{"type":"string","title":"Crawl Goal","description":"Goal for semantic crawling. Only used when crawl_mode=SEMANTIC. Example: 'Find all S3 API documentation and examples'","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal.oneOf.0","typeLabel":"string"},{"type":"null","title":"Crawl Goal","description":"Goal for semantic crawling. Only used when crawl_mode=SEMANTIC. Example: 'Find all S3 API documentation and examples'","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.crawl_goal","typeLabel":"string | null"},"render_strategy":{"type":"string","enum":["static","javascript","auto"],"title":"RenderStrategy","description":"How to render pages. AUTO (default): tries static, falls back to JS. STATIC: fast HTTP fetch. JAVASCRIPT: Playwright browser for SPAs.","default":"auto","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.render_strategy","typeLabel":"enum\u003cstring>"},"include_patterns":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Include Patterns","description":"Regex patterns for URLs to include. Example: ['/docs/', '/api/']","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Include Patterns","description":"Regex patterns for URLs to include. Example: ['/docs/', '/api/']","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.include_patterns","typeLabel":"string[] | null"},"exclude_patterns":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Exclude Patterns","description":"Regex patterns for URLs to exclude. Example: ['/blog/', '\\.pdf$']","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Exclude Patterns","description":"Regex patterns for URLs to exclude. Example: ['/blog/', '\\.pdf$']","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.exclude_patterns","typeLabel":"string[] | null"},"chunk_strategy":{"type":"string","enum":["none","sentences","paragraphs","words","characters"],"title":"ChunkStrategy","description":"How to split page content. NONE: one chunk per page. SENTENCES/PARAGRAPHS: semantic boundaries. WORDS/CHARACTERS: fixed size chunks.","default":"none","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_strategy","typeLabel":"enum\u003cstring>"},"chunk_size":{"type":"integer","maximum":10000,"minimum":1,"title":"Chunk Size","description":"Target size for each chunk (in units of chunk_strategy).","default":500,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_size","typeLabel":"integer"},"chunk_overlap":{"type":"integer","maximum":5000,"minimum":0,"title":"Chunk Overlap","description":"Overlap between chunks to preserve context.","default":50,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.chunk_overlap","typeLabel":"integer"},"document_id_strategy":{"type":"string","enum":["url","position","content"],"title":"DocumentIdStrategy","description":"How to generate document IDs. URL (default): stable across re-crawls. POSITION: order-based. CONTENT: deduplicates identical content.","default":"url","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.document_id_strategy","typeLabel":"enum\u003cstring>"},"generate_text_embeddings":{"type":"boolean","title":"Generate Text Embeddings","description":"Generate E5 embeddings for text content.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_text_embeddings","typeLabel":"boolean"},"generate_code_embeddings":{"type":"boolean","title":"Generate Code Embeddings","description":"Generate Jina code embeddings for code blocks.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_code_embeddings","typeLabel":"boolean"},"generate_image_embeddings":{"type":"boolean","title":"Generate Image Embeddings","description":"Generate SigLIP embeddings for images/figures.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_image_embeddings","typeLabel":"boolean"},"generate_structure_embeddings":{"type":"boolean","title":"Generate Structure Embeddings","description":"Generate DINOv2 visual structure embeddings for layout comparison.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.generate_structure_embeddings","typeLabel":"boolean"},"response_shape":{"oneOf":[{"type":"string","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.0","typeLabel":"string"},{"type":"object","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.1","typeLabel":"Response Shape · object"},{"type":"null","title":"Response Shape","description":"Optional structured extraction schema. Natural language or JSON schema. Example: 'Extract API version, deprecated methods, and example code'","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.response_shape","typeLabel":"string | Response Shape · object | null"},"llm_provider":{"oneOf":[{"type":"string","title":"Llm Provider","description":"LLM provider for structured extraction: openai, google, anthropic","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Provider","description":"LLM provider for structured extraction: openai, google, anthropic","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_provider","typeLabel":"string | null"},"llm_model":{"oneOf":[{"type":"string","title":"Llm Model","description":"LLM model for structured extraction.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Model","description":"LLM model for structured extraction.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_model","typeLabel":"string | null"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","description":"API key for LLM operations (BYOK - Bring Your Own Key). Supports:\n- Direct key: 'sk-proj-abc123...'\n- Secret reference: '{{SECRET.openai_api_key}}'\n\nWhen using secret reference, the key is loaded from your organization's secrets vault at runtime. Store secrets via POST /v1/organizations/secrets.\n\nIf not provided, uses Mixpeek's default API keys.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.llm_api_key","typeLabel":"string | null"},"max_retries":{"type":"integer","maximum":10,"minimum":0,"title":"Max Retries","description":"Maximum retry attempts for failed HTTP requests. Uses exponential backoff with jitter. Default: 3.","default":3,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.max_retries","typeLabel":"integer"},"retry_base_delay":{"type":"number","maximum":30,"minimum":0.1,"title":"Retry Base Delay","description":"Base delay in seconds for retry backoff. Actual delay = base * 2^attempt + jitter. Default: 1.0.","default":1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.retry_base_delay","typeLabel":"number"},"retry_max_delay":{"type":"number","maximum":300,"minimum":1,"title":"Retry Max Delay","description":"Maximum delay in seconds between retries. Default: 30.","default":30,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.retry_max_delay","typeLabel":"number"},"respect_retry_after":{"type":"boolean","title":"Respect Retry After","description":"Respect Retry-After header from 429/503 responses. If False, uses exponential backoff instead. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.respect_retry_after","typeLabel":"boolean"},"proxies":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Proxies","description":"List of proxy URLs for rotation. Supports formats: 'http://host:port', 'http://user:pass@host:port', 'socks5://host:port'. Proxies rotate on errors or every N requests.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Proxies","description":"List of proxy URLs for rotation. Supports formats: 'http://host:port', 'http://user:pass@host:port', 'socks5://host:port'. Proxies rotate on errors or every N requests.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.proxies","typeLabel":"string[] | null"},"rotate_proxy_on_error":{"type":"boolean","title":"Rotate Proxy On Error","description":"Rotate to next proxy when request fails. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.rotate_proxy_on_error","typeLabel":"boolean"},"rotate_proxy_every_n_requests":{"type":"integer","maximum":1000,"minimum":0,"title":"Rotate Proxy Every N Requests","description":"Rotate proxy every N requests (0 = disabled). Useful for avoiding IP-based rate limits. Default: 0 (disabled).","default":0,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.rotate_proxy_every_n_requests","typeLabel":"integer"},"captcha_service_provider":{"oneOf":[{"type":"string","title":"Captcha Service Provider","description":"Captcha solving service provider: '2captcha', 'anti-captcha', 'capsolver'. If not set, captcha pages are skipped gracefully.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Captcha Service Provider","description":"Captcha solving service provider: '2captcha', 'anti-captcha', 'capsolver'. If not set, captcha pages are skipped gracefully.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_provider","typeLabel":"string | null"},"captcha_service_api_key":{"oneOf":[{"type":"string","title":"Captcha Service Api Key","description":"API key for captcha solving service. Supports secret reference: '{{SECRET.captcha_api_key}}'. Required if captcha_service_provider is set.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Captcha Service Api Key","description":"API key for captcha solving service. Supports secret reference: '{{SECRET.captcha_api_key}}'. Required if captcha_service_provider is set.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.captcha_service_api_key","typeLabel":"string | null"},"detect_captcha":{"type":"boolean","title":"Detect Captcha","description":"Detect captcha challenges (Cloudflare, reCAPTCHA, hCaptcha). If detected and no solver configured, page is skipped. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.detect_captcha","typeLabel":"boolean"},"persist_cookies":{"type":"boolean","title":"Persist Cookies","description":"Persist cookies across requests within a crawl session. Useful for sites requiring authentication. Default: True.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.persist_cookies","typeLabel":"boolean"},"custom_headers":{"oneOf":[{"type":"object","title":"Custom Headers","description":"Custom HTTP headers to include in all requests. Example: {'Authorization': 'Bearer token', 'X-Custom': 'value'}","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.0","typeLabel":"Custom Headers · object"},{"type":"null","title":"Custom Headers","description":"Custom HTTP headers to include in all requests. Example: {'Authorization': 'Bearer token', 'X-Custom': 'value'}","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.custom_headers","typeLabel":"Custom Headers · object | null"},"youtube_mode":{"type":"string","enum":["auto","off","force"],"title":"Youtube Mode","description":"YouTube channel fast path. 'auto' (default): detect YouTube channel URLs and hand off to yt-dlp; other URLs run normal BFS. 'off': never hand off. 'force': treat every URL as a YouTube channel (useful for explicit channel buckets).","default":"auto","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_mode","typeLabel":"enum\u003cstring>"},"youtube_max_videos":{"type":"integer","maximum":5000,"minimum":1,"title":"Youtube Max Videos","description":"Max videos to pull per channel enumeration. Default: 50.","default":50,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_max_videos","typeLabel":"integer"},"youtube_backfill_months":{"type":"integer","maximum":60,"minimum":1,"title":"Youtube Backfill Months","description":"Skip videos older than this many months. Default: 6.","default":6,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_backfill_months","typeLabel":"integer"},"youtube_show_filter":{"oneOf":[{"type":"string","title":"Youtube Show Filter","description":"Optional case-insensitive regex applied to video titles. Used when a channel hosts multiple shows and you only want one.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter.oneOf.0","typeLabel":"string"},{"type":"null","title":"Youtube Show Filter","description":"Optional case-insensitive regex applied to video titles. Used when a channel hosts multiple shows and you only want one.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_show_filter","typeLabel":"string | null"},"youtube_download_videos":{"type":"boolean","title":"Youtube Download Videos","description":"If true (default), download each video file so downstream processors can read it from the `video_path` field. If false, only metadata + captions are emitted.","default":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_download_videos","typeLabel":"boolean"},"youtube_format_ladder":{"type":"string","title":"Youtube Format Ladder","description":"yt-dlp format selector. Defaults to a muxed-first ladder that avoids breaking on YouTube's DASH n-challenge when the current EJS signature solver is stale. See BUILD_LOG.md in the greenroom folder for the rationale.","default":"b[height\u003c=720]/bv*[height\u003c=720]+ba/best","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_format_ladder","typeLabel":"string"},"youtube_cookies_path":{"oneOf":[{"type":"string","title":"Youtube Cookies Path","description":"Optional path to a Netscape cookies file. Required for age-gated or members-only content.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Youtube Cookies Path","description":"Optional path to a Netscape cookies file. Required for age-gated or members-only content.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_cookies_path","typeLabel":"string | null"},"youtube_request_sleep":{"type":"number","maximum":30,"minimum":0,"title":"Youtube Request Sleep","description":"Seconds to sleep between yt-dlp requests. Default: 1.0.","default":1,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.youtube_request_sleep","typeLabel":"number"},"delay_between_requests":{"type":"number","maximum":60,"minimum":0,"title":"Delay Between Requests","description":"Delay in seconds between consecutive requests. Useful for polite crawling and avoiding rate limits. Default: 0 (no delay).","default":0,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13.delay_between_requests","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.13","typeLabel":"WebScraperExtractorParams · object"},{"type":"object","title":"CustomPluginParams","description":"Parameters for custom plugin extractors.\n\nThis model accepts any extractor_type that doesn't match the builtin extractors,\nallowing custom plugins to define their own parameters.","required":["extractor_type"],"example":{"split_method":"time","time_split_interval":10},"properties":{"extractor_type":{"type":"string","title":"Extractor Type","description":"Custom plugin extractor type (plugin name)","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.14.extractor_type","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.14","typeLabel":"CustomPluginParams · object"},{"type":"null","title":"Parameters","description":"Parameters for the feature extractor. Each extractor type has specific parameters. See the schema for your chosen extractor (e.g., MultimodalExtractorParams for multimodal_extractor).","example":{"split_method":"time","time_split_interval":10},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters.oneOf.15","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.parameters","typeLabel":"AudioFingerprintExtractorParams · object | ColbertExtractorParams · object | ColqwenExtractorParams · object | DocumentGraphExtractorParams · object | FaceIdentityExtractorParams · object | GeminiMultifileExtractorParams · object | ImageExtractorParams · object | MultimodalExtractorParams · object | PassthroughExtractorParams · object | ScrollingTextExtractorParams · object | TextExtractorParams · object | TranscodingExtractorParams · object | UniversalExtractorParams · object | WebScraperExtractorParams · object | CustomPluginParams · object | null"},"input_mappings":{"oneOf":[{"type":"object","title":"Input Mappings","description":"Mapping from extractor input names to source field paths. Tells the extractor which source fields to process. Single value: {'image': 'thumbnail_url'} maps one blob field to one extractor input. Array value: {'files': ['image', 'spec_pdf', 'description']} maps multiple blob fields to a single extractor input as a list — used by multi-file extractors like gemini_multifile_extractor that embed all blobs of an object into one embedding.","example":{"image":"product_image","text":"title"},"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.0.additionalProperties","typeLabel":"string | string[]"},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.0","typeLabel":"Input Mappings · object"},{"type":"array","items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"Key used in the constructed inputs payload.","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].source_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Source of the value (payload, literal, vector).","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].source_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].path","typeLabel":"string | null"},"override":{"oneOf":[{"title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].override.oneOf.0","typeLabel":"any"},{"type":"null","title":"Override","description":"Static value used when source_type is LITERAL. Overrides any path.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX].override.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.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":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1.items.[INDEX]","typeLabel":"InputMapping · object"},"title":"Input Mappings","description":"Mapping from extractor input names to source field paths. Tells the extractor which source fields to process. Single value: {'image': 'thumbnail_url'} maps one blob field to one extractor input. Array value: {'files': ['image', 'spec_pdf', 'description']} maps multiple blob fields to a single extractor input as a list — used by multi-file extractors like gemini_multifile_extractor that embed all blobs of an object into one embedding.","example":{"image":"product_image","text":"title"},"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings.oneOf.1","typeLabel":"InputMapping · object[]"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.input_mappings","typeLabel":"Input Mappings · object | InputMapping · object[]"},"field_passthrough":{"items":{"properties":{"source_path":{"type":"string","title":"Source Path","description":"REQUIRED. Path to the source field to copy. Simple fields: Use field name directly (e.g., 'title', 'campaign_id'). Nested fields: Use dot notation (e.g., 'metadata.author', 'config.model.version'). The field must exist in the source bucket schema or upstream collection schema. Without target_path, nested fields are flattened: 'metadata.author' becomes 'author' in output.","examples":["title","campaign_id","metadata.author","config.model_version","category"],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].source_path","typeLabel":"string"},"target_path":{"oneOf":[{"type":"string","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Path","description":"OPTIONAL. Target field name in output document. If NOT PROVIDED: Uses source_path name (or last component for nested paths). - 'title' → 'title' - 'metadata.author' → 'author' If PROVIDED: Uses this exact name in output. - source_path='doc_title', target_path='title' → 'title' - source_path='metadata.author', target_path='contributor' → 'contributor' Use cases: - Rename fields for cleaner API schemas - Avoid name conflicts with extractor outputs - Standardize field names across different sources Constraints: - Must not conflict with system fields (document_id, collection_id, etc.) - Must not conflict with extractor output fields - Must be a valid field name (alphanumeric, underscores, hyphens)","example":"title","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].target_path","typeLabel":"string | null"},"default":{"oneOf":[{"title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default.oneOf.0","typeLabel":"any"},{"type":"null","title":"Default","description":"OPTIONAL. Default value if source field doesn't exist or is None. If NOT PROVIDED and field missing: Field is omitted from output document. If PROVIDED and field missing: Field is included with this default value. Type should match expected field type (string, int, list, dict, etc.).","example":"Unknown","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].default","typeLabel":"any | null"},"required":{"type":"boolean","title":"Required","description":"OPTIONAL. Whether this field MUST exist in source. If True and field missing: Raises validation error, processing fails. If False and field missing: Field omitted (or default used if provided). Use True for: Critical identifiers, required business fields. Use False for: Optional metadata, nice-to-have fields. Default: False (field is optional).","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX].required","typeLabel":"boolean"}},"type":"object","required":["source_path"],"title":"FieldPassthrough","description":"Configuration for passing fields from source to output documents.\n\nSimple field passthrough: specify which fields to copy from source (bucket object\nor upstream collection document) to the output documents alongside extractor outputs.\n\nUse Cases:\n - Preserve identifiers: campaign_id, product_sku, user_id\n - Keep metadata: category, tags, author, timestamp\n - Maintain business context: priority, status, region\n - Extract nested values: metadata.author, config.model_version\n - Rename fields for cleaner schemas: doc_title → title\n\nField Selection:\n - WITHOUT field_passthrough: Only extractor outputs appear in documents\n - WITH field_passthrough: Specified fields + extractor outputs\n - WITH include_all_source_fields=True: All source fields + extractor outputs\n\nField Naming:\n - WITHOUT target_path: Output uses source name (or last component for nested)\n - \"title\" → \"title\"\n - \"metadata.author\" → \"author\"\n - WITH target_path: Output uses specified name\n - source_path=\"doc_title\", target_path=\"title\" → \"title\"\n - source_path=\"metadata.author\", target_path=\"contributor\" → \"contributor\"\n\nRequirements:\n - source_path is REQUIRED - specifies which field to copy (supports dot notation)\n - target_path is OPTIONAL - rename field in output (default: auto-derived name)\n - default is OPTIONAL - provides fallback if field missing (default: omit field)\n - required is OPTIONAL - errors if field missing (default: false, omit field)","examples":[{"description":"Simple field passthrough","required":true,"source_path":"title"},{"default":"uncategorized","description":"Field with default value","source_path":"category"},{"description":"Field renaming for cleaner schema","source_path":"doc_title","target_path":"title"},{"description":"Nested field extraction with custom name","source_path":"metadata.author","target_path":"contributor"},{"description":"Required field with renaming","required":true,"source_path":"campaign_id","target_path":"campaign"},{"default":"normal","description":"Optional field with default and renaming","required":false,"source_path":"metadata.priority","target_path":"priority"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough.items.[INDEX]","typeLabel":"FieldPassthrough · object"},"type":"array","title":"Field Passthrough","description":"NOT REQUIRED. List of specific fields to pass through from source to output documents. These fields are included alongside extractor-computed features (embeddings, detections, etc.). Empty list = only extractor outputs in documents (default behavior). With entries = specified fields + extractor outputs in documents. \n\nHow It Works:\n1. During processing, fields are extracted from source object/document\n2. They appear in output documents at the root level\n3. Field filtering happens automatically (only listed fields included)\n4. Use target_path to rename fields for cleaner schemas\n\nCommon Use Cases:\n- Preserve identifiers: campaign_id, product_sku, order_id\n- Keep metadata: category, tags, author, created_at\n- Enable filtering: department, status, priority, region\n- Maintain context: title, description, source_url\n\nBehavior:\n- Works with include_all_source_fields=False (default): ONLY these fields included\n- Works with include_all_source_fields=True: These configs used for renaming/defaults\n- Fields must exist in source bucket_schema or upstream collection output_schema\n- Missing optional fields are omitted (unless default provided)\n- Missing required fields cause processing errors\n\nOutput Schema:\noutput_schema = field_passthrough fields + extractor output fields\nExample: ['title', 'category', 'text_extractor_v1_embedding']","examples":[[{"required":true,"source_path":"title"},{"required":true,"source_path":"campaign_id"}],[{"default":"uncategorized","source_path":"category"},{"source_path":"metadata.author","target_path":"author"}]],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.field_passthrough","typeLabel":"FieldPassthrough · object[]"},"include_all_source_fields":{"type":"boolean","title":"Include All Source Fields","description":"NOT REQUIRED. Whether to include ALL fields from source object/document in output. Default: False (only field_passthrough fields included). \n\nWhen False (RECOMMENDED):\n- Only fields listed in field_passthrough are included in output\n- Creates clean, predictable output schemas\n- Prevents data leakage of unwanted fields\n- Output = field_passthrough fields + extractor outputs\n\nWhen True (USE WITH CAUTION):\n- ALL source fields are included in output documents\n- field_passthrough still used for renaming/defaults/requirements\n- Can result in large documents if source has many fields\n- Can leak sensitive or unnecessary data\n- Output = all source fields + extractor outputs\n\nUse True When:\n- You want to preserve complete source data\n- Source has limited, well-defined fields\n- Downstream processing needs all context\n\nUse False When (MOST CASES):\n- You want clean, controlled output schemas\n- Source has many fields you don't need\n- You want explicit field selection\n- You're concerned about document size\n\nExamples:\nFalse: source={a,b,c,d} + passthrough=[a,b] → output={a,b,embedding}\nTrue: source={a,b,c,d} + passthrough=[a→x] → output={x,b,c,d,embedding}","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor.include_all_source_fields","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","required":["feature_extractor_name","version","feature_extractor_id"],"title":"FeatureExtractorConfig","description":"Single feature extractor applied at this stage","examples":[{"description":"Text extractor with field passthrough","feature_extractor_name":"text_extractor","field_passthrough":[{"required":true,"source_path":"title"},{"source_path":"author"}],"input_mappings":{"text":"content"},"parameters":{"model":"text-embedding-3-small"},"version":"v1"},{"description":"Video extractor with campaign metadata","feature_extractor_name":"multimodal_extractor","field_passthrough":[{"source_path":"campaign_id"},{"source_path":"duration_seconds"}],"input_mappings":{"video":"video_url"},"parameters":{"fps":1},"version":"v1"},{"description":"Image extractor with all source fields","feature_extractor_name":"image_extractor","include_all_source_fields":true,"input_mappings":{"image":"product_image"},"parameters":{"model":"clip-vit-base-patch32"},"version":"v1"},{"description":"Text extractor with field renaming","feature_extractor_name":"text_extractor","field_passthrough":[{"source_path":"metadata.author","target_path":"author"},{"source_path":"metadata.created_at","target_path":"created_at"}],"input_mappings":{"text":"content"},"version":"v1"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].feature_extractor","typeLabel":"FeatureExtractorConfig · object"},"output_schema":{"properties":{"properties":{"additionalProperties":{"properties":{"type":{"type":"string","enum":["string","number","integer","float","boolean","object","array","date","datetime","text","image","audio","video","pdf","excel"],"title":"BucketSchemaFieldType","description":"Supported data types for bucket schema fields.\n\nTypes fall into two categories:\n\n1. **Metadata Types** (JSON types):\n - Stored as object metadata\n - Standard JSON-compatible types\n - Not processed by extractors (unless explicitly mapped)\n - Examples: string, number, boolean, date\n\n2. **File Types** (blobs):\n - Stored as files/blobs\n - Processed by extractors\n - Require file content (URL or base64)\n - Examples: text, image, video, pdf\n\n**GIF Special Handling**:\n GIF files can be declared as either IMAGE or VIDEO type:\n\n - As IMAGE: GIF is embedded as a single static image (first frame)\n - As VIDEO: GIF is decomposed frame-by-frame with embeddings per frame\n\n The multimodal extractor detects GIFs via MIME type (image/gif) and routes\n them based on your schema declaration. Use VIDEO for animated GIFs where\n frame-level search is needed, IMAGE for static/thumbnail use cases.\n\nNOTE: For retriever input schemas that need to accept document references\n(e.g., \"find similar documents\"), use RetrieverInputSchemaFieldType instead,\nwhich includes all bucket types plus document_reference.","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.type","typeLabel":"enum\u003cstring>"},"default":{"oneOf":[{"title":"Default"},{"type":"null","title":"Default","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.default.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.default","typeLabel":"null"},"items":{"oneOf":[{},{"type":"null","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.\\items.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.\\items","typeLabel":"null"},"properties":{"oneOf":[{"type":"object","title":"Properties","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.properties.oneOf.0","typeLabel":"Properties · object"},{"type":"null","title":"Properties","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.properties.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.properties","typeLabel":"Properties · object | null"},"examples":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.examples.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.examples.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Examples","description":"OPTIONAL. List of example values for this field. Used by Apps to show example inputs in the UI. Provide multiple diverse examples when possible.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.examples","typeLabel":"any[] | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.description","typeLabel":"string | null"},"enum":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.enum.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Enum","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.enum.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Enum","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.enum.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.enum","typeLabel":"any[] | null"},"required":{"oneOf":[{"type":"boolean","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.required.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Required","default":false,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.required.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties.required","typeLabel":"boolean | null"}},"additionalProperties":true,"type":"object","required":["type"],"title":"BucketSchemaField","description":"Schema field definition for bucket objects.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties.additionalProperties","typeLabel":"BucketSchemaField · object"},"type":"object","title":"Properties","description":"REQUIRED. Map of field names to their type definitions. Each field must have a 'type' from the supported types: metadata types (string, number, integer, float, boolean, object, array, date, datetime) or file/blob types (text, image, audio, video, pdf, excel). NOTE: Use Mixpeek types, NOT JSON Schema types — e.g. use 'string' not 'keyword', 'text' for text blobs, 'image' for image blobs. Example: {\"title\": {\"type\": \"string\"}, \"photo\": {\"type\": \"image\"}}","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema.properties","typeLabel":"Properties · object"}},"additionalProperties":true,"type":"object","required":["properties"],"title":"BucketSchema","description":"Output schema produced by this processing stage","isRequired":true,"uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX].output_schema","typeLabel":"BucketSchema · object"}},"type":"object","required":["source_config","feature_extractor","output_schema"],"title":"SingleLineageEntry","description":"Single entry in the lineage chain of a collection.\n\nEach lineage entry represents one processing stage with one feature extractor.","uniqueKey":"results.items.[INDEX].source_lineage.items.[INDEX]","typeLabel":"SingleLineageEntry · object"},"type":"array","title":"Source Lineage","description":"NOT REQUIRED (auto-computed). Lineage chain showing complete processing history. Each entry contains: source_config, feature_extractor, output_schema for one tier. Length indicates processing depth (1 = tier 1, 2 = tier 2, etc.). Use for: Understanding multi-tier pipelines, visualizing decomposition trees.","examples":[[],[{"output_schema":{},"source_config":{"bucket_id":"bkt_videos","type":"bucket"}}]],"uniqueKey":"results.items.[INDEX].source_lineage","typeLabel":"SingleLineageEntry · object[]"},"index_map":{"oneOf":[{"type":"object","title":"Index Map","description":"Which feature URI answers each URI a search names, for a collection that opted into feature URIs as its version contract. Null (the default) means not opted in: a search uses the URI it names. Each key is one of the collection's own feature URIs; each value is a URI the collection holds vectors for, listed in `vector_indexes` (its own, or one a completed `reembed.target_feature_uri` added). Switching to a new embedding model and rolling back are both PATCH /v1/collections/{collection_id} with a new map; neither rewrites a vector. Every search result reports the URI that scored it in `feature_uri`.","example":{"mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1":"mixpeek://text_extractor@v1/all_minilm_l6_v2_v1"},"additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].index_map.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].index_map.oneOf.0","typeLabel":"Index Map · object"},{"type":"null","title":"Index Map","description":"Which feature URI answers each URI a search names, for a collection that opted into feature URIs as its version contract. Null (the default) means not opted in: a search uses the URI it names. Each key is one of the collection's own feature URIs; each value is a URI the collection holds vectors for, listed in `vector_indexes` (its own, or one a completed `reembed.target_feature_uri` added). Switching to a new embedding model and rolling back are both PATCH /v1/collections/{collection_id} with a new map; neither rewrites a vector. Every search result reports the URI that scored it in `feature_uri`.","example":{"mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1":"mixpeek://text_extractor@v1/all_minilm_l6_v2_v1"},"uniqueKey":"results.items.[INDEX].index_map.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].index_map","typeLabel":"Index Map · object | null"},"vector_indexes":{"items":{"properties":{"name":{"type":"string","description":"User-facing index name.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].name","typeLabel":"string"},"feature_uri":{"oneOf":[{"type":"string","description":"mixpeek:// feature URI on extractor-backed collections; the bare index name on BYO indexes.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].feature_uri.oneOf.0","typeLabel":"string"},{"type":"null","description":"mixpeek:// feature URI on extractor-backed collections; the bare index name on BYO indexes.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].feature_uri.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].feature_uri","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","description":"single or multi.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"single or multi.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].type","typeLabel":"string | null"},"index":{"oneOf":[{"type":"object","description":"Nested index config: name (storage name), dimensions, distance, inference_name.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].index.oneOf.0","typeLabel":"object"},{"type":"null","description":"Nested index config: name (storage name), dimensions, distance, inference_name.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].index.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].index","typeLabel":"object | null"},"source":{"oneOf":[{"type":"string","enum":["namespace_vector_config",null],"description":"'namespace_vector_config' when the entry was synthesized from a promoted/direct-upsert namespace vector config; absent for extractor-derived indexes.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["namespace_vector_config",null],"description":"'namespace_vector_config' when the entry was synthesized from a promoted/direct-upsert namespace vector config; absent for extractor-derived indexes.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX].source","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":true,"type":"object","title":"CollectionVectorIndex","description":"One vector index exposed on a collection. Shape is stable for the fields below; additional keys may appear.","uniqueKey":"results.items.[INDEX].vector_indexes.items.[INDEX]","typeLabel":"CollectionVectorIndex · object"},"type":"array","title":"Vector Indexes","description":"NOT REQUIRED (auto-computed). Vector indexes for semantic search. Populated from feature_extractor.required_vector_indexes on extractor-backed collections, and from the namespace vector config on promoted or direct-upsert (BYO) collections, where each entry carries source='namespace_vector_config'. Defines which embeddings are indexed, their dimensions and distance metric. Use for understanding search capabilities and debugging vector queries. An entry's `source` distinguishes a namespace-declared index from an extractor-derived one; extractor-derived entries omit it. The nested `index` object carries the storage name, dimensions, distance and inference_name.","examples":[[],[{"feature_uri":"emb","index":{"dimensions":3072,"distance":"cosine","inference_name":"text-embedding-3-large","name":"emb"},"name":"emb","source":"namespace_vector_config","type":"single"}]],"uniqueKey":"results.items.[INDEX].vector_indexes","typeLabel":"CollectionVectorIndex · object[]"},"payload_indexes":{"items":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].payload_indexes.items.[INDEX]","typeLabel":"any"},"type":"array","title":"Payload Indexes","description":"NOT REQUIRED (auto-computed from extractor + namespace). Payload indexes for filtering. Enables efficient filtering on metadata fields, timestamps, IDs. Populated from: extractor requirements + namespace defaults. Use for: Understanding which fields support fast filtering.","examples":[[],[{"field_name":"collection_id","type":"keyword"}]],"uniqueKey":"results.items.[INDEX].payload_indexes","typeLabel":"any[]"},"embedding_task":{"oneOf":[{"type":"string","title":"Embedding Task","description":"Override the embedding task hint for instruction-aware models (E5, Gemini). Defaults to 'retrieval_document' for indexing pipelines. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Applied to all task-aware embedding models in this collection's extractor pipeline.","uniqueKey":"results.items.[INDEX].embedding_task.oneOf.0","typeLabel":"string"},{"type":"null","title":"Embedding Task","description":"Override the embedding task hint for instruction-aware models (E5, Gemini). Defaults to 'retrieval_document' for indexing pipelines. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Applied to all task-aware embedding models in this collection's extractor pipeline.","uniqueKey":"results.items.[INDEX].embedding_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].embedding_task","typeLabel":"string | null"},"enabled":{"type":"boolean","title":"Enabled","description":"NOT REQUIRED (defaults to True). Whether the collection accepts new documents. False: Collection exists but won't process new objects. True: Active and processing. Use for: Temporarily disabling collections without deletion.","default":true,"examples":[true,false],"uniqueKey":"results.items.[INDEX].enabled","typeLabel":"boolean"},"disabled_reason":{"oneOf":[{"type":"object","title":"CollectionDisabledReason","description":"Set when the platform disabled this collection, saying why; null when it is enabled or was disabled by a caller. A collection whose source collection was deleted reads code 'source_collection_deleted' with the deleted collection's id and name. Cleared when the collection is enabled again.","required":["code","message"],"properties":{"code":{"type":"string","const":"source_collection_deleted","title":"Code","description":"Machine-readable cause. 'source_collection_deleted': the collection this one is sourced from (directly, or further upstream) was deleted, so this one can never run again. When a customer deleted it, this collection's documents were removed too; `message` says whether they were. A cluster's output collection is never disabled this way.","isRequired":true,"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"The cause in plain words.","isRequired":true,"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.message","typeLabel":"string"},"source_collection_id":{"oneOf":[{"type":"string","title":"Source Collection Id","description":"ID of the deleted collection.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Collection Id","description":"ID of the deleted collection.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_id","typeLabel":"string | null"},"source_collection_name":{"oneOf":[{"type":"string","title":"Source Collection Name","description":"Name the deleted collection had.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Collection Name","description":"Name the deleted collection had.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.source_collection_name","typeLabel":"string | null"},"disabled_at":{"oneOf":[{"type":"string","title":"Disabled At","description":"When the platform disabled this collection.","format":"date-time","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.disabled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Disabled At","description":"When the platform disabled this collection.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.disabled_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0.disabled_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.0","typeLabel":"CollectionDisabledReason · object"},{"type":"null","description":"Set when the platform disabled this collection, saying why; null when it is enabled or was disabled by a caller. A collection whose source collection was deleted reads code 'source_collection_deleted' with the deleted collection's id and name. Cleared when the collection is enabled again.","uniqueKey":"results.items.[INDEX].disabled_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].disabled_reason","typeLabel":"CollectionDisabledReason · object | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"NOT REQUIRED. Additional user-defined metadata for the collection. Arbitrary key-value pairs for custom organization, tracking, configuration. Not used by the platform - purely for user purposes. Common uses: team ownership, project tags, deployment environment.","example":{"environment":"production","project":"Q4_campaign","team":"data-science"},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"NOT REQUIRED. Additional user-defined metadata for the collection. Arbitrary key-value pairs for custom organization, tracking, configuration. Not used by the platform - purely for user purposes. Common uses: team ownership, project tags, deployment environment.","example":{"environment":"production","project":"Q4_campaign","team":"data-science"},"uniqueKey":"results.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].metadata","typeLabel":"Metadata · object | null"},"schedule":{"oneOf":[{"type":"object","title":"CollectionScheduleConfig","description":"NOT REQUIRED. Schedule configuration for automatic re-processing. When set, a COLLECTION_TRIGGER trigger is created and linked to this collection.","required":["trigger_type","schedule_config"],"properties":{"trigger_type":{"type":"string","title":"Trigger Type","description":"Schedule type: 'cron' or 'interval'","examples":["cron","interval"],"isRequired":true,"uniqueKey":"results.items.[INDEX].schedule.oneOf.0.trigger_type","typeLabel":"string"},"schedule_config":{"additionalProperties":true,"type":"object","title":"Schedule Config","description":"Schedule configuration. For cron: {cron_expression, timezone}. For interval: {interval_seconds, start_immediately}.","examples":[{"cron_expression":"0 2 * * *","timezone":"UTC"},{"interval_seconds":21600,"start_immediately":false}],"isRequired":true,"uniqueKey":"results.items.[INDEX].schedule.oneOf.0.schedule_config","typeLabel":"Schedule Config · object"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Human-readable description of the schedule.","uniqueKey":"results.items.[INDEX].schedule.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Human-readable description of the schedule.","uniqueKey":"results.items.[INDEX].schedule.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].schedule.oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"results.items.[INDEX].schedule.oneOf.0","typeLabel":"CollectionScheduleConfig · object"},{"type":"null","description":"NOT REQUIRED. Schedule configuration for automatic re-processing. When set, a COLLECTION_TRIGGER trigger is created and linked to this collection.","uniqueKey":"results.items.[INDEX].schedule.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].schedule","typeLabel":"CollectionScheduleConfig · object | null"},"trigger_id":{"oneOf":[{"type":"string","title":"Trigger Id","description":"NOT REQUIRED. ID of the linked trigger for scheduled re-processing. Automatically set when a schedule is configured.","uniqueKey":"results.items.[INDEX].trigger_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Trigger Id","description":"NOT REQUIRED. ID of the linked trigger for scheduled re-processing. Automatically set when a schedule is configured.","uniqueKey":"results.items.[INDEX].trigger_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].trigger_id","typeLabel":"string | null"},"created_at":{"oneOf":[{"type":"string","title":"Created At","description":"Timestamp when the collection was created. Automatically set by the system when the collection is first saved to the database.","format":"date-time","uniqueKey":"results.items.[INDEX].created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Created At","description":"Timestamp when the collection was created. Automatically set by the system when the collection is first saved to the database.","uniqueKey":"results.items.[INDEX].created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].created_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"oneOf":[{"type":"string","title":"Updated At","description":"Timestamp when the collection was last updated. Automatically updated by the system whenever the collection is modified.","format":"date-time","uniqueKey":"results.items.[INDEX].updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Updated At","description":"Timestamp when the collection was last updated. Automatically updated by the system whenever the collection is modified.","uniqueKey":"results.items.[INDEX].updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time> | null"},"lifecycle_state":{"type":"string","title":"Lifecycle State","description":"Storage lifecycle state: 'active' (vector store + S3), 'cold' (S3 only), 'archived' (metadata only). Managed via lifecycle API.","default":"active","uniqueKey":"results.items.[INDEX].lifecycle_state","typeLabel":"string"},"s3_vector_index":{"oneOf":[{"type":"string","title":"S3 Vector Index","description":"S3 Vectors index name for this collection (e.g. 'col_{collection_id}').","uniqueKey":"results.items.[INDEX].s3_vector_index.oneOf.0","typeLabel":"string"},{"type":"null","title":"S3 Vector Index","description":"S3 Vectors index name for this collection (e.g. 'col_{collection_id}').","uniqueKey":"results.items.[INDEX].s3_vector_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].s3_vector_index","typeLabel":"string | null"},"last_lifecycle_transition":{"oneOf":[{"type":"string","title":"Last Lifecycle Transition","description":"Timestamp of the most recent lifecycle state change.","format":"date-time","uniqueKey":"results.items.[INDEX].last_lifecycle_transition.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Last Lifecycle Transition","description":"Timestamp of the most recent lifecycle state change.","uniqueKey":"results.items.[INDEX].last_lifecycle_transition.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].last_lifecycle_transition","typeLabel":"string\u003cdate-time> | null"},"tiering_rules":{"oneOf":[{"type":"array","items":{"properties":{"rule_type":{"type":"string","enum":["auto_evict","auto_archive","auto_rehydrate"],"title":"Rule Type","isRequired":true,"uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX].rule_type","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","title":"Enabled","default":false,"uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX].enabled","typeLabel":"boolean"},"threshold_days":{"oneOf":[{"type":"integer","title":"Threshold Days","uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX].threshold_days.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Threshold Days","uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX].threshold_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX].threshold_days","typeLabel":"integer | null"}},"type":"object","required":["rule_type"],"title":"TieringRule","description":"A single automatic storage tiering rule (V1: stored but not enforced).","uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0.items.[INDEX]","typeLabel":"TieringRule · object"},"title":"Tiering Rules","description":"Retired: stored and never enforced. Writes are refused; set `tiering` instead. Kept on reads so existing records still parse.","uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.0","typeLabel":"TieringRule · object[]"},{"type":"null","title":"Tiering Rules","description":"Retired: stored and never enforced. Writes are refused; set `tiering` instead. Kept on reads so existing records still parse.","uniqueKey":"results.items.[INDEX].tiering_rules.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering_rules","typeLabel":"TieringRule · object[] | null"},"tiering":{"oneOf":[{"type":"object","title":"TieringOverride","description":"This collection's override of the platform's collection tiering: `enabled`, `idle_days` ({cold, frozen}) and `exempt` with the reason. Unset parts inherit from the namespace, then from the platform default.","properties":{"enabled":{"oneOf":[{"type":"boolean","title":"Enabled","description":"Turn tiering on or off here; unset inherits from above.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enabled","description":"Turn tiering on or off here; unset inherits from above.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.enabled","typeLabel":"boolean | null"},"idle_days":{"oneOf":[{"type":"object","title":"TieringIdleDays","description":"Idle windows here; unset parts inherit from above.","properties":{"cold":{"oneOf":[{"type":"integer","title":"Cold","description":"Days without a use before the cold tier.","minimum":1,"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.cold.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cold","description":"Days without a use before the cold tier.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.cold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.cold","typeLabel":"integer | null"},"frozen":{"oneOf":[{"type":"integer","title":"Frozen","description":"Days without a use before the frozen tier.","minimum":1,"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.frozen.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Frozen","description":"Days without a use before the frozen tier.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.frozen.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0.frozen","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.0","typeLabel":"TieringIdleDays · object"},{"type":"null","description":"Idle windows here; unset parts inherit from above.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.idle_days","typeLabel":"TieringIdleDays · object | null"},"exempt":{"oneOf":[{"type":"string","title":"Exempt","description":"Opt out of tiering, with the reason (for example a legal hold). An exempt namespace or collection is never demoted.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.exempt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Exempt","description":"Opt out of tiering, with the reason (for example a legal hold). An exempt namespace or collection is never demoted.","uniqueKey":"results.items.[INDEX].tiering.oneOf.0.exempt.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering.oneOf.0.exempt","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"results.items.[INDEX].tiering.oneOf.0","typeLabel":"TieringOverride · object"},{"type":"null","description":"This collection's override of the platform's collection tiering: `enabled`, `idle_days` ({cold, frozen}) and `exempt` with the reason. Unset parts inherit from the namespace, then from the platform default.","uniqueKey":"results.items.[INDEX].tiering.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].tiering","typeLabel":"TieringOverride · object | null"},"document_count":{"oneOf":[{"type":"integer","title":"Document Count","description":"Number of documents in the collection","uniqueKey":"results.items.[INDEX].document_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Document Count","description":"Number of documents in the collection","uniqueKey":"results.items.[INDEX].document_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].document_count","typeLabel":"integer | null"},"schema_version":{"type":"integer","title":"Schema Version","description":"Version number for the output_schema. Increments automatically when schema is updated via document sampling. Used to track schema evolution and trigger downstream collection schema updates.","default":1,"uniqueKey":"results.items.[INDEX].schema_version","typeLabel":"integer"},"last_schema_sync":{"oneOf":[{"type":"string","title":"Last Schema Sync","description":"Timestamp of last automatic schema sync from document sampling. Used to debounce schema updates (prevents thrashing).","format":"date-time","uniqueKey":"results.items.[INDEX].last_schema_sync.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Last Schema Sync","description":"Timestamp of last automatic schema sync from document sampling. Used to debounce schema updates (prevents thrashing).","uniqueKey":"results.items.[INDEX].last_schema_sync.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].last_schema_sync","typeLabel":"string\u003cdate-time> | null"},"schema_sync_enabled":{"type":"boolean","title":"Schema Sync Enabled","description":"Whether automatic schema discovery and sync is enabled for this collection. When True, schema is periodically updated by sampling documents. When False, schema remains fixed at creation time.","default":true,"uniqueKey":"results.items.[INDEX].schema_sync_enabled","typeLabel":"boolean"},"document_schema":{"oneOf":[{"type":"object","title":"Document Schema","description":"NOT REQUIRED. JSON Schema for validating documents on create/update. When set with schema_validation='strict', non-conforming documents are rejected (422). When set with schema_validation='warn', violations are recorded but document is accepted. Schema follows JSON Schema draft-07 format. Only validates user-defined fields (system fields like _internal, collection_id, document_id are excluded from validation).","example":null,"additionalProperties":true,"uniqueKey":"results.items.[INDEX].document_schema.oneOf.0","typeLabel":"Document Schema · object"},{"type":"null","title":"Document Schema","description":"NOT REQUIRED. JSON Schema for validating documents on create/update. When set with schema_validation='strict', non-conforming documents are rejected (422). When set with schema_validation='warn', violations are recorded but document is accepted. Schema follows JSON Schema draft-07 format. Only validates user-defined fields (system fields like _internal, collection_id, document_id are excluded from validation).","example":null,"uniqueKey":"results.items.[INDEX].document_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].document_schema","typeLabel":"Document Schema · object | null"},"schema_validation":{"type":"string","enum":["strict","warn","off"],"title":"Schema Validation","description":"Document schema validation mode. 'strict': reject non-conforming documents with 422. 'warn': accept but attach _schema_violations field to the document. 'off': no validation (default, preserves current behavior).","default":"off","examples":["off","strict","warn"],"uniqueKey":"results.items.[INDEX].schema_validation","typeLabel":"enum\u003cstring>"},"taxonomy_applications":{"oneOf":[{"type":"array","items":{"properties":{"taxonomy_id":{"type":"string","title":"Taxonomy Id","description":"ID of the `TaxonomyModel` to execute.","isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].taxonomy_id","typeLabel":"string"},"execution_mode":{"type":"string","enum":["materialize"],"title":"TaxonomyExecutionMode","description":"Execution mode for taxonomy enrichment. Materializes results during ingestion.","default":"materialize","uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].execution_mode","typeLabel":"enum\u003cstring>"},"target_collection_id":{"oneOf":[{"type":"string","title":"Target Collection Id","description":"Optional collection to persist results into when `execution_mode` is 'materialize'. If omitted, the source collection is updated in-place.","uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].target_collection_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Collection Id","description":"Optional collection to persist results into when `execution_mode` is 'materialize'. If omitted, the source collection is updated in-place.","uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].target_collection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].target_collection_id","typeLabel":"string | null"},"scroll_filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Additional filters applied when scrolling the source collection before enrichment.","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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.case_sensitive.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.case_sensitive","typeLabel":"boolean | null"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.0","typeLabel":"LogicalOperator · object"},{"type":"null","description":"Additional filters applied when scrolling the source collection before enrichment.","uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].scroll_filters","typeLabel":"LogicalOperator · object | null"},"execution_phase":{"type":"integer","maximum":3,"minimum":1,"title":"Execution Phase","description":"Which phase this taxonomy runs in. Default: 1 (TAXONOMY phase, runs first). Valid values: 1=TAXONOMY, 2=CLUSTER, 3=ALERT. Lower phases run earlier.","default":1,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].execution_phase","typeLabel":"integer"},"priority":{"type":"integer","maximum":1000,"minimum":0,"title":"Priority","description":"Priority within the execution phase (higher = runs first)","default":0,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].priority","typeLabel":"integer"},"hierarchical_enrichment_style":{"type":"string","enum":["full_chain","best_match","combined"],"title":"HierarchicalEnrichmentStyle","description":"For hierarchical taxonomies, controls how enrichment fields are structured. 'full_chain': Each tier writes to tier-prefixed fields (tier1_id, tier2_id, etc.). 'best_match': Only deepest match stored (category_id, category_name, path[]). 'combined' (default): Both full chain AND best match summary fields.","default":"combined","uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX].hierarchical_enrichment_style","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"type":"object","required":["taxonomy_id"],"title":"TaxonomyApplicationConfig","description":"Configuration block that attaches a taxonomy to a collection.\n\nSupports execution phase ordering for unified post-processing with\ntaxonomies, clusters, and alerts.","examples":[{"execution_mode":"materialize","taxonomy_id":"tax_abc123"},{"execution_mode":"materialize","execution_phase":1,"priority":10,"target_collection_id":"col_enriched_v1","taxonomy_id":"tax_abc123"},{"execution_mode":"materialize","hierarchical_enrichment_style":"full_chain","taxonomy_id":"tax_iab_content"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0.items.[INDEX]","typeLabel":"TaxonomyApplicationConfig · object"},"title":"Taxonomy Applications","description":"NOT REQUIRED. List of taxonomies to apply to documents in this collection. Each entry specifies: taxonomy_id, optional target_collection_id, optional filters. Enrichments are materialized (persisted to documents) during ingestion. Empty/null if no taxonomies attached. Use for: Categorization, hierarchical classification.","example":null,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.0","typeLabel":"TaxonomyApplicationConfig · object[]"},{"type":"null","title":"Taxonomy Applications","description":"NOT REQUIRED. List of taxonomies to apply to documents in this collection. Each entry specifies: taxonomy_id, optional target_collection_id, optional filters. Enrichments are materialized (persisted to documents) during ingestion. Empty/null if no taxonomies attached. Use for: Categorization, hierarchical classification.","example":null,"uniqueKey":"results.items.[INDEX].taxonomy_applications.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_applications","typeLabel":"TaxonomyApplicationConfig · object[] | null"},"cluster_applications":{"oneOf":[{"type":"array","items":{"properties":{"cluster_id":{"type":"string","title":"Cluster Id","description":"ID of the cluster to execute (must exist and use this collection as input)","isRequired":true,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].cluster_id","typeLabel":"string"},"auto_execute_on_batch":{"type":"boolean","title":"Auto Execute On Batch","description":"Automatically execute cluster when batch processing completes for this collection. If False, cluster must be executed manually via API.","default":true,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].auto_execute_on_batch","typeLabel":"boolean"},"min_document_threshold":{"oneOf":[{"type":"integer","title":"Min Document Threshold","description":"Minimum number of documents required before executing cluster. If document_count \u003c threshold, clustering is skipped. Useful to avoid clustering on small datasets.","uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].min_document_threshold.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Min Document Threshold","description":"Minimum number of documents required before executing cluster. If document_count \u003c threshold, clustering is skipped. Useful to avoid clustering on small datasets.","uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].min_document_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].min_document_threshold","typeLabel":"integer | null"},"cooldown_seconds":{"type":"integer","title":"Cooldown Seconds","description":"Minimum time (in seconds) between automatic cluster executions. Prevents excessive re-clustering on frequent batch completions. Default: 3600 seconds (1 hour).","default":3600,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].cooldown_seconds","typeLabel":"integer"},"execution_phase":{"type":"integer","maximum":3,"minimum":1,"title":"Execution Phase","description":"Which phase this cluster runs in. Default: 2 (CLUSTER phase, after taxonomies). Valid values: 1=TAXONOMY, 2=CLUSTER, 3=ALERT. Lower phases run earlier.","default":2,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].execution_phase","typeLabel":"integer"},"priority":{"type":"integer","maximum":1000,"minimum":0,"title":"Priority","description":"Priority within the execution phase (higher = runs first)","default":0,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX].priority","typeLabel":"integer"}},"type":"object","required":["cluster_id"],"title":"ClusterApplicationConfig","description":"Configuration for automatic cluster execution on collection.\n\nSimilar to TaxonomyApplicationConfig, this attaches a cluster to a collection\nand defines when/how it should be automatically executed.\n\nUsed in CollectionModel.cluster_applications field.\n\nSupports execution phase ordering for unified post-processing with\ntaxonomies, clusters, and alerts.","examples":[{"auto_execute_on_batch":true,"cluster_id":"clust_product_categories","cooldown_seconds":3600,"min_document_threshold":100},{"auto_execute_on_batch":true,"cluster_id":"clust_user_segments","cooldown_seconds":7200,"execution_phase":2,"min_document_threshold":500,"priority":10}],"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0.items.[INDEX]","typeLabel":"ClusterApplicationConfig · object"},"title":"Cluster Applications","description":"NOT REQUIRED. List of clusters to automatically execute when batch processing completes. Each entry specifies: cluster_id, auto_execute_on_batch, min_document_threshold, cooldown_seconds. Clusters enrich source documents with cluster assignments (cluster_id, cluster_label, etc.). Empty/null if no clusters attached. Use for: Segmentation, grouping, pattern discovery.","example":null,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.0","typeLabel":"ClusterApplicationConfig · object[]"},{"type":"null","title":"Cluster Applications","description":"NOT REQUIRED. List of clusters to automatically execute when batch processing completes. Each entry specifies: cluster_id, auto_execute_on_batch, min_document_threshold, cooldown_seconds. Clusters enrich source documents with cluster assignments (cluster_id, cluster_label, etc.). Empty/null if no clusters attached. Use for: Segmentation, grouping, pattern discovery.","example":null,"uniqueKey":"results.items.[INDEX].cluster_applications.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].cluster_applications","typeLabel":"ClusterApplicationConfig · object[] | null"},"alert_applications":{"oneOf":[{"type":"array","items":{"properties":{"alert_id":{"type":"string","title":"Alert Id","description":"ID of the alert to execute","examples":["alt_safety_001","alt_content_moderation"],"isRequired":true,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].alert_id","typeLabel":"string"},"input_mappings":{"items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"The retriever input parameter name","examples":["query_embedding","collection_id","category_filter"],"isRequired":true,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].input_key","typeLabel":"string"},"source":{"properties":{"source_type":{"type":"string","enum":["document_field","constant","source_blob"],"title":"Source Type","description":"Where the value comes from","isRequired":true,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.source_type","typeLabel":"enum\u003cstring>"},"path":{"oneOf":[{"type":"string","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path","typeLabel":"string | null"},"value":{"oneOf":[{"title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value.oneOf.0","typeLabel":"any"},{"type":"null","title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value","typeLabel":"any | null"}},"type":"object","required":["source_type"],"title":"InputMappingSource","description":"Where to get the value from","isRequired":true,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source","typeLabel":"InputMappingSource · object"}},"type":"object","required":["input_key","source"],"title":"AlertInputMapping","description":"Maps a retriever input to a document field or constant.\n\nInput mappings define how to construct retriever inputs from the\ningested document. This allows the same alert to be used with\ndifferent collections that have different field structures.\n\nExamples:\n # Map document embedding to retriever query\n {\n \"input_key\": \"query_embedding\",\n \"source\": {\"source_type\": \"document_field\", \"path\": \"features.video_embedding\"}\n }\n\n # Use constant collection for search target\n {\n \"input_key\": \"collection_id\",\n \"source\": {\"source_type\": \"constant\", \"value\": \"col_known_incidents\"}\n }\n\nAttributes:\n input_key: The retriever input parameter name\n source: Where to get the value from","examples":[{"input_key":"query_embedding","source":{"path":"features.video_embedding","source_type":"document_field"}},{"input_key":"target_collection","source":{"source_type":"constant","value":"col_known_incidents"}}],"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings.items.[INDEX]","typeLabel":"AlertInputMapping · object"},"type":"array","minItems":1,"title":"Input Mappings","description":"Map document fields or constants to retriever input parameters","isRequired":true,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].input_mappings","typeLabel":"AlertInputMapping · object[]"},"execution_mode":{"type":"string","enum":["on_ingest","scheduled","on_demand"],"title":"AlertExecutionMode","description":"When this alert should execute","default":"on_ingest","uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].execution_mode","typeLabel":"enum\u003cstring>"},"execution_phase":{"type":"integer","enum":[1,2,3,4],"title":"PostProcessingPhase","description":"Which phase this alert runs in. Default: ALERT (phase 3, after taxonomies and clusters)","default":3,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].execution_phase","typeLabel":"enum\u003cinteger>"},"priority":{"type":"integer","maximum":1000,"minimum":0,"title":"Priority","description":"Priority within the execution phase (higher = runs first)","default":0,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX].priority","typeLabel":"integer"}},"additionalProperties":false,"type":"object","required":["alert_id","input_mappings"],"title":"AlertApplicationConfig","description":"Configuration for attaching an alert to a collection.\n\nThe key responsibility here is INPUT MAPPING: connecting document\nfields (or constants) to the retriever's expected inputs.\n\nNote: Filtering logic (scroll_filters, min_score, etc.) belongs in\nthe retriever, not here. The retriever owns all query semantics.\n\nUse Cases:\n - Attach safety alert to video upload collection\n - Configure different field mappings for different collections\n - Set execution priority for multiple alerts\n\nAttributes:\n alert_id: ID of the alert to execute\n execution_mode: When this alert should execute\n input_mappings: Map document fields or constants to retriever inputs\n execution_phase: Which phase this alert runs in (default: ALERT)\n priority: Priority within the execution phase (higher = runs first)","examples":[{"alert_id":"alt_safety_001","execution_mode":"on_ingest","execution_phase":3,"input_mappings":[{"input_key":"query_embedding","source":{"path":"features.video_embedding","source_type":"document_field"}},{"input_key":"target_collection","source":{"source_type":"constant","value":"col_known_incidents"}}],"priority":100}],"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0.items.[INDEX]","typeLabel":"AlertApplicationConfig · object"},"title":"Alert Applications","description":"NOT REQUIRED. List of alerts to automatically execute when documents are ingested. Each entry specifies: alert_id, execution_mode, input_mappings, execution_phase, priority. Alerts run retrievers on ingested documents and send notifications when matches are found. Empty/null if no alerts attached. Use for: Content monitoring, safety detection, compliance alerts.","example":null,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.0","typeLabel":"AlertApplicationConfig · object[]"},{"type":"null","title":"Alert Applications","description":"NOT REQUIRED. List of alerts to automatically execute when documents are ingested. Each entry specifies: alert_id, execution_mode, input_mappings, execution_phase, priority. Alerts run retrievers on ingested documents and send notifications when matches are found. Empty/null if no alerts attached. Use for: Content monitoring, safety detection, compliance alerts.","example":null,"uniqueKey":"results.items.[INDEX].alert_applications.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].alert_applications","typeLabel":"AlertApplicationConfig · object[] | null"},"retriever_enrichments":{"oneOf":[{"type":"array","items":{"properties":{"retriever_id":{"type":"string","title":"Retriever Id","description":"ID of the retriever to execute","examples":["ret_classifier_001","ret_cross_reference"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].retriever_id","typeLabel":"string"},"input_mappings":{"items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"The retriever input parameter name","examples":["query","query_embedding","collection_id"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].input_key","typeLabel":"string"},"source":{"properties":{"source_type":{"type":"string","enum":["document_field","constant","source_blob"],"title":"Source Type","description":"Where the value comes from","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.source_type","typeLabel":"enum\u003cstring>"},"path":{"oneOf":[{"type":"string","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.path","typeLabel":"string | null"},"value":{"oneOf":[{"title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value.oneOf.0","typeLabel":"any"},{"type":"null","title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source.value","typeLabel":"any | null"}},"type":"object","required":["source_type"],"title":"InputMappingSource","description":"Where to get the value from (document field or constant)","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX].source","typeLabel":"InputMappingSource · object"}},"type":"object","required":["input_key","source"],"title":"EnrichmentInputMapping","description":"Maps a document field or constant to a retriever input parameter.\n\nDefines how to construct retriever inputs from the document being enriched.\n\nAttributes:\n input_key: The retriever input parameter name\n source: Where to get the value from (document field or constant)","examples":[{"input_key":"query","source":{"path":"title","source_type":"document_field"}},{"input_key":"collection_id","source":{"source_type":"constant","value":"col_reference_data"}}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings.items.[INDEX]","typeLabel":"EnrichmentInputMapping · object"},"type":"array","minItems":1,"title":"Input Mappings","description":"Map document fields or constants to retriever input parameters","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].input_mappings","typeLabel":"EnrichmentInputMapping · object[]"},"write_back_fields":{"items":{"properties":{"source_field":{"type":"string","title":"Source Field","description":"Field path in retriever result (dot notation supported)","examples":["ai_safety_insight.text","category","score"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].source_field","typeLabel":"string"},"target_field":{"type":"string","title":"Target Field","description":"Field name to write on the document","examples":["_enrichment_category","safety_score","related_items"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].target_field","typeLabel":"string"},"mode":{"type":"string","enum":["first","all_as_array","concat"],"title":"Mode","description":"How to aggregate values from multiple results. 'first': top result only. 'all_as_array': collect into list. 'concat': join strings with ', '.","default":"first","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"type":{"oneOf":[{"type":"string","title":"Type","description":"OPTIONAL. The type a retriever_transform collection declares for target_field in its output schema. Leave it unset for a string. Set 'number' or 'integer' for a time or a position, so a filter or sort on the field compares numbers. Retriever enrichments ignore it.","enum":["string","number","integer","boolean"],"example":"number","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Type","description":"OPTIONAL. The type a retriever_transform collection declares for target_field in its output schema. Leave it unset for a string. Set 'number' or 'integer' for a time or a position, so a filter or sort on the field compares numbers. Retriever enrichments ignore it.","example":"number","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"}},"type":"object","required":["source_field","target_field"],"title":"WriteBackFieldMapping","description":"Maps a field from retriever results back to the document.\n\nControls how retriever result fields are written to the source document.\n\nAttributes:\n source_field: Field path in retriever result (dot notation for nested fields)\n target_field: Field name to write on the document\n mode: How to aggregate values across multiple results:\n - \"first\": Write value from first result only (default)\n - \"all_as_array\": Collect values from all results into a list\n - \"concat\": Concatenate string values with \", \" separator","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields.items.[INDEX]","typeLabel":"WriteBackFieldMapping · object"},"type":"array","minItems":1,"title":"Write Back Fields","description":"Which retriever result fields to write back to the document","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].write_back_fields","typeLabel":"WriteBackFieldMapping · object[]"},"execution_phase":{"type":"integer","enum":[1,2,3,4],"title":"PostProcessingPhase","description":"Which phase this enrichment runs in. Default: RETRIEVER_ENRICHMENT (phase 4, after taxonomies, clusters, and alerts)","default":4,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].execution_phase","typeLabel":"enum\u003cinteger>"},"priority":{"type":"integer","maximum":1000,"minimum":0,"title":"Priority","description":"Priority within the execution phase (higher = runs first)","default":0,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].priority","typeLabel":"integer"},"scroll_filters":{"oneOf":[{"type":"object","title":"LogicalOperator","description":"Optional filters to select which documents to enrich","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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.AND.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.OR.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FilterCondition · object"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.NOT.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_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":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.case_sensitive.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0.case_sensitive","typeLabel":"boolean | null"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.0","typeLabel":"LogicalOperator · object"},{"type":"null","description":"Optional filters to select which documents to enrich","uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].scroll_filters","typeLabel":"LogicalOperator · object | null"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether this enrichment is active","default":true,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX].enabled","typeLabel":"boolean"}},"type":"object","required":["retriever_id","input_mappings","write_back_fields"],"title":"RetrieverEnrichmentConfig","description":"Configuration for attaching a retriever enrichment to a collection.\n\nRetriever enrichments run a retriever pipeline on each document during\npost-processing and write selected result fields back to the document.\n\nAttributes:\n retriever_id: ID of the retriever to execute\n input_mappings: How to map document fields to retriever inputs\n write_back_fields: Which result fields to write back to the document\n execution_phase: Which post-processing phase to run in (default: RETRIEVER_ENRICHMENT)\n priority: Priority within the execution phase (higher = runs first)\n scroll_filters: Optional filters to select which documents to enrich\n enabled: Whether this enrichment is active","examples":[{"enabled":true,"input_mappings":[{"input_key":"query","source":{"path":"title","source_type":"document_field"}}],"retriever_id":"ret_classifier_001","write_back_fields":[{"mode":"first","source_field":"category","target_field":"_enrichment_category"}]}],"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0.items.[INDEX]","typeLabel":"RetrieverEnrichmentConfig · object"},"title":"Retriever Enrichments","description":"NOT REQUIRED. List of retriever enrichments to run on documents during post-processing. Each entry specifies: retriever_id, input_mappings, write_back_fields, execution_phase, priority. Retriever enrichments execute a retriever pipeline and write selected result fields back to documents. Empty/null if no enrichments attached. Use for: LLM classification, cross-collection joins, enrichment.","example":null,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.0","typeLabel":"RetrieverEnrichmentConfig · object[]"},{"type":"null","title":"Retriever Enrichments","description":"NOT REQUIRED. List of retriever enrichments to run on documents during post-processing. Each entry specifies: retriever_id, input_mappings, write_back_fields, execution_phase, priority. Retriever enrichments execute a retriever pipeline and write selected result fields back to documents. Empty/null if no enrichments attached. Use for: LLM classification, cross-collection joins, enrichment.","example":null,"uniqueKey":"results.items.[INDEX].retriever_enrichments.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_enrichments","typeLabel":"RetrieverEnrichmentConfig · object[] | null"},"retriever_transform":{"oneOf":[{"type":"object","title":"RetrieverTransformConfig","description":"NOT REQUIRED. Set for a transform-based collection: the inline retriever pipeline (over an upstream collection) that defines this collection's documents. Mutually exclusive with feature_extractor. None for extractor-based collections.","properties":{"retriever_id":{"oneOf":[{"type":"string","title":"Retriever Id","description":"The saved retriever whose pipeline builds this collection. Name it with retriever_version to pin the version: the collection keeps running that version after the retriever is updated, until the pin moves. Give this or stages, not both.","example":"ret_brand_rollup","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Retriever Id","description":"The saved retriever whose pipeline builds this collection. Name it with retriever_version to pin the version: the collection keeps running that version after the retriever is updated, until the pin moves. Give this or stages, not both.","example":"ret_brand_rollup","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_id","typeLabel":"string | null"},"retriever_version":{"oneOf":[{"type":"integer","title":"Retriever Version","description":"The retriever version this collection runs (needs retriever_id). Omitted: the retriever's current version at each run.","minimum":1,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_version.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retriever Version","description":"The retriever version this collection runs (needs retriever_id). Omitted: the retriever's current version at each run.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.retriever_version","typeLabel":"integer | null"},"stages":{"oneOf":[{"type":"array","items":{"properties":{"stage_name":{"type":"string","minLength":1,"title":"Stage Name","description":"Human-readable stage instance name (REQUIRED).","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].stage_name","typeLabel":"string"},"config":{"additionalProperties":true,"type":"object","title":"Config","description":"Stage implementation parameters (REQUIRED). Must include `stage_id` key referencing a registered retriever stage. Supports template expressions using Jinja2 syntax resolved at execution time. Template namespaces support both uppercase and lowercase formats: {{INPUT.field}} or {{inputs.field}}, {{DOC.field}} or {{doc.field}}, {{CONTEXT.field}} or {{context.field}}, {{STAGE.field}} or {{stage.field}}. All formats work identically. Provide stage-specific configuration under `parameters`. Optional `pre_filters` and `post_filters` are placed as SIBLINGS of `parameters` (NOT nested inside). Pre-filters require payload indexes on the filtered fields.","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].config","typeLabel":"Config · object"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","description":"Mirror of config.parameters at the stage top level, so anything round-tripping a stage (clone-by-GET, UI re-save, an agent verifying its own write) reads a populated stage instead of an empty one. Always equal to config['parameters'] (FRUSTRATIONS 2026-07-22: a retriever cloned from GET output was created with NO searches because the real stage config only lived under config.parameters). Read-only — on input this key is ignored and recomputed from config, so the two can't drift; config stays the source of truth.","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].parameters","typeLabel":"Parameters · object"},"stage_type":{"oneOf":[{"type":"string","title":"StageType","description":"Functional category of the stage. Optional for creation requests; auto-inferred from `stage_id` when omitted.","enum":["filter","sort","reduce","apply","enrich"],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].stage_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Functional category of the stage. Optional for creation requests; auto-inferred from `stage_id` when omitted.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].stage_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].stage_type","typeLabel":"enum\u003cstring> | null"},"batch_size":{"oneOf":[{"type":"string","title":"Batch Size","description":"Optional templated batch size expression evaluated per execution. Supports template variables: {{INPUT.page_size}}, {{inputs.page_size}}, {{CONTEXT.budget_remaining}}, etc. Both uppercase and lowercase namespace names are supported (e.g., INPUT/inputs, DOC/doc, CONTEXT/context, STAGE/stage). Defaults to stage-specific value when omitted.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].batch_size.oneOf.0","typeLabel":"string"},{"type":"null","title":"Batch Size","description":"Optional templated batch size expression evaluated per execution. Supports template variables: {{INPUT.page_size}}, {{inputs.page_size}}, {{CONTEXT.budget_remaining}}, etc. Both uppercase and lowercase namespace names are supported (e.g., INPUT/inputs, DOC/doc, CONTEXT/context, STAGE/stage). Defaults to stage-specific value when omitted.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].batch_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].batch_size","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"User-facing description of the stage (OPTIONAL).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"User-facing description of the stage (OPTIONAL).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"on_error":{"oneOf":[{"type":"string","title":"On Error","description":"Behavior when this stage fails. 'skip' continues execution with results from previous stages (graceful degradation). 'error' (default) fails the entire retriever. Useful for optional enrichment or multi-modal stages where one modality may not apply (e.g., face search on logo-only images).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].on_error.oneOf.0","typeLabel":"string"},{"type":"null","title":"On Error","description":"Behavior when this stage fails. 'skip' continues execution with results from previous stages (graceful degradation). 'error' (default) fails the entire retriever. Useful for optional enrichment or multi-modal stages where one modality may not apply (e.g., face search on logo-only images).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].on_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].on_error","typeLabel":"string | null"},"output_alias":{"oneOf":[{"type":"string","title":"Output Alias","description":"Optional alias to persist this stage's results in the execution context. When set, results are stored in CONTEXT.\u003calias> in addition to replacing current_results. Downstream stages can reference them via {{CONTEXT.\u003calias>}} in templates. Useful for multi-stage pipelines where later stages should not overwrite earlier results (e.g., face search + logo search producing independent result sets).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].output_alias.oneOf.0","typeLabel":"string"},{"type":"null","title":"Output Alias","description":"Optional alias to persist this stage's results in the execution context. When set, results are stored in CONTEXT.\u003calias> in addition to replacing current_results. Downstream stages can reference them via {{CONTEXT.\u003calias>}} in templates. Useful for multi-stage pipelines where later stages should not overwrite earlier results (e.g., face search + logo search producing independent result sets).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].output_alias.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX].output_alias","typeLabel":"string | null"}},"type":"object","required":["stage_name","config","parameters"],"title":"StageConfig","description":"Configuration for a single stage within a retriever.\n\nStages support dynamic configuration through template expressions using Jinja2 syntax.\n\nIMPORTANT - Template Syntax:\n - Use DOUBLE curly braces: {{INPUT.query}} (correct)\n - Single curly braces will NOT work: {INPUT.query} (wrong - not substituted)\n - Namespace names are CASE-INSENSITIVE: {{INPUT.query}}, {{inputs.query}}, {{input.query}}\n all work identically\n\nTemplate Namespaces (case-insensitive):\n - INPUT / inputs / input: User-provided query parameters and inputs\n - DOC / doc: Current document fields (for per-document logic)\n - CONTEXT / context: Execution state (budget, timing, retriever metadata)\n - STAGE / stage: Previous stage outputs (for cascading logic)\n\nExamples:\n Correct: {{INPUT.query_text}}, {{inputs.query}}, {{DOC.content_type}}\n Correct: {{CONTEXT.budget_remaining}}, {{context.budget_remaining}}\n Wrong: {INPUT.query} - single braces won't be substituted","examples":[{"config":{"parameters":{"final_top_k":25,"searches":[{"feature_uri":"mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1","query":{"input_mode":"text","value":"{{INPUT.query_text}}"},"top_k":100}]},"stage_id":"feature_search"},"description":"Feature search stage with uppercase template namespace","stage_name":"semantic_search","stage_type":"filter"},{"batch_size":"{{20 * inputs.page_size}}","config":{"parameters":{"field":"metadata.price","operator":"gt","value":"{{inputs.min_price}}"},"stage_id":"attribute_filter"},"description":"Attribute filter with lowercase template namespace","stage_name":"price_filter","stage_type":"filter"},{"config":{"parameters":{"batch_size":"{{CONTEXT.budget_remaining > 50 ? 200 : 50}}","criteria":"{{inputs.quality_criteria}}","field":"{{DOC.media_type == 'image' ? 'image_url' : 'video_url'}}"},"stage_id":"llm_filter"},"description":"Mixed case templates in same stage","stage_name":"llm_filter","stage_type":"filter"},{"config":{"parameters":{"final_top_k":10,"searches":[{"feature_uri":"mixpeek://web_scraper@v1/jinaai__jina_embeddings_v2_base_code","query":{"input_mode":"text","value":"{{INPUT.query}}"},"top_k":50}]},"pre_filters":{"AND":[{"field":"doc_type","operator":"eq","value":"code"}]},"stage_id":"feature_search"},"description":"Feature search with pre_filters (sibling of parameters, NOT inside)","stage_name":"search_code_blocks","stage_type":"filter"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0.items.[INDEX]","typeLabel":"StageConfig · object"},"title":"Stages","description":"Deprecated: name a saved retriever with retriever_id instead. Inline retriever pipeline run over the source collection. Same stage shape as a retriever's ``stages`` (StageConfig: stage_name, optional stage_type, config:{stage_id, parameters}); stage_id validates against the retriever stage registry. A group_by/reduce stage defines output document cardinality (N source rows -> M output documents).","minItems":1,"deprecated":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.0","typeLabel":"StageConfig · object[]"},{"type":"null","title":"Stages","description":"Deprecated: name a saved retriever with retriever_id instead. Inline retriever pipeline run over the source collection. Same stage shape as a retriever's ``stages`` (StageConfig: stage_name, optional stage_type, config:{stage_id, parameters}); stage_id validates against the retriever stage registry. A group_by/reduce stage defines output document cardinality (N source rows -> M output documents).","deprecated":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.stages","typeLabel":"StageConfig · object[] | null"},"input_mappings":{"oneOf":[{"type":"array","items":{"properties":{"input_key":{"type":"string","title":"Input Key","description":"The retriever input parameter name","examples":["query","query_embedding","collection_id"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].input_key","typeLabel":"string"},"source":{"properties":{"source_type":{"type":"string","enum":["document_field","constant","source_blob"],"title":"Source Type","description":"Where the value comes from","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.source_type","typeLabel":"enum\u003cstring>"},"path":{"oneOf":[{"type":"string","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"JSONPath to document field (when source_type='document_field'), or blob property name (when source_type='source_blob', e.g. 'image')","example":"features.video_embedding","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.path","typeLabel":"string | null"},"value":{"oneOf":[{"title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.value.oneOf.0","typeLabel":"any"},{"type":"null","title":"Value","description":"Constant value to use (when source_type='constant')","example":"col_known_incidents","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source.value","typeLabel":"any | null"}},"type":"object","required":["source_type"],"title":"InputMappingSource","description":"Where to get the value from (document field or constant)","isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX].source","typeLabel":"InputMappingSource · object"}},"type":"object","required":["input_key","source"],"title":"EnrichmentInputMapping","description":"Maps a document field or constant to a retriever input parameter.\n\nDefines how to construct retriever inputs from the document being enriched.\n\nAttributes:\n input_key: The retriever input parameter name\n source: Where to get the value from (document field or constant)","examples":[{"input_key":"query","source":{"path":"title","source_type":"document_field"}},{"input_key":"collection_id","source":{"source_type":"constant","value":"col_reference_data"}}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0.items.[INDEX]","typeLabel":"EnrichmentInputMapping · object"},"title":"Input Mappings","description":"Optional. Map source-collection document fields (or constants) to the pipeline's input parameters. When omitted, the pipeline runs over the source documents directly.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.0","typeLabel":"EnrichmentInputMapping · object[]"},{"type":"null","title":"Input Mappings","description":"Optional. Map source-collection document fields (or constants) to the pipeline's input parameters. When omitted, the pipeline runs over the source documents directly.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.input_mappings","typeLabel":"EnrichmentInputMapping · object[] | null"},"write_back_fields":{"oneOf":[{"type":"array","items":{"properties":{"source_field":{"type":"string","title":"Source Field","description":"Field path in retriever result (dot notation supported)","examples":["ai_safety_insight.text","category","score"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].source_field","typeLabel":"string"},"target_field":{"type":"string","title":"Target Field","description":"Field name to write on the document","examples":["_enrichment_category","safety_score","related_items"],"isRequired":true,"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].target_field","typeLabel":"string"},"mode":{"type":"string","enum":["first","all_as_array","concat"],"title":"Mode","description":"How to aggregate values from multiple results. 'first': top result only. 'all_as_array': collect into list. 'concat': join strings with ', '.","default":"first","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"type":{"oneOf":[{"type":"string","title":"Type","description":"OPTIONAL. The type a retriever_transform collection declares for target_field in its output schema. Leave it unset for a string. Set 'number' or 'integer' for a time or a position, so a filter or sort on the field compares numbers. Retriever enrichments ignore it.","enum":["string","number","integer","boolean"],"example":"number","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Type","description":"OPTIONAL. The type a retriever_transform collection declares for target_field in its output schema. Leave it unset for a string. Set 'number' or 'integer' for a time or a position, so a filter or sort on the field compares numbers. Retriever enrichments ignore it.","example":"number","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"}},"type":"object","required":["source_field","target_field"],"title":"WriteBackFieldMapping","description":"Maps a field from retriever results back to the document.\n\nControls how retriever result fields are written to the source document.\n\nAttributes:\n source_field: Field path in retriever result (dot notation for nested fields)\n target_field: Field name to write on the document\n mode: How to aggregate values across multiple results:\n - \"first\": Write value from first result only (default)\n - \"all_as_array\": Collect values from all results into a list\n - \"concat\": Concatenate string values with \", \" separator","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0.items.[INDEX]","typeLabel":"WriteBackFieldMapping · object"},"title":"Write Back Fields","description":"Optional. Which pipeline result fields land on the output documents and under what names — this is the collection's output_schema source. When omitted, the reduce/group_by output defines the schema (1:1 passthrough of the pipeline result).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.0","typeLabel":"WriteBackFieldMapping · object[]"},{"type":"null","title":"Write Back Fields","description":"Optional. Which pipeline result fields land on the output documents and under what names — this is the collection's output_schema source. When omitted, the reduce/group_by output defines the schema (1:1 passthrough of the pipeline result).","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.write_back_fields","typeLabel":"WriteBackFieldMapping · object[] | null"},"unique_id_field":{"oneOf":[{"type":"string","title":"Unique Id Field","description":"Optional (TS ingestion #12). Designate a field, or a list of fields for a composite key, from the pipeline OUTPUT rows whose value becomes each output document's stable, addressable document id. Rows sharing that value collapse to ONE document, and a re-run REPLACES rather than duplicating (deterministic id, upserted by id). Dot-notation paths are supported (e.g. 'metadata.brand'). When omitted, identity falls back to the pipeline's group_by field, then the source document id. This is the transform-collection analogue of a bucket's unique_key. Lineage fields such as source_document_id are not kept on output rows, so a key naming one is refused on create; write the value under another name and key on that.","example":"video_id","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.unique_id_field.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.unique_id_field.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Unique Id Field","description":"Optional (TS ingestion #12). Designate a field, or a list of fields for a composite key, from the pipeline OUTPUT rows whose value becomes each output document's stable, addressable document id. Rows sharing that value collapse to ONE document, and a re-run REPLACES rather than duplicating (deterministic id, upserted by id). Dot-notation paths are supported (e.g. 'metadata.brand'). When omitted, identity falls back to the pipeline's group_by field, then the source document id. This is the transform-collection analogue of a bucket's unique_key. Lineage fields such as source_document_id are not kept on output rows, so a key naming one is refused on create; write the value under another name and key on that.","example":"video_id","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.unique_id_field.oneOf.1","typeLabel":"string[]"},{"type":"null","title":"Unique Id Field","description":"Optional (TS ingestion #12). Designate a field, or a list of fields for a composite key, from the pipeline OUTPUT rows whose value becomes each output document's stable, addressable document id. Rows sharing that value collapse to ONE document, and a re-run REPLACES rather than duplicating (deterministic id, upserted by id). Dot-notation paths are supported (e.g. 'metadata.brand'). When omitted, identity falls back to the pipeline's group_by field, then the source document id. This is the transform-collection analogue of a bucket's unique_key. Lineage fields such as source_document_id are not kept on output rows, so a key naming one is refused on create; write the value under another name and key on that.","example":"video_id","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.unique_id_field.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0.unique_id_field","typeLabel":"string | string[] | null"}},"uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.0","typeLabel":"RetrieverTransformConfig · object"},{"type":"null","description":"NOT REQUIRED. Set for a transform-based collection: the inline retriever pipeline (over an upstream collection) that defines this collection's documents. Mutually exclusive with feature_extractor. None for extractor-based collections.","uniqueKey":"results.items.[INDEX].retriever_transform.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_transform","typeLabel":"RetrieverTransformConfig · object | null"},"vector_count":{"oneOf":[{"type":"integer","title":"Vector Count","description":"Total number of vector entries across all documents in this collection. Computed as document_count * number_of_vector_indexes. Each document stores one vector per configured vector index (e.g. a collection with 1 embedding produces 1 vector per document).","uniqueKey":"results.items.[INDEX].vector_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Vector Count","description":"Total number of vector entries across all documents in this collection. Computed as document_count * number_of_vector_indexes. Each document stores one vector per configured vector index (e.g. a collection with 1 embedding produces 1 vector per document).","uniqueKey":"results.items.[INDEX].vector_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vector_count","typeLabel":"integer | null"},"taxonomy_count":{"oneOf":[{"type":"integer","title":"Taxonomy Count","description":"Number of taxonomies connected to this collection","uniqueKey":"results.items.[INDEX].taxonomy_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Taxonomy Count","description":"Number of taxonomies connected to this collection","uniqueKey":"results.items.[INDEX].taxonomy_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].taxonomy_count","typeLabel":"integer | null"},"retriever_count":{"oneOf":[{"type":"integer","title":"Retriever Count","description":"Number of retrievers connected to this collection","uniqueKey":"results.items.[INDEX].retriever_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retriever Count","description":"Number of retrievers connected to this collection","uniqueKey":"results.items.[INDEX].retriever_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retriever_count","typeLabel":"integer | null"},"indexing_status":{"oneOf":[{"type":"string","title":"Indexing Status","description":"Whether every vector the vector store has accepted for this collection's namespace is searchable now. This is separate from the collection's own RUNNING/COMPLETED status: a collection can be COMPLETED while this reads 'indexing'. One of: 'quiesced' (everything the store has accepted for this namespace is searchable; documents still moving through extraction have not reached the store yet, so compare document_count with what you sent if you need completeness), 'indexing' (some accepted vectors are waiting to become searchable and will be shortly; a search run now may miss them), 'blocked' (indexing cannot proceed without intervention, and waiting will not resolve it), 'unknown' (the signal is unavailable, for example an older store build or a transient error; treat it as not confirmed ready). Null when this endpoint did not compute it, for example a list request whose store reading took too long.","example":"quiesced","uniqueKey":"results.items.[INDEX].indexing_status.oneOf.0","typeLabel":"string"},{"type":"null","title":"Indexing Status","description":"Whether every vector the vector store has accepted for this collection's namespace is searchable now. This is separate from the collection's own RUNNING/COMPLETED status: a collection can be COMPLETED while this reads 'indexing'. One of: 'quiesced' (everything the store has accepted for this namespace is searchable; documents still moving through extraction have not reached the store yet, so compare document_count with what you sent if you need completeness), 'indexing' (some accepted vectors are waiting to become searchable and will be shortly; a search run now may miss them), 'blocked' (indexing cannot proceed without intervention, and waiting will not resolve it), 'unknown' (the signal is unavailable, for example an older store build or a transient error; treat it as not confirmed ready). Null when this endpoint did not compute it, for example a list request whose store reading took too long.","example":"quiesced","uniqueKey":"results.items.[INDEX].indexing_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].indexing_status","typeLabel":"string | null"},"indexing_status_scoped":{"oneOf":[{"type":"boolean","title":"Indexing Status Scoped","description":"True when indexing_status describes this collection's namespace alone. False when the store could only report the whole shard, which several namespaces can share, so an 'indexing' or 'blocked' value may come from another namespace's backlog. A 'quiesced' reading is always scoped.","uniqueKey":"results.items.[INDEX].indexing_status_scoped.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Indexing Status Scoped","description":"True when indexing_status describes this collection's namespace alone. False when the store could only report the whole shard, which several namespaces can share, so an 'indexing' or 'blocked' value may come from another namespace's backlog. A 'quiesced' reading is always scoped.","uniqueKey":"results.items.[INDEX].indexing_status_scoped.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].indexing_status_scoped","typeLabel":"boolean | null"},"warnings":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].warnings.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Warnings","description":"NOT REQUIRED. Non-fatal problems detected while creating the collection. The collection WAS created; these describe things that will make it produce nothing at run time. The case this exists for: input_mappings can name a field that is valid in the bucket SCHEMA and absent from the bucket's OBJECTS, because a sync with no schema_mapping writes its blob to the default property instead. Schema validation passes, the batch then finds nothing, and the batch error arrives long after the decision was made. A warning here reaches the caller while they can still change it.","uniqueKey":"results.items.[INDEX].warnings.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Warnings","description":"NOT REQUIRED. Non-fatal problems detected while creating the collection. The collection WAS created; these describe things that will make it produce nothing at run time. The case this exists for: input_mappings can name a field that is valid in the bucket SCHEMA and absent from the bucket's OBJECTS, because a sync with no schema_mapping writes its blob to the default property instead. Schema validation passes, the batch then finds nothing, and the batch error arrives long after the decision was made. A warning here reaches the caller while they can still change it.","uniqueKey":"results.items.[INDEX].warnings.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].warnings","typeLabel":"string[] | null"}},"type":"object","required":["collection_name","feature_extractor","source"],"title":"CollectionResponse","description":"Response model for collection endpoints.","examples":[{"collection_id":"col_a1b2c3d4e5","collection_name":"article_embeddings","description":"Simple text collection: News articles with text embeddings from bucket source","enabled":true,"feature_extractor":{"feature_extractor_name":"text_extractor","field_passthrough":[{"source_path":"title"}],"input_mappings":{"text":"content"},"version":"v1"},"input_schema":{"properties":{"title":{"type":"string"},"content":{"type":"text"}}},"output_schema":{"properties":{"title":{"type":"string"},"text_extractor_v1_embedding":{"type":"array"}}},"source":{"bucket_id":"bkt_articles","type":"bucket"}},{"collection_id":"col_xyz789abc","collection_name":"video_frames","description":"Video frames: Extracted at 1 FPS with CLIP embeddings and campaign_id passthrough","enabled":true,"feature_extractor":{"feature_extractor_name":"multimodal_extractor","field_passthrough":[{"source_path":"campaign_id"}],"input_mappings":{"video":"video"},"parameters":{"fps":1},"version":"v1"},"input_schema":{"properties":{"video":{"type":"video"},"campaign_id":{"type":"string"}}},"output_schema":{"properties":{"campaign_id":{"type":"string"},"multimodal_extractor_v1_embedding":{"type":"array"}}},"source":{"bucket_id":"bkt_marketing_videos","type":"bucket"}},{"collection_id":"col_scenes_def","collection_name":"detected_scenes","description":"Tier 2 decomposition: Scenes detected from frame embeddings (collection source)","enabled":true,"feature_extractor":{"feature_extractor_name":"scene_extractor","field_passthrough":[{"source_path":"campaign_id"}],"input_mappings":{"embedding":"multimodal_extractor_v1_embedding"},"version":"v1"},"input_schema":{"properties":{"campaign_id":{"type":"string"},"multimodal_extractor_v1_embedding":{"type":"array"}}},"output_schema":{"properties":{"campaign_id":{"type":"string"},"scene_extractor_v1_embedding":{"type":"array"}}},"source":{"collection_id":"col_video_frames","type":"collection"}}],"uniqueKey":"results.items.[INDEX]","typeLabel":"CollectionResponse · object"},"type":"array","title":"Results","description":"List of collections","isRequired":true,"uniqueKey":"results","typeLabel":"CollectionResponse · object[]"},"pagination":{"properties":{"total":{"oneOf":[{"type":"integer","title":"Total","description":"Number of items matching the request across all pages, filters included. null unless the request set include_total=true (in the body or as ?include_total=true). A counted request that matches nothing returns 0.","uniqueKey":"pagination.total.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Total","description":"Number of items matching the request across all pages, filters included. null unless the request set include_total=true (in the body or as ?include_total=true). A counted request that matches nothing returns 0.","uniqueKey":"pagination.total.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.total","typeLabel":"integer | null"},"page":{"oneOf":[{"type":"integer","title":"Page","uniqueKey":"pagination.page.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page","uniqueKey":"pagination.page.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.page","typeLabel":"integer | null"},"page_size":{"oneOf":[{"type":"integer","title":"Page Size","uniqueKey":"pagination.page_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page Size","uniqueKey":"pagination.page_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.page_size","typeLabel":"integer | null"},"total_pages":{"oneOf":[{"type":"integer","title":"Total Pages","description":"Number of pages at page_size. null unless include_total=true.","uniqueKey":"pagination.total_pages.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Total Pages","description":"Number of pages at page_size. null unless include_total=true.","uniqueKey":"pagination.total_pages.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.total_pages","typeLabel":"integer | null"},"next_page":{"oneOf":[{"type":"string","title":"Next Page","uniqueKey":"pagination.next_page.oneOf.0","typeLabel":"string"},{"type":"null","title":"Next Page","uniqueKey":"pagination.next_page.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.next_page","typeLabel":"string | null"},"previous_page":{"oneOf":[{"type":"string","title":"Previous Page","uniqueKey":"pagination.previous_page.oneOf.0","typeLabel":"string"},{"type":"null","title":"Previous Page","uniqueKey":"pagination.previous_page.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.previous_page","typeLabel":"string | null"},"next_cursor":{"oneOf":[{"type":"string","title":"Next Cursor","uniqueKey":"pagination.next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","title":"Next Cursor","uniqueKey":"pagination.next_cursor.oneOf.1","typeLabel":"null"}],"uniqueKey":"pagination.next_cursor","typeLabel":"string | null"}},"type":"object","title":"PaginationResponse","description":"Pagination information","isRequired":true,"uniqueKey":"pagination","typeLabel":"PaginationResponse · object"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of collections matching the query","isRequired":true,"uniqueKey":"total_count","typeLabel":"integer"},"stats":{"oneOf":[{"type":"object","title":"CollectionListStats","description":"Aggregate statistics across all collections in the result","properties":{"total_documents":{"type":"integer","title":"Total Documents","description":"Total number of documents across all collections","default":0,"uniqueKey":"stats.oneOf.0.total_documents","typeLabel":"integer"},"avg_documents_per_collection":{"type":"number","title":"Avg Documents Per Collection","description":"Average number of documents per collection","default":0,"uniqueKey":"stats.oneOf.0.avg_documents_per_collection","typeLabel":"number"},"collections_with_taxonomies":{"type":"integer","title":"Collections With Taxonomies","description":"Number of collections with taxonomy applications","default":0,"uniqueKey":"stats.oneOf.0.collections_with_taxonomies","typeLabel":"integer"},"total_feature_extractors":{"type":"integer","title":"Total Feature Extractors","description":"Total number of feature extractors across all collections","default":0,"uniqueKey":"stats.oneOf.0.total_feature_extractors","typeLabel":"integer"},"total_taxonomies":{"type":"integer","title":"Total Taxonomies","description":"Total number of taxonomy connections across all collections","default":0,"uniqueKey":"stats.oneOf.0.total_taxonomies","typeLabel":"integer"},"total_retrievers":{"type":"integer","title":"Total Retrievers","description":"Total number of retriever connections across all collections","default":0,"uniqueKey":"stats.oneOf.0.total_retrievers","typeLabel":"integer"}},"uniqueKey":"stats.oneOf.0","typeLabel":"CollectionListStats · object"},{"type":"null","description":"Aggregate statistics across all collections in the result","uniqueKey":"stats.oneOf.1","typeLabel":"null"}],"uniqueKey":"stats","typeLabel":"CollectionListStats · object | null"},"warnings":{"items":{"properties":{"resource":{"type":"string","title":"Resource","description":"Kind of resource skipped: stage, collection, taxonomy, retriever, namespace.","examples":["taxonomy"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].resource","typeLabel":"string"},"reason":{"type":"string","title":"Reason","description":"Why it was skipped.","examples":["not found in namespace"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].reason","typeLabel":"string"},"next_step":{"type":"string","title":"Next Step","description":"What the caller can do about it.","examples":["Fix the taxonomy_id on the stage, or create the taxonomy."],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].next_step","typeLabel":"string"},"id":{"oneOf":[{"type":"string","title":"Id","description":"Identifier of the skipped resource, when it has one.","example":"tax_abc123","uniqueKey":"warnings.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"Identifier of the skipped resource, when it has one.","example":"tax_abc123","uniqueKey":"warnings.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"warnings.items.[INDEX].id","typeLabel":"string | null"},"stage":{"oneOf":[{"type":"string","title":"Stage","description":"The stage that skipped it, when a stage did.","uniqueKey":"warnings.items.[INDEX].stage.oneOf.0","typeLabel":"string"},{"type":"null","title":"Stage","description":"The stage that skipped it, when a stage did.","uniqueKey":"warnings.items.[INDEX].stage.oneOf.1","typeLabel":"null"}],"uniqueKey":"warnings.items.[INDEX].stage","typeLabel":"string | null"}},"type":"object","required":["resource","reason","next_step"],"title":"DegradedEntry","description":"One resource a response could not include (plan 6.16).\n\nThe same shape 6.10's degradation contract uses for its stage and arm\nentries, so a client reads one structure for every kind of skip.","uniqueKey":"warnings.items.[INDEX]","typeLabel":"DegradedEntry · object"},"type":"array","title":"Warnings","description":"Why this page may not be the whole answer. An entry with resource 'namespace' and reason 'unresolved' means X-Namespace did not resolve for this API key, so the empty list is not that namespace's contents (the same condition as the X-Namespace-Unresolved response header). Empty when the namespace resolved.","uniqueKey":"warnings","typeLabel":"DegradedEntry · object[]"}},"type":"object","required":["results","pagination","total_count"],"title":"ListCollectionsResponse","description":"Response model for listing collections.","uniqueKey":"","typeLabel":"ListCollectionsResponse · object"},"examples":{"Example":{"title":"Example","value":{"results":[{"collection_id":"col_a1b2c3d4e5","collection_name":"article_embeddings","description":"Simple text collection: News articles with text embeddings from bucket source","enabled":true,"feature_extractor":{"feature_extractor_name":"text_extractor","field_passthrough":[{"source_path":"title"}],"input_mappings":{"text":"content"},"version":"v1"},"input_schema":{"properties":{"title":{"type":"string"},"content":{"type":"text"}}},"output_schema":{"properties":{"title":{"type":"string"},"text_extractor_v1_embedding":{"type":"array"}}},"source":{"bucket_id":"bkt_articles","type":"bucket"}}],"pagination":{"total":123,"page":123,"page_size":123,"total_pages":123,"next_page":"\u003cstring>","previous_page":"\u003cstring>","next_cursor":"\u003cstring>"},"total_count":123,"stats":{"total_documents":0,"avg_documents_per_collection":0,"collections_with_taxonomies":0,"total_feature_extractors":0,"total_taxonomies":0,"total_retrievers":0},"warnings":[{"resource":"taxonomy","reason":"not found in namespace","next_step":"Fix the taxonomy_id on the stage, or create the taxonomy.","id":"tax_abc123","stage":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"943c380e-4004-43bf-861e-7de6d97175ac":{"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"},"c0ec3e8b-d5a2-446e-af03-93907383f66a":{"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"},"ac6b9a88-7419-44a5-9353-63d81797e183":{"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"},"ac262713-bd49-410c-9f47-9be4fad4c562":{"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"},"a9cbcce5-143e-4433-98e6-728e404f6db4":{"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"},"c98ca512-a714-4c70-9c24-b55f1f74c399":{"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"},"8ad6d1bd-9d37-4539-b60d-4e55f5b6620b":{"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"},"40786af6-2006-4993-bfb2-6e3dd119fddf":{"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":{"e116ca30-f858-495d-be43-1a48f1e3480b":{"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":"List Collections - Mixpeek","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/collections/list-collections","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-01-23T23:19:11.250Z","originalFileLocation":"api-reference/collections/list-collections.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This endpoint allows you to list collections.\">\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=\"List Collections - Mixpeek\">\u003cmeta data-mint-head property=\"og:description\" content=\"This endpoint allows you to list collections.\">\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/collections/list-collections\">\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=Collections\u0026amp;title=List+Collections\u0026amp;description=This+endpoint+allows+you+to+list+collections.\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=82041a07fe205a84e2f3926e582a877ae509335be4824f75849260c433887c32\">\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=\"List Collections - Mixpeek\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This endpoint allows you to list collections.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mixpeek.mintlify.site/docs/_mintlify/api/og/v2?division=Collections\u0026amp;title=List+Collections\u0026amp;description=This+endpoint+allows+you+to+list+collections.\u0026amp;theme=c63607064cbc270563da1421\u0026amp;signature=82041a07fe205a84e2f3926e582a877ae509335be4824f75849260c433887c32\">\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/collections/list-collections\">\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/collections/list-collections.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/collections/list-collections#webpage\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections\",\"name\":\"List Collections\",\"description\":\"This endpoint allows you to list collections.\",\"dateModified\":\"2026-01-23T23:19:11.250Z\",\"isPartOf\":{\"@id\":\"https://docs.mixpeek.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Collections\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/collections/create-collection\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List Collections\",\"item\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections#apireference\",\"headline\":\"List Collections\",\"name\":\"List Collections\",\"description\":\"This endpoint allows you to list collections.\",\"url\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mixpeek.com/docs/api-reference/collections/list-collections#webpage\"},\"dateModified\":\"2026-01-23T23:19:11.250Z\",\"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","description":"List feature addresses and metadata available in this collection","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","description":"Export collection documents to JSON, CSV, Parquet or WebDataset format.\n\n **Export Formats:**\n - **JSON**: Line-delimited JSON (JSONL) format. Good for streaming.\n - **CSV**: Comma-separated values. Best for spreadsheets.\n - **PARQUET**: Columnar format (default). Best for data pipelines.\n - **WEBDATASET**: Tar shards for training loaders. One sample per document,\n carrying `\u003ckey>.json` and, with `include_media=True`, the source object's\n bytes. The response returns every shard plus the brace pattern loaders take.\n\n **Vector Export:**\n Vectors are large and exported separately. When `include_vectors=True`,\n a separate file is created for vectors with document_id mapping.\n\n **Field Selection:**\n Use `select_fields` to export only specific fields, reducing file size.\n\n **Lineage:**\n Set `include_lineage=True` to add `lineage_chain`, `source_content_hash` and\n `document_created_at` to every row, so each exported document traces back to its\n source object and processing steps.\n\n **Filtering:**\n Apply filters to export a subset of documents.\n\n **Destination (your own storage):**\n Set `destination` to a storage connection you own plus a prefix, and the files and a\n `manifest.json` are written there as well as to the download copy. The connection\n needs `write_enabled` set, which is off by default, and its credentials need the\n write permission on your side (`s3:PutObject`, or `storage.objects.create` for GCS).\n A connection without it is refused with the permission named.\n\n **Response:**\n Returns presigned download URLs valid for 1 hour.\n\n **Limits:**\n - Large exports may take time. Consider using `sample_size` for testing.\n - Vector exports significantly increase processing time.","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","href":"/api-reference/clusters/list-clusters"},{"openapi":"post /v1/clusters/{cluster_id}/execute","title":"Execute Clustering","href":"/api-reference/clusters/execute-clustering"},{"openapi":"get /v1/clusters/{cluster_id}/groups","title":"List Cluster Groups","href":"/api-reference/clusters/list-cluster-groups"},{"openapi":"delete /v1/clusters/{cluster_id}","title":"Delete Cluster","href":"/api-reference/clusters/delete-cluster"},{"group":"Triggers","pages":[{"openapi":"post /v1/clusters/triggers","title":"Create Cluster Trigger","href":"/api-reference/cluster-triggers/create-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/list","title":"List Cluster Triggers","href":"/api-reference/cluster-triggers/list-cluster-triggers"},{"openapi":"get /v1/clusters/triggers/{trigger_id}","title":"Get Cluster Trigger","href":"/api-reference/cluster-triggers/get-cluster-trigger"},{"openapi":"patch /v1/clusters/triggers/{trigger_id}","title":"Update Cluster Trigger","href":"/api-reference/cluster-triggers/update-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/pause","title":"Pause Cluster Trigger","href":"/api-reference/cluster-triggers/pause-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/resume","title":"Resume Cluster Trigger","href":"/api-reference/cluster-triggers/resume-cluster-trigger"},{"openapi":"post /v1/clusters/triggers/{trigger_id}/history","title":"Get Trigger Execution History","href":"/api-reference/cluster-triggers/get-trigger-execution-history"},{"openapi":"delete /v1/clusters/triggers/{trigger_id}","title":"Delete Cluster Trigger","href":"/api-reference/cluster-triggers/delete-cluster-trigger"}]},{"group":"Executions","pages":[{"openapi":"get /v1/clusters/{cluster_id}/executions","title":"Get Latest Cluster Execution","href":"/api-reference/cluster-executions/get-latest-cluster-execution"},{"openapi":"get /v1/clusters/{cluster_id}/executions/{run_id}","title":"Get Specific Cluster Execution","href":"/api-reference/cluster-executions/get-specific-cluster-execution"},{"openapi":"post /v1/clusters/{cluster_id}/executions/list","title":"List Cluster Execution History","href":"/api-reference/cluster-executions/list-cluster-execution-history"},{"openapi":"post /v1/clusters/{cluster_id}/executions/{run_id}/cancel","title":"Cancel Execution","href":"/api-reference/cluster-executions/cancel-execution"},{"openapi":"get /v1/clusters/{cluster_id}/executions/{run_id}/export","title":"Export Cluster Run Data (CSV / Parquet)","href":"/api-reference/cluster-executions/export-cluster-run-data"},{"openapi":"patch /v1/clusters/{cluster_id}/executions/{run_id}/labels","title":"Rename Cluster Labels (Per-Execution)","href":"/api-reference/cluster-executions/rename-cluster-labels"},{"openapi":"patch /v1/clusters/{cluster_id}/executions/{run_id}/name","title":"Name an Execution Run","href":"/api-reference/cluster-executions/name-execution-run"}]},{"openapi":"get /v1/clusters","title":"List Clusters (GET)","href":"/api-reference/clusters/list-clusters-get"},{"openapi":"get /v1/clusters/{cluster_id}/visualization","title":"Cluster Visualization Data","href":"/api-reference/clusters/cluster-visualization-data"}]},{"group":"Annotations","pages":[{"openapi":"post /v1/annotations","title":"Create Annotation","href":"/api-reference/annotations/create-annotation"},{"openapi":"get /v1/annotations/{annotation_id}","title":"Get Annotation","href":"/api-reference/annotations/get-annotation"},{"openapi":"get /v1/annotations/{annotation_id}/versions","title":"Get Annotation Versions","href":"/api-reference/annotations/get-annotation-versions"},{"openapi":"get /v1/annotations/{annotation_id}/versions/{version}","title":"Get Annotation At Version","href":"/api-reference/annotations/get-annotation-at-version"},{"openapi":"post /v1/annotations/list","title":"List Annotations","href":"/api-reference/annotations/list-annotations"},{"openapi":"get /v1/annotations/stats","title":"Annotation Stats","href":"/api-reference/annotations/annotation-stats"},{"openapi":"patch /v1/annotations/{annotation_id}","title":"Patch Annotation","href":"/api-reference/annotations/update-annotation"},{"openapi":"delete /v1/annotations/{annotation_id}","title":"Delete Annotation","href":"/api-reference/annotations/delete-annotation"},{"openapi":"post /v1/annotations/bulk","title":"Bulk Annotations","href":"/api-reference/annotations/bulk-annotations"}]}]},{"group":"Automate","pages":[{"group":"Triggers","pages":[{"openapi":"post /v1/triggers","title":"Create Trigger","href":"/api-reference/create-trigger"},{"openapi":"post /v1/triggers/list","title":"List Triggers","href":"/api-reference/list-triggers"},{"openapi":"get /v1/triggers/{trigger_id}","title":"Get Trigger","href":"/api-reference/get-trigger"},{"openapi":"patch /v1/triggers/{trigger_id}","title":"Update Trigger","href":"/api-reference/update-trigger"},{"openapi":"delete /v1/triggers/{trigger_id}","title":"Delete Trigger","href":"/api-reference/delete-trigger"},{"openapi":"post /v1/triggers/{trigger_id}/execute","title":"Execute Trigger Now","href":"/api-reference/execute-trigger-now"},{"openapi":"post /v1/triggers/{trigger_id}/pause","title":"Pause Trigger","href":"/api-reference/pause-trigger"},{"openapi":"post /v1/triggers/{trigger_id}/resume","title":"Resume Trigger","href":"/api-reference/resume-trigger"},{"openapi":"get /v1/triggers/{trigger_id}/history","title":"Get Trigger Execution History","href":"/api-reference/get-trigger-execution-history"},{"openapi":"get /v1/triggers","title":"List Triggers (GET alias for POST /list).","href":"/api-reference/triggers/list-triggers"}]},{"group":"Webhooks","pages":[{"openapi":"post /v1/organizations/webhooks","title":"Create Webhook","href":"/api-reference/webhooks/create-webhook"},{"openapi":"post /v1/organizations/webhooks/list","title":"List Webhooks","href":"/api-reference/webhooks/list-webhooks"},{"openapi":"get /v1/organizations/webhooks/{identifier}","title":"Get Webhook","href":"/api-reference/webhooks/get-webhook"},{"openapi":"put /v1/organizations/webhooks/{identifier}","title":"Update Webhook","href":"/api-reference/webhooks/update-webhook"},{"openapi":"delete /v1/organizations/webhooks/{identifier}","title":"Delete Webhook","href":"/api-reference/webhooks/delete-webhook"}]},{"group":"Alerts","pages":[{"openapi":"post /v1/alerts","title":"Create Alert","href":"/api-reference/alerts/create-alert"},{"openapi":"get /v1/alerts/{alert_identifier}","title":"Get Alert","href":"/api-reference/alerts/get-alert"},{"openapi":"patch /v1/alerts/{alert_identifier}","title":"Update Alert","href":"/api-reference/alerts/update-alert"},{"openapi":"post /v1/alerts/list","title":"List Alerts","href":"/api-reference/alerts/list-alerts"},{"openapi":"delete /v1/alerts/{alert_identifier}","title":"Delete Alert","href":"/api-reference/alerts/delete-alert"},{"openapi":"get /v1/alerts/{alert_identifier}/executions","title":"List Alert Executions","href":"/api-reference/alerts/list-alert-executions"},{"openapi":"get /v1/alerts/executions/{execution_id}","title":"Get Alert Execution","href":"/api-reference/alerts/get-alert-execution"},{"openapi":"get /v1/alerts/{alert_identifier}/results","title":"Get Latest Alert Result","href":"/api-reference/alerts/get-latest-alert-result"},{"openapi":"get /v1/alerts/executions","title":"List All Executions","href":"/api-reference/alerts/list-all-executions"},{"openapi":"get /v1/alerts","title":"List Alerts (GET alias for POST /list).","href":"/api-reference/alerts/list-alerts-get"},{"openapi":"post /v1/organizations/alerts","title":"Create Org-Scoped Alert","href":"/api-reference/alerts/create-org-scoped-alert"},{"openapi":"get /v1/organizations/alerts","title":"List Org-Scoped Alerts (GET alias for POST /list).","href":"/api-reference/alerts/list-org-scoped-alerts"},{"openapi":"post /v1/organizations/alerts/list","title":"List Org-Scoped Alerts","href":"/api-reference/alerts/list-org-scoped-alerts-list"},{"openapi":"get /v1/organizations/alerts/{alert_identifier}","title":"Get Org-Scoped Alert","href":"/api-reference/alerts/get-org-scoped-alert"},{"openapi":"patch /v1/organizations/alerts/{alert_identifier}","title":"Update Org-Scoped Alert","href":"/api-reference/alerts/update-org-scoped-alert"},{"openapi":"delete /v1/organizations/alerts/{alert_identifier}","title":"Delete Org-Scoped Alert","href":"/api-reference/alerts/delete-org-scoped-alert"}]},{"group":"Notifications","pages":[{"openapi":"post /v1/notifications/list","title":"List Notifications","href":"/api-reference/notifications/list-notifications"},{"openapi":"get /v1/notifications/{notification_id}","title":"Get Notification","href":"/api-reference/notifications/get-notification"},{"openapi":"post /v1/notifications/{notification_id}/read","title":"Mark As Read","href":"/api-reference/notifications/mark-as-read"},{"openapi":"post /v1/notifications/read/all","title":"Mark All As Read","href":"/api-reference/notifications/mark-all-as-read"},{"openapi":"get /v1/notifications/unread/count","title":"Get Unread Count","href":"/api-reference/notifications/get-unread-count"},{"openapi":"delete /v1/notifications/{notification_id}","title":"Delete Notification","href":"/api-reference/notifications/delete-notification"},{"openapi":"get /v1/notifications/preferences","title":"Get Preferences","href":"/api-reference/notifications/get-preferences"},{"openapi":"put /v1/notifications/preferences","title":"Update Preferences","href":"/api-reference/notifications/update-preferences"},{"openapi":"get /v1/notifications/preferences/reminders","title":"Get Reminder Preferences","href":"/api-reference/notifications/get-reminder-preferences"},{"openapi":"put /v1/notifications/preferences/reminders","title":"Update Reminder Preferences","href":"/api-reference/notifications/update-reminder-preferences"},{"openapi":"get /v1/notifications/funnel/state","title":"Get Funnel State","href":"/api-reference/notifications/get-funnel-state"},{"openapi":"post /v1/notifications/funnel/advance","title":"Advance Funnel Stage","href":"/api-reference/notifications/advance-funnel-stage"}]},{"group":"Tasks","pages":[{"openapi":"post /v1/tasks/list","title":"List Tasks","href":"/api-reference/tasks/list-tasks"},{"openapi":"get /v1/tasks/{task_id}","title":"Get Task Information","href":"/api-reference/tasks/get-task-information"},{"openapi":"delete /v1/tasks/{task_id}","title":"Kill Task","href":"/api-reference/tasks/kill-task"}]},{"group":"Batch Queue","pages":[{"openapi":"post /v1/batches/list","title":"List All Batches","href":"/api-reference/batches/list-all-batches"},{"openapi":"get /v1/batches/{batch_id}","title":"Get Batch by ID","href":"/api-reference/batches/get-batch-by-id"},{"openapi":"post /v1/batches/{batch_id}/cancel","title":"Cancel Batch","href":"/api-reference/batches/cancel-batch"},{"openapi":"get /v1/batches/queue","title":"Batch Queue Status","href":"/api-reference/batches/batch-queue-status"}]}]},{"group":"Administer","pages":[{"group":"Organization","pages":[{"openapi":"get /v1/me","title":"Whoami","href":"/api-reference/account/whoami"},{"openapi":"get /v1/organizations","title":"Get Organization","href":"/api-reference/organizations/get-organization"},{"openapi":"patch /v1/organizations","title":"Update Organization","href":"/api-reference/organizations/update-organization"},{"openapi":"get /v1/organizations/targets","title":"Get Organization Targets","href":"/api-reference/organizations/get-organization-targets"},{"group":"Users","pages":[{"openapi":"get /v1/organizations/users","title":"List Users","href":"/api-reference/organization-users/list-users"},{"openapi":"post /v1/organizations/users","title":"Create User","href":"/api-reference/organization-users/create-user"},{"openapi":"get /v1/organizations/users/{user_email}","title":"Get User","href":"/api-reference/organization-users/get-user"},{"openapi":"patch /v1/organizations/users/{user_email}","title":"Update User","href":"/api-reference/organization-users/update-user"},{"openapi":"delete /v1/organizations/users/{user_email}","title":"Delete User","href":"/api-reference/organization-users/delete-user"}]},{"group":"API Keys","pages":[{"openapi":"get /v1/organizations/users/{user_email}/api-keys","title":"List Api Keys","href":"/api-reference/organization-api-keys/list-api-keys"},{"openapi":"post /v1/organizations/users/{user_email}/api-keys","title":"Create Api Key","href":"/api-reference/organization-api-keys/create-api-key"},{"openapi":"patch /v1/organizations/users/{user_email}/api-keys/{key_name}","title":"Update Api Key","href":"/api-reference/organization-api-keys/update-api-key"},{"openapi":"post /v1/organizations/users/{user_email}/api-keys/{key_name}/rotate","title":"Rotate Api Key","href":"/api-reference/organization-api-keys/rotate-api-key"},{"openapi":"delete /v1/organizations/users/{user_email}/api-keys/{key_name}","title":"Delete Api Key","href":"/api-reference/organization-api-keys/delete-api-key"},{"openapi":"post /v1/auth/token-exchange","title":"Exchange a workload OIDC token for a short-lived API key","href":"/api-reference/organization-api-keys/exchange-oidc-token"}]},{"group":"Storage Connections","pages":[{"openapi":"post /v1/organizations/connections/list","title":"List Storage Connections","href":"/api-reference/organization-connections/list-storage-connections"},{"openapi":"post /v1/organizations/connections","title":"Create Storage Connection","href":"/api-reference/organization-connections/create-storage-connection"},{"openapi":"get /v1/organizations/connections/{connection_identifier}","title":"Get Storage Connection","href":"/api-reference/organization-connections/get-storage-connection"},{"openapi":"patch /v1/organizations/connections/{connection_identifier}","title":"Update Storage Connection","href":"/api-reference/organization-connections/update-storage-connection"},{"openapi":"post /v1/organizations/connections/{connection_identifier}/test","title":"Test Storage Connection","href":"/api-reference/organization-connections/test-storage-connection"},{"openapi":"delete /v1/organizations/connections/{connection_identifier}","title":"Delete Storage Connection","href":"/api-reference/organization-connections/delete-storage-connection"},{"openapi":"get /v1/organizations/connections/{connection_identifier}/files","title":"List Google Drive Files","href":"/api-reference/organization-connections/list-google-drive-files"},{"openapi":"get /v1/organizations/connections/{connection_identifier}/folders","title":"List Google Drive Folders","href":"/api-reference/organization-connections/list-google-drive-folders"}]},{"group":"Secrets","pages":[{"openapi":"get /v1/organizations/secrets","title":"List Secrets","href":"/api-reference/organization-secrets/list-secrets"},{"openapi":"post /v1/organizations/secrets","title":"Create Secret","href":"/api-reference/organization-secrets/create-secret"},{"openapi":"put /v1/organizations/secrets/{secret_name}","title":"Update Secret","href":"/api-reference/organization-secrets/update-secret"},{"openapi":"delete /v1/organizations/secrets/{secret_name}","title":"Delete Secret","href":"/api-reference/organization-secrets/delete-secret"}]},{"group":"Billing","pages":[{"openapi":"get /v1/organizations/billing/balance","title":"Get Credit Balance","href":"/api-reference/organization-billing/get-credit-balance"},{"openapi":"get /v1/organizations/billing/usage/current","title":"Get Current Usage","href":"/api-reference/organization-billing/get-current-usage"},{"openapi":"get /v1/organizations/billing/usage/vector-backend","title":"Get Vector Backend Usage","href":"/api-reference/organization-billing/get-vector-backend-usage"},{"openapi":"get /v1/organizations/billing/usage/breakdown","title":"Get Usage Breakdown","href":"/api-reference/organization-billing/get-usage-breakdown"},{"openapi":"get /v1/organizations/billing/spending-caps","title":"Get Spending Caps","href":"/api-reference/organization-billing/get-spending-caps"},{"openapi":"post /v1/organizations/billing/spending-caps","title":"Update Spending Caps","href":"/api-reference/organization-billing/update-spending-caps"},{"openapi":"post /v1/organizations/billing/setup-payment-method","title":"Setup Payment Method","href":"/api-reference/organization-billing/setup-payment-method"},{"openapi":"post /v1/organizations/billing/confirm-payment-method","title":"Confirm Payment Method","href":"/api-reference/organization-billing/confirm-payment-method"},{"openapi":"get /v1/organizations/billing/payment-method","title":"Get Payment Method","href":"/api-reference/organization-billing/get-payment-method"},{"openapi":"get /v1/organizations/billing/invoices","title":"List Invoices","href":"/api-reference/organization-billing/list-invoices"},{"openapi":"post /v1/organizations/billing/generate-invoice","title":"Generate Invoice Now","href":"/api-reference/organization-billing/generate-invoice-now"},{"openapi":"post /v1/organizations/billing/enable-auto-billing","title":"Enable Auto Billing","href":"/api-reference/organization-billing/enable-auto-billing"},{"openapi":"post /v1/organizations/billing/disable-auto-billing","title":"Disable Auto Billing","href":"/api-reference/organization-billing/disable-auto-billing"},{"openapi":"post /v1/organizations/billing/estimate","title":"Estimate Cost","href":"/api-reference/organization-billing/estimate-cost"},{"openapi":"get /v1/organizations/billing/transactions","title":"List Transactions","href":"/api-reference/organization-billing/list-transactions"},{"openapi":"post /v1/organizations/billing/checkout","title":"Create Checkout","href":"/api-reference/organization-billing/create-checkout"},{"openapi":"post /v1/organizations/billing/subscribe","title":"Subscribe To Plan","href":"/api-reference/organization-billing/subscribe-plan"},{"openapi":"post /v1/organizations/billing/portal","title":"Open Billing Portal","href":"/api-reference/organization-billing/open-billing-portal"},{"openapi":"get /v1/organizations/billing/subscription","title":"Get Subscription Status","href":"/api-reference/organization-billing/get-subscription-status"},{"openapi":"post /v1/organizations/billing/subscription/cancel","title":"Cancel Subscription","href":"/api-reference/organization-billing/cancel-subscription"},{"openapi":"post /v1/organizations/billing/apply-promo","title":"Apply Promo","href":"/api-reference/organization-billing/apply-promo"},{"openapi":"post /v1/organizations/billing/redeem-promo","title":"Redeem Promo","href":"/api-reference/organization-billing/redeem-promo"}]},{"group":"Usage","pages":[{"openapi":"get /v1/organizations/usage","title":"Get Org Usage","href":"/api-reference/organization-usage/get-org-usage"},{"openapi":"get /v1/organizations/api-keys/{key_id}/usage","title":"Get Api Key Usage","href":"/api-reference/organization-usage/get-api-key-usage"},{"openapi":"get /v1/organizations/api-keys/{key_id}/usage/endpoints","title":"Get Api Key Endpoint Breakdown","href":"/api-reference/organization-usage/get-api-key-endpoint-breakdown"}]},{"group":"Audit Logs","pages":[{"openapi":"get /v1/organizations/audit/logs","title":"List Audit Logs","href":"/api-reference/organization-audit/list-audit-logs"},{"openapi":"get /v1/organizations/audit/logs/export","title":"Export Audit Logs","href":"/api-reference/organization-audit/export-audit-logs"},{"openapi":"get /v1/organizations/audit/logs/{audit_id}","title":"Get Audit Log","href":"/api-reference/organization-audit/get-audit-log"},{"openapi":"get /v1/organizations/audit/settings","title":"Get Audit Settings","href":"/api-reference/organization-audit/get-audit-settings"},{"openapi":"patch /v1/organizations/audit/settings","title":"Update Audit Settings","href":"/api-reference/organization-audit/update-audit-settings"}]},{"group":"Privacy (DSAR)","pages":[{"openapi":"post /v1/organizations/dsar/export","title":"Request Data Export","href":"/api-reference/data-subject-access-requests/request-data-export"},{"openapi":"post /v1/organizations/dsar/delete","title":"Request Data Deletion","href":"/api-reference/data-subject-access-requests/request-data-deletion"},{"openapi":"get /v1/organizations/dsar/status","title":"List Dsar Requests","href":"/api-reference/data-subject-access-requests/list-dsar-requests"}]},{"openapi":"get /v1/organizations/credits","title":"Get Credits","href":"/api-reference/organizations/get-credits"},{"group":"Infrastructure","pages":[{"openapi":"get /v1/organizations/infrastructure/summary","title":"Get Infrastructure","href":"/api-reference/organization-infrastructure/get-infrastructure"}]}]},{"group":"Pricing","pages":[{"openapi":"get /v1/billing/pricing","title":"Get Pricing Configuration","href":"/api-reference/pricing/get-pricing-configuration"}]},{"group":"Support","pages":[{"openapi":"post /v1/support/tickets","title":"Create Support Ticket","href":"/api-reference/support/create-support-ticket"},{"openapi":"get /v1/support/tickets","title":"List Support Tickets","href":"/api-reference/support/list-support-tickets"},{"openapi":"post /v1/support/tickets/list","title":"List Support Tickets (org + global).","href":"/api-reference/support/list-support-tickets-list"},{"openapi":"get /v1/support/tickets/{ticket_identifier}","title":"Get Support Ticket (with message thread).","href":"/api-reference/support/get-support-ticket"},{"openapi":"patch /v1/support/tickets/{ticket_identifier}","title":"Update a support ticket (status/priority).","href":"/api-reference/support/update-support-ticket"},{"openapi":"post /v1/support/tickets/{ticket_identifier}/messages","title":"Reply to a support ticket.","href":"/api-reference/support/reply-support-ticket"},{"openapi":"post /v1/support/comms/list","title":"List correspondence (ticket messages + broadcasts, org + global).","href":"/api-reference/support/list-correspondence"},{"openapi":"get /v1/support/comms","title":"List Correspondence","href":"/api-reference/support/list-correspondence-get"},{"openapi":"post /v1/support/comms/broadcast","title":"Create a broadcast communication (Mixpeek admin only).","href":"/api-reference/support/create-broadcast-communication"},{"openapi":"post /v1/support/videos/upload-url","title":"Presigned PUT to upload a support video to cold storage (admin only).","href":"/api-reference/support/presigned-put-upload-support-video-cold"},{"openapi":"post /v1/support/videos","title":"Register a support video (admin only); triggers Gemini review for uploads.","href":"/api-reference/support/register-support-video-triggers-gemini-review"},{"openapi":"get /v1/support/videos","title":"List Support Videos","href":"/api-reference/support/list-support-videos"},{"openapi":"post /v1/support/videos/list","title":"List curated support videos (org + global).","href":"/api-reference/support/list-curated-support-videos"},{"openapi":"get /v1/support/videos/{video_identifier}","title":"Get a support video (with presigned playback URL + chapters).","href":"/api-reference/support/get-support-video"}]}]},{"group":"Advanced","pages":[{"group":"Apps","pages":[{"openapi":"post /v1/apps","title":"Create an App","href":"/api-reference/apps/create-app"},{"openapi":"get /v1/apps","title":"List Apps","href":"/api-reference/apps/list-apps"},{"openapi":"get /v1/apps/{app_id}","title":"Get an App","href":"/api-reference/apps/get-app"},{"openapi":"patch /v1/apps/{app_id}","title":"Update an App","href":"/api-reference/apps/update-app"},{"openapi":"delete /v1/apps/{app_id}","title":"Delete an App","href":"/api-reference/apps/delete-app"},{"openapi":"post /v1/apps/{app_id}/publish","title":"Publish an App","href":"/api-reference/apps/publish-app"},{"openapi":"post /v1/apps/{app_id}/rollback","title":"Rollback an App","href":"/api-reference/apps/rollback-app"},{"group":"Deploy","pages":[{"openapi":"post /v1/apps/{app_id}/deploy","title":"Deploy an App","href":"/api-reference/apps/deploy-app"},{"openapi":"post /v1/apps/{app_id}/deploy/upload-url","title":"Get presigned upload URL","href":"/api-reference/apps/get-deploy-upload-url"},{"title":"Get Deploy Status","openapi":"GET /v1/apps/{app_id}/deploys/{deploy_id}","href":"/api-reference/apps/get-deploy-status"},{"openapi":"get /v1/apps/{app_id}/deploys/{deploy_id}/logs/stream","title":"Stream deploy logs (SSE)","href":"/api-reference/apps/stream-deploy-logs-sse"},{"openapi":"post /v1/apps/{app_id}/deploy/verify-upload","title":"Verify a presigned-URL upload landed in S3","href":"/api-reference/apps/verify-a-presigned-url-upload-landed-in-s3"},{"openapi":"post /v1/apps/{app_id}/promote","title":"Promote staging to production","href":"/api-reference/apps/promote-staging-to-production"}]},{"group":"GitHub","pages":[{"openapi":"post /v1/apps/{app_id}/connect-repo","title":"Connect a GitHub repository","href":"/api-reference/apps/connect-a-github-repository"},{"openapi":"delete /v1/apps/{app_id}/connect-repo","title":"Disconnect GitHub repository","href":"/api-reference/apps/disconnect-github-repository"}]},{"group":"Users","pages":[{"openapi":"get /v1/apps/{app_id}/users","title":"List app users","href":"/api-reference/apps/list-app-users"},{"openapi":"post /v1/apps/{app_id}/users/invite","title":"Invite a user","href":"/api-reference/apps/invite-a-user"},{"openapi":"get /v1/apps/{app_id}/users/invitations","title":"List pending invitations","href":"/api-reference/apps/list-pending-invitations"},{"openapi":"patch /v1/apps/{app_id}/users/{user_id}/role","title":"Update user role","href":"/api-reference/apps/update-user-role"},{"openapi":"delete /v1/apps/{app_id}/users/{user_id}","title":"Remove a user","href":"/api-reference/apps/remove-a-user"},{"openapi":"delete /v1/apps/{app_id}/users/invitations/{invitation_id}","title":"Revoke an invitation","href":"/api-reference/apps/revoke-an-invitation"}]},{"group":"Versions","pages":[{"openapi":"get /v1/apps/{app_id}/versions","title":"List version history","href":"/api-reference/apps/list-versions"},{"title":"Get Version Details","openapi":"GET /v1/apps/{app_id}/versions/{version}","href":"/api-reference/apps/get-version"},{"title":"Diff Two Versions","openapi":"GET /v1/apps/{app_id}/versions/{from_version}/diff/{to_version}","href":"/api-reference/apps/diff-versions"},{"title":"Download Version Bundle","openapi":"GET /v1/apps/{app_id}/versions/{version}/download","href":"/api-reference/apps/download-version"},{"title":"Restore a Version","openapi":"POST /v1/apps/{app_id}/versions/{version}/restore","href":"/api-reference/apps/restore-version"}]},{"group":"Domains","pages":[{"openapi":"post /v1/apps/{app_id}/domains","title":"Add a custom domain","href":"/api-reference/apps/add-domain"},{"openapi":"get /v1/apps/{app_id}/domains","title":"List custom domains","href":"/api-reference/apps/list-domains"},{"openapi":"delete /v1/apps/{app_id}/domains/{domain}","title":"Remove a domain","href":"/api-reference/apps/delete-domain"},{"openapi":"post /v1/apps/{app_id}/domains/{domain}/verify","title":"Trigger DNS verification","href":"/api-reference/apps/verify-domain"}]},{"group":"Analytics","pages":[{"openapi":"get /v1/apps/{app_id}/analytics","title":"Get app analytics overview","href":"/api-reference/apps/get-app-analytics-overview"},{"openapi":"get /v1/apps/{app_id}/error-rate","title":"Get recent error rate","href":"/api-reference/apps/get-recent-error-rate"},{"openapi":"get /v1/apps/{app_id}/logs","title":"Get runtime or request logs","href":"/api-reference/apps/get-runtime-or-request-logs"}]},{"group":"Public","pages":[{"openapi":"get /v1/public/apps/{slug}/config","title":"Get public App config","href":"/api-reference/public-apps-api/get-app-config"},{"openapi":"post /v1/public/apps/{slug}/search","title":"Execute an App tab search","href":"/api-reference/public-apps-api/search-app"},{"openapi":"get /v1/public/apps/{slug}/gallery","title":"Get App featured gallery","href":"/api-reference/public-apps-api/get-app-gallery"},{"openapi":"get /v1/public/apps/{slug}/taxonomies/{taxonomy_id}/tree","title":"Get taxonomy node tree for an App","href":"/api-reference/public-apps-api/get-app-taxonomies"},{"openapi":"post /v1/public/apps/{slug}/interactions","title":"Track an App interaction event","href":"/api-reference/public-apps-api/track-app-interaction"}]},{"openapi":"get /v1/apps/{app_id}/github/install-url","title":"Get the GitHub App install URL for this app","href":"/api-reference/apps/get-github-app-install-url-app"}]},{"group":"Agent Sessions","pages":[{"openapi":"post /v1/agents/sessions","title":"Create Session","href":"/api-reference/agent-sessions/create-session"},{"openapi":"post /v1/agents/sessions/list","title":"List Sessions","href":"/api-reference/agent-sessions/list-sessions"},{"openapi":"get /v1/agents/sessions/{session_id}","title":"Get Session","href":"/api-reference/agent-sessions/get-session"},{"openapi":"patch /v1/agents/sessions/{session_id}","title":"Patch Session","href":"/api-reference/agent-sessions/patch-session"},{"openapi":"post /v1/agents/sessions/{session_id}/messages","title":"Send Message","href":"/api-reference/agent-sessions/send-message"},{"openapi":"get /v1/agents/sessions/{session_id}/history","title":"Get History","href":"/api-reference/agent-sessions/get-history"},{"openapi":"get /v1/agents/sessions/tools","title":"List Tools","href":"/api-reference/agent-sessions/list-tools"},{"openapi":"post /v1/agents/sessions/intent/detect","title":"Detect Intent","href":"/api-reference/agent-sessions/detect-intent"},{"openapi":"post /v1/agents/sessions/{session_id}/confirmations/{confirmation_id}","title":"Respond To Confirmation","href":"/api-reference/agent-sessions/respond-to-confirmation"},{"openapi":"post /v1/agents/sessions/{session_id}/feedback","title":"Submit Feedback","href":"/api-reference/agent-sessions/submit-feedback"},{"openapi":"delete /v1/agents/sessions/{session_id}","title":"Terminate Session","href":"/api-reference/agent-sessions/terminate-session"}]},{"group":"Templates","pages":[{"group":"Namespace","pages":[{"openapi":"get /v1/templates/namespaces","title":"List Namespace Templates","href":"/api-reference/templates/list-namespace-templates"},{"openapi":"get /v1/templates/namespaces/{template_id}","title":"Get Namespace Template","href":"/api-reference/templates/get-namespace-template"},{"openapi":"post /v1/templates/namespaces/from-namespace/{namespace_id}","title":"Create Namespace Template","href":"/api-reference/templates/create-namespace-template"}]},{"group":"Retriever","pages":[{"openapi":"post /v1/templates/retrievers","title":"List Retriever Templates","href":"/api-reference/templates/list-retriever-templates"},{"openapi":"get /v1/templates/retrievers/{template_id}","title":"Get Retriever Template","href":"/api-reference/templates/get-retriever-template"},{"openapi":"post /v1/templates/retrievers/from-retriever/{retriever_id}","title":"Create Retriever Template","href":"/api-reference/templates/create-retriever-template"},{"openapi":"post /v1/templates/retrievers/{template_id}/instantiate","title":"Instantiate Retriever Template","href":"/api-reference/templates/instantiate-retriever-template"}]},{"group":"Collection","pages":[{"openapi":"post /v1/templates/collections","title":"List Collection Templates","href":"/api-reference/templates/list-collection-templates"},{"openapi":"get /v1/templates/collections/{template_id}","title":"Get Collection Template","href":"/api-reference/templates/get-collection-template"},{"openapi":"post /v1/templates/collections/from-collection/{collection_id}","title":"Create Collection Template","href":"/api-reference/templates/create-collection-template"},{"openapi":"post /v1/templates/collections/{template_id}/instantiate","title":"Instantiate Collection Template","href":"/api-reference/templates/instantiate-collection-template"}]},{"group":"Bucket","pages":[{"openapi":"post /v1/templates/buckets","title":"List Bucket Templates","href":"/api-reference/templates/list-bucket-templates"},{"openapi":"get /v1/templates/buckets/{template_id}","title":"Get Bucket Template","href":"/api-reference/templates/get-bucket-template"},{"openapi":"post /v1/templates/buckets/from-bucket/{bucket_id}","title":"Create Bucket Template","href":"/api-reference/templates/create-bucket-template"},{"openapi":"post /v1/templates/buckets/{template_id}/instantiate","title":"Instantiate Bucket Template","href":"/api-reference/templates/instantiate-bucket-template"}]},{"group":"Cluster","pages":[{"openapi":"post /v1/templates/clusters","title":"List Cluster Templates","href":"/api-reference/templates/list-cluster-templates"},{"openapi":"get /v1/templates/clusters/{template_id}","title":"Get Cluster Template","href":"/api-reference/templates/get-cluster-template"},{"openapi":"post /v1/templates/clusters/from-cluster/{cluster_id}","title":"Create Cluster Template","href":"/api-reference/templates/create-cluster-template"},{"openapi":"post /v1/templates/clusters/{template_id}/instantiate","title":"Instantiate Cluster Template","href":"/api-reference/templates/instantiate-cluster-template"}]},{"group":"Taxonomy","pages":[{"openapi":"post /v1/templates/taxonomies","title":"List Taxonomy Templates","href":"/api-reference/templates/list-taxonomy-templates"},{"openapi":"get /v1/templates/taxonomies/{template_id}","title":"Get Taxonomy Template","href":"/api-reference/templates/get-taxonomy-template"},{"openapi":"post /v1/templates/taxonomies/from-taxonomy/{taxonomy_id}","title":"Create Taxonomy Template","href":"/api-reference/templates/create-taxonomy-template"},{"openapi":"post /v1/templates/taxonomies/{template_id}/instantiate","title":"Instantiate Taxonomy Template","href":"/api-reference/templates/instantiate-taxonomy-template"}]},{"group":"Public Templates","pages":[{"openapi":"get /v1/public/templates/namespaces","title":"List Public Namespace Templates","href":"/api-reference/public-templates-api/list-public-namespace-templates"},{"openapi":"get /v1/public/templates/namespaces/{template_id}","title":"Get Public Namespace Template","href":"/api-reference/public-templates-api/get-public-namespace-template"},{"openapi":"get /v1/public/templates/retrievers","title":"List Public Retriever Templates","href":"/api-reference/public-templates-api/list-public-retriever-templates"},{"openapi":"get /v1/public/templates/retrievers/{template_id}","title":"Get Public Retriever Template","href":"/api-reference/public-templates-api/get-public-retriever-template"},{"openapi":"get /v1/public/templates/scaffolds","title":"List Scaffolds","href":"/api-reference/public-templates-api/list-scaffolds"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}","title":"Get Scaffold","href":"/api-reference/public-templates-api/get-scaffold"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}/sample-data","title":"Get Scaffold Sample Data","href":"/api-reference/public-templates-api/get-scaffold-sample-data"},{"openapi":"get /v1/public/templates/scaffolds/{template_id}/manifest","title":"Get Scaffold Manifest","href":"/api-reference/public-templates-api/get-scaffold-manifest"}]},{"group":"Scaffold Templates","pages":[{"openapi":"post /v1/templates/scaffolds/default","title":"Get Or Create Default Namespace","href":"/api-reference/scaffold-templates/get-or-create-default-namespace"},{"openapi":"get /v1/templates/scaffolds/{template_id}/manifest","title":"Get Scaffold Template Manifest","href":"/api-reference/scaffold-templates/get-scaffold-template-manifest"}]}]},{"group":"Manifest","pages":[{"openapi":"post /v1/manifest/apply","title":"Apply Manifest","href":"/api-reference/manifest/apply-manifest"},{"openapi":"post /v1/manifest/validate","title":"Validate Manifest","href":"/api-reference/manifest/validate-manifest"},{"openapi":"get /v1/manifest/export","title":"Export Manifest Get","href":"/api-reference/manifest/export-manifest"},{"openapi":"post /v1/manifest/diff","title":"Diff Manifest","href":"/api-reference/manifest/diff-manifest"},{"openapi":"post /v1/manifest/generate","title":"Generate Manifest","href":"/api-reference/manifest/generate-manifest"},{"openapi":"post /v1/manifest/lint","title":"Lint Manifest","href":"/api-reference/manifest/lint-manifest"}]},{"group":"Analytics","pages":[{"group":"Namespace","pages":[{"openapi":"get /v1/analytics/namespaces/summary","title":"Get Namespace Summary","href":"/api-reference/analytics/get-namespace-summary"},{"openapi":"get /v1/analytics/indexes/usage","title":"Get Field Usage","href":"/api-reference/analytics/get-field-usage"},{"openapi":"get /v1/analytics/namespaces/fields/performance","title":"Get Field Performance","href":"/api-reference/analytics/get-field-performance"},{"openapi":"get /v1/analytics/namespaces/fields/most-queried","title":"Get Most Queried Fields","href":"/api-reference/analytics/get-most-queried-fields"},{"openapi":"get /v1/analytics/namespaces/indexes/compound-patterns","title":"Get Compound Index Patterns","href":"/api-reference/analytics/get-compound-index-patterns"},{"openapi":"get /v1/analytics/namespaces/indexes/recommendations","title":"Get Index Recommendations","href":"/api-reference/analytics/get-index-recommendations"},{"openapi":"get /v1/analytics/indexes/suggestions","title":"Get Index Suggestions","href":"/api-reference/analytics/get-index-suggestions"},{"openapi":"get /v1/analytics/namespaces/errors","title":"Get Namespace Errors","href":"/api-reference/analytics/get-namespace-errors"}]},{"group":"Buckets","pages":[{"openapi":"get /v1/analytics/buckets/{bucket_id}/health","title":"Get Bucket Health","href":"/api-reference/analytics/get-bucket-health"},{"openapi":"get /v1/analytics/buckets/health","title":"Get Namespace Buckets Health","href":"/api-reference/analytics/get-namespace-buckets-health"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/storage","title":"Get Bucket Storage","href":"/api-reference/analytics/get-bucket-storage"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/usage","title":"Get Bucket Usage","href":"/api-reference/analytics/get-bucket-usage"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/sync-performance","title":"Get Sync Performance","href":"/api-reference/analytics/get-sync-performance"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/sync-comparison","title":"Get Sync Comparison","href":"/api-reference/analytics/get-sync-comparison"},{"openapi":"get /v1/analytics/buckets/{bucket_id}/upload-performance","title":"Get Upload Performance","href":"/api-reference/analytics/get-upload-performance"}]},{"group":"Collections","pages":[{"openapi":"get /v1/analytics/collections/{collection_id}/overview","title":"Get Collection Overview","href":"/api-reference/analytics/get-collection-overview"},{"openapi":"get /v1/analytics/collections/{collection_id}/growth","title":"Get Document Growth","href":"/api-reference/analytics/get-document-growth"},{"openapi":"get /v1/analytics/collections/{collection_id}/latency","title":"Get Latency Metrics","href":"/api-reference/analytics/get-latency-metrics"},{"openapi":"get /v1/analytics/collections/{collection_id}/failures","title":"Get Failure Analysis","href":"/api-reference/analytics/get-failure-analysis"},{"openapi":"get /v1/analytics/extractors/performance","title":"Get Extractor Performance","href":"/api-reference/analytics/get-extractor-performance"}]},{"group":"Retrievers","pages":[{"openapi":"get /v1/analytics/retrievers/{retriever_id}/performance","title":"Get Retriever Performance","href":"/api-reference/analytics/get-retriever-performance"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/signals","title":"Get Retriever Signals","href":"/api-reference/analytics/get-retriever-signals"},{"openapi":"get /v1/analytics/namespaces/queries/slow","title":"Get Slow Queries","href":"/api-reference/analytics/get-slow-queries"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/stages","title":"Get Stage Breakdown","href":"/api-reference/analytics/get-stage-breakdown"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/cache-performance","title":"Get Cache Performance","href":"/api-reference/analytics/get-cache-performance"},{"openapi":"post /v1/analytics/retrievers/{retriever_id}/analyze-tuning","title":"Analyze For Tuning","href":"/api-reference/analytics/analyze-for-tuning"}]},{"group":"Engine","pages":[{"openapi":"get /v1/analytics/performance/engine","title":"Get Engine Performance","href":"/api-reference/analytics/get-engine-performance"},{"openapi":"get /v1/analytics/performance/engine/bottlenecks","title":"Analyze Bottlenecks","href":"/api-reference/analytics/analyze-bottlenecks"},{"openapi":"get /v1/analytics/performance/engine/extractors","title":"Get Extractor Breakdown","href":"/api-reference/analytics/get-extractor-breakdown"},{"openapi":"get /v1/analytics/performance/engine/stages","title":"Get Engine Stage Breakdown","href":"/api-reference/analytics/get-engine-stage-breakdown"},{"openapi":"get /v1/analytics/performance/engine/slow-operations","title":"Get Slowest Operations","href":"/api-reference/analytics/get-slowest-operations"}]},{"group":"Taxonomies","pages":[{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/assignments","title":"Get Assignment Metrics","href":"/api-reference/analytics/get-assignment-metrics"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/confidence","title":"Get Confidence Distribution","href":"/api-reference/analytics/get-confidence-distribution"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/labels","title":"Get Label Distribution","href":"/api-reference/analytics/get-label-distribution"},{"openapi":"get /v1/analytics/taxonomies/{taxonomy_id}/enrichments","title":"Get Enrichment History","href":"/api-reference/analytics/get-enrichment-history"}]},{"group":"Clusters","pages":[{"openapi":"get /v1/analytics/clusters/{cluster_id}/execution-history","title":"Get Execution History","href":"/api-reference/analytics/get-execution-history"},{"openapi":"get /v1/analytics/clusters/{cluster_id}/failures","title":"Get Failure Analysis","href":"/api-reference/analytics/get-failure-analysis-1"}]},{"group":"Inference \u0026 Extractors","pages":[{"openapi":"get /v1/analytics/collections/{collection_id}/extractors","title":"Get Extractor Performance","href":"/api-reference/analytics/get-extractor-performance-1"}]},{"group":"Diagnostics","pages":[{"openapi":"get /v1/analytics/performance/batches/{batch_id}/diagnostics","title":"Get Batch Diagnostics","href":"/api-reference/analytics/get-batch-diagnostics"},{"openapi":"get /v1/analytics/usage/summary","title":"Get Usage Summary","href":"/api-reference/analytics/get-usage-summary"},{"openapi":"get /v1/analytics/retrievers/{retriever_id}/slow-queries","title":"Get Slowest Queries","href":"/api-reference/analytics/get-slowest-queries"}]}]},{"group":"Discovery","pages":[{"openapi":"get /v1/discovery","title":"Get All Discovery Information","href":"/api-reference/discovery/get-all-discovery-information"},{"openapi":"get /v1/discovery/extractors","title":"List Available Feature Extractors","href":"/api-reference/discovery/list-available-feature-extractors"},{"openapi":"get /v1/discovery/stages","title":"List Available Retriever Stages with Examples","href":"/api-reference/discovery/list-available-retriever-stages-with-examples"},{"openapi":"get /v1/discovery/schema","title":"Get Manifest Schema for Agent Configuration","href":"/api-reference/discovery/get-manifest-schema-for-agent-configuration"}]},{"group":"Inference","pages":[{"openapi":"post /v1/inference","title":"Execute Raw Inference","href":"/api-reference/inference/execute-raw-inference"}]},{"group":"Events","pages":[{"openapi":"get /v1/events","title":"List change feed events","href":"/api-reference/events/list-events"}]},{"group":"Resource Search","pages":[{"openapi":"post /v1/resources/search","title":"Search Resources","href":"/api-reference/resource-search/search-resources"}]},{"group":"Onboarding","pages":[{"openapi":"post /v1/onboarding/infer-config","title":"Infer onboarding configuration","href":"/api-reference/onboarding/infer-onboarding-configuration"},{"openapi":"get /v1/onboarding/suggested-config","title":"Get the org's signup-time suggested namespace","href":"/api-reference/onboarding/get-suggested-config"},{"openapi":"post /v1/signup/agent","title":"Sign up as an agent","href":"/api-reference/onboarding/agent-signup"}]}]}]}]}]},"basePath":"","title":"List Collections - 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"]}