Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

The Plugin Marketplace lets organizations share custom feature extractors with the Mixpeek community. Publish your plugins for others to install, or browse and install community plugins into your own organization.
Enterprise only. Publishing and installing marketplace plugins requires an Enterprise plan.

How It Works

The marketplace follows a publish-install model with fork/copy semantics:
  1. Publish — An organization uploads and validates a custom plugin, then publishes it to the marketplace with a globally unique slug
  2. Browse — Any user can browse and search the marketplace (no auth required)
  3. Install — An organization installs a plugin, which copies the archive to their S3 namespace and re-scans for security
  4. Use — The installed plugin is available as a community source plugin with all the same capabilities as a custom plugin

Publishing a Plugin

After uploading and validating a plugin, publish it to the marketplace:
from mixpeek import Mixpeek

client = Mixpeek(api_key="YOUR_API_KEY")

# Publish an existing plugin
result = client.plugins.publish(
    plugin_id="my_text_extractor_1_0_0",
    display_name="My Text Extractor",
    description="Advanced text extraction with custom NLP models",
    tags=["nlp", "text", "embedding"],
    category="text-processing"
)

print(result.public_name)  # "my-text-extractor"
print(result.public_url)   # "https://api.mixpeek.com/v1/public/plugins/my-text-extractor"

Publishing Limits

  • Maximum 10 published plugins per organization
  • public_name must be globally unique (auto-generated from display_name if not provided)
  • Plugin must pass validation and security scan before publishing

Browsing the Marketplace

The public marketplace API requires no authentication:
from mixpeek import Mixpeek

client = Mixpeek()  # No API key needed for browsing

# List all plugins
plugins = client.plugins.marketplace.list(
    page=1,
    page_size=20,
    search="text extraction",
    category="text-processing"
)

for plugin in plugins.results:
    print(f"{plugin.display_name} v{plugin.version} ({plugin.install_count} installs)")

Filtering Options

ParameterDescription
searchFull-text search across name, display name, and description
categoryFilter by category (e.g., text-processing, image-analysis)
capabilityFilter by capability: batch or realtime
tagsFilter by tags (all must match)

Installing a Plugin

Install a marketplace plugin into your organization:
result = client.plugins.install(public_name="my-text-extractor")

print(result.installed_plugin_id)  # "my-text-extractor_1_0_0"
print(result.feature_uri)          # "mixpeek://text_extractor@v1/multilingual_e5_large_instruct_v1"

What Happens During Install

  1. The plugin archive is server-side copied to your organization’s S3 namespace
  2. The archive is re-scanned for security violations (strict mode)
  3. A new plugin record is created with source: "community" and tracking fields
  4. The marketplace install_count is incremented

Using an Installed Plugin

Installed community plugins work exactly like custom plugins. Use them in collections, retrievers, and any extraction pipeline:
# Create a collection using the installed plugin's feature extractor
client.collections.create(
    namespace_id="ns_abc123",
    collection_name="my-collection",
    source={"type": "bucket", "bucket_ids": ["bkt_xyz"]},
    feature_extractor={
        "feature_extractor_name": "text_extractor",
        "version": "v1",
        "input_mappings": {"text": "description"},
    }
)
The feature_uri from the installed plugin’s manifest determines which builtin extractor is delegated to. This means community plugins can leverage the full Mixpeek extraction infrastructure.

Trust Tiers

TierDescription
communityDefault tier for all published plugins
verifiedPlugins reviewed and verified by the Mixpeek team
officialPlugins published by Mixpeek

Managing Published Plugins

Update a Published Plugin

curl -X PATCH https://api.mixpeek.com/v1/plugins/my_plugin_1_0_0/publish \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "Updated description", "tags": ["nlp", "updated"]}'

Unpublish a Plugin

curl -X DELETE https://api.mixpeek.com/v1/plugins/my_plugin_1_0_0/publish \
  -H "Authorization: Bearer YOUR_API_KEY"
Unpublishing removes the listing from the marketplace. Organizations that already installed the plugin retain their copy.

Studio UI

The Plugin Marketplace is accessible in the Studio under Namespaces > Plugin Marketplace. From there you can:
  • Browse and search available community plugins
  • View plugin details (version, capabilities, install count)
  • Install plugins with one click
  • Publish your own plugins via the Publish to Marketplace action in the plugin dropdown menu