Moonborn — API · marketplace
Install a listing into the caller workspace (creates a persona clone)
License compatibility is enforced: `commercial` licenses require a completed Purchase by the caller; `proprietary` always rejects. The cloned persona is a fresh resource; subsequent edits do not flow back upstream.
POST/v1/marketplace/listings/{id}/installscope · Bearer (API key or session JWT)
Path parameters
| Field | Type | Description |
|---|---|---|
| idreq | string | Listing id (e.g. `lst_*`). |
Request body
| Field | Type | Description |
|---|---|---|
| targetWorkspaceIdreq | string |
Responses
201Installed
Body
| Field | Type | Description |
|---|---|---|
| installedPersonaIdreq | string | |
| listingreq | object | |
| listing.listingIdreq | string | |
| listing.slugreq | string | |
| listing.orgIdreq | string | |
| listing.personaIdreq | string | |
| listing.titlereq | string | |
| listing.summaryreq | string | |
| listing.licensereq | string · "cc_by" | "cc_by_sa" | "cc_by_nc" | "cc_by_nd" | "commercial" | "proprietary" | |
| listing.priceUsdMicrosreq | number | |
| listing.statusreq | string · "draft" | "in_review" | "published" | "unpublished" | "removed" | |
| listing.ratingsAvgreq | number | |
| listing.ratingsCountreq | number | |
| listing.installsreq | number | |
| listing.forksreq | number | |
| listing.tagsreq | string[] | |
| listing.publishedAtreq | string | |
| listing.updatedAtreq | string |
401Unauthenticated
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
402Purchase required (commercial license)
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
403License incompatible (proprietary)
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
404Listing not found / not published
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
409Listing not in published state
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
Examples
cURL
curl -X POST https://api.moonborn.co/v1/marketplace/listings/<id>/install \
-H "Authorization: Bearer $MOONBORN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"targetWorkspaceId": "<string>"
}'TypeScript
import Moonborn from '@moonborn/sdk';
const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });
const result = await client.marketplace.installListing({
id: '<id>',
targetWorkspaceId: "<string>",
});Python
import os
from moonborn import Moonborn
client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])
result = client.marketplace.install_listing(
id="<id>",
target_workspace_id="<string>",
)