Skip to content

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

http
GET /api/marketplace/extensions?search=crm&category=productivity

Query Parameters

ParameterRequiredDescription
searchFull-text search term
categoryFilter by category

Response

json
{
  "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

http
GET /api/marketplace/extensions/{extensionKey}

Response

json
{
  "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 ADMIN role.

Publish Extension

Registers a new extension in the marketplace catalog.

http
POST /api/admin/marketplace/extensions
Content-Type: application/json

Request Body (PublishExtensionRequest)

FieldTypeRequiredDescription
extensionKeystringUnique extension identifier
namestringDisplay name
descriptionstringShort description
categorystringCategory tag

Response 201 Created


Update Extension Metadata

http
PUT /api/admin/marketplace/extensions/{extensionKey}
Content-Type: application/json

Publish Version

Adds a new version of an extension to the marketplace.

http
POST /api/admin/marketplace/extensions/{extensionKey}/versions
Content-Type: application/json

Request Body (PublishVersionRequest)

FieldTypeRequiredDescription
versionstringSemantic version (e.g. 1.1.0)
artifactUrlstringURL to the extension JAR artifact
manifestUrlstringURL to the extension manifest JSON
requiresPlatformstringMinimum platform version required
requiresSdkstringMinimum SDK version required
changelogstringRelease 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.

http
DELETE /api/admin/marketplace/extensions/{extensionKey}/versions/{version}

Response 204 No Content

MetaOne Platform Documentation