Naming. On this surface, custom extractors are addressed as plugins: the path segment is
/plugins, and a deployed extractor’s plugin_id is {name}_{version} with dots replaced by underscores — e.g. text_embed@1.0.0 → text_embed_1_0_0. All endpoints are namespace-scoped and take Authorization: Bearer $MIXPEEK_API_KEY.Lifecycle: upload → deploy → search
The CLI (python server/scripts/api/plugins.py push / deploy) wraps these calls. The raw HTTP flow:
DEPLOYED, reference the extractor’s feature_uri in a collection’s feature_extractor and in retriever feature_search stages exactly as you would a built-in — see the end-to-end walkthrough.
Endpoint reference
All paths are prefixed with/v1/namespaces/{namespace_id}.
Upload & deploy
Discover & inspect
Version management
Org plugins & namespace config
CLI equivalents
server/scripts/api/plugins.py is the maintained client for this surface (reads MIXPEEK_API_KEY, MIXPEEK_NAMESPACE, MIXPEEK_API_URL):
See Custom Extractors for the full authoring guide and Local Development for
lint/test.
