Moonborn — API · marketplace
Update listing metadata (title/summary/license/price/tags)
License changes that are *more* restrictive (e.g. cc_by → cc_by_nc) trigger a re-moderation cycle and the listing flips to `in_review` until cleared. Less-restrictive changes pass through.
PATCH/v1/marketplace/listings/{id}scope · Bearer (API key or session JWT)
Path parameters
| Field | Type | Description |
|---|---|---|
| idreq | string | Listing id (e.g. `lst_*`). |
Request body
| Field | Type | Description |
|---|---|---|
| title | string | |
| summary | string | |
| description | string | |
| license | string · "cc_by" | "cc_by_sa" | "cc_by_nc" | "cc_by_nd" | "commercial" | "proprietary" | |
| priceUsdMicros | number | |
| tags | string[] |
Responses
200OK
Body
| Field | Type | Description |
|---|---|---|
| listingIdreq | string | |
| slugreq | string | |
| orgIdreq | string | |
| personaIdreq | string | |
| titlereq | string | |
| summaryreq | string | |
| licensereq | string · "cc_by" | "cc_by_sa" | "cc_by_nc" | "cc_by_nd" | "commercial" | "proprietary" | |
| priceUsdMicrosreq | number | |
| statusreq | string · "draft" | "in_review" | "published" | "unpublished" | "removed" | |
| ratingsAvgreq | number | |
| ratingsCountreq | number | |
| installsreq | number | |
| forksreq | number | |
| tagsreq | string[] | |
| publishedAtreq | string | |
| updatedAtreq | string | |
| descriptionreq | string | |
| moderationFlags | string[] |
401Unauthenticated
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
403Caller is not the listing owner
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
404Listing not found
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
422Validation error
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
Examples
cURL
curl -X PATCH https://api.moonborn.co/v1/marketplace/listings/<id> \
-H "Authorization: Bearer $MOONBORN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "<string>",
"summary": "<string>",
"description": "<string>",
"license": "cc_by",
"priceUsdMicros": 0,
"tags": [
"<string>"
]
}'TypeScript
import Moonborn from '@moonborn/sdk';
const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });
const result = await client.marketplace.updateListing({
id: '<id>',
title: "<string>",
summary: "<string>",
description: "<string>",
license: "cc_by",
priceUsdMicros: 0,
tags: ["<string>"],
});Python
import os
from moonborn import Moonborn
client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])
result = client.marketplace.update_listing(
id="<id>",
title="<string>",
summary="<string>",
description="<string>",
license="cc_by",
price_usd_micros=0,
tags=["<string>"],
)