Marketplace API
The marketplace is the catalog of available extensions. Extensions must be published to the marketplace before they can be installed into a workspace.
Development Note
The marketplace is currently backed by MarketplaceServiceStub in development. In production, this would connect to a real registry service. The stub is the source of truth for available extensions in local development.
Browse Marketplace
Base path: /api/marketplace/extensions
List Extensions
GET /api/marketplace/extensions?search=crm&category=productivityQuery Parameters
| Parameter | Required | Description |
|---|---|---|
search | — | Full-text search term |
category | — | Filter by category |
Response
{
"code": "SUCCESS",
"data": [
{
"extensionKey": "crm-extension",
"name": "CRM Extension",
"description": "Customer relationship management features",
"category": "productivity",
"latestVersion": "1.0.0",
"author": "MetaOne"
}
]
}Get Extension Details
GET /api/marketplace/extensions/{extensionKey}Response
{
"code": "SUCCESS",
"data": {
"extensionKey": "crm-extension",
"name": "CRM Extension",
"description": "Full CRM capabilities including products, deals, and contacts",
"category": "productivity",
"latestVersion": "1.0.0",
"versions": [
{ "version": "1.0.0", "releaseDate": "2026-01-01", "yanked": false }
],
"permissions": [
"crm.product.read",
"crm.product.write",
"crm.deal.read"
]
}
}Marketplace Admin
Base path: /api/admin/marketplace/extensions
All endpoints require
ADMINrole.
Publish Extension
Registers a new extension in the marketplace catalog.
POST /api/admin/marketplace/extensions
Content-Type: application/jsonRequest Body (PublishExtensionRequest)
| Field | Type | Required | Description |
|---|---|---|---|
extensionKey | string | ✅ | Unique extension identifier |
name | string | ✅ | Display name |
description | string | — | Short description |
category | string | — | Category tag |
Response 201 Created
Update Extension Metadata
PUT /api/admin/marketplace/extensions/{extensionKey}
Content-Type: application/jsonPublish Version
Adds a new version of an extension to the marketplace.
POST /api/admin/marketplace/extensions/{extensionKey}/versions
Content-Type: application/jsonRequest Body (PublishVersionRequest)
| Field | Type | Required | Description |
|---|---|---|---|
version | string | ✅ | Semantic version (e.g. 1.1.0) |
artifactUrl | string | ✅ | URL to the extension JAR artifact |
manifestUrl | string | — | URL to the extension manifest JSON |
requiresPlatform | string | — | Minimum platform version required |
requiresSdk | string | — | Minimum SDK version required |
changelog | string | — | Release notes for this version |
Response 201 Created
Yank Version
Marks a version as unavailable (yanked). Yanked versions cannot be newly installed but existing installations are unaffected.
DELETE /api/admin/marketplace/extensions/{extensionKey}/versions/{version}Response 204 No Content