Skip to content
Select themeSelect language

`GET /api/marketplace/items` — browse marketplace items with optional filters. Any approved user can browse.

GET
/api/marketplace/items
curl --request GET \
--url https://example.com/api/marketplace/items
kind
string
source_id
string format: uuid
search
string
category
string
tag
string
verified
boolean
include_deprecated
boolean
sort
string

Sort order: “popular” (default), “rating”, or “newest”.

limit
integer format: int64
offset
integer format: int64
Media typeapplication/json
Array<object>

A catalog item — an app, script, bundle, or runner offer listing. Scoped to a source via source_id. The (source_id, slug) pair is unique.

object
categories
required
Array<string>
created_at
required
string format: date-time
deprecated
required
boolean
description
string | null
framework

ADR 0030 W6 — build framework of the item’s latest non-withdrawn version (plain | react | svelte). Populated by list_items / get_item via a correlated subquery; absent in queries that do not project it (e.g. upsert_item RETURNING), where #[sqlx(default)] supplies "plain". Surfaces a framework badge on browse cards. Runtime String; the spec narrows it to the closed [MarketplaceFramework].

string
Allowed values: plain react svelte
id
required
string format: uuid
install_count

#358 — public install popularity: the number of DISTINCT workspaces that have installed this item (marketplace_installs). Populated by list_items / get_item via a correlated subquery mirroring rating; absent (None) in projections that do not select it, where #[sqlx(default)] supplies None.

integer | null format: int64
kind
required
string
name
required
string
price
One of:
null
publisher
One of:
null
rating
One of:
null
seller_profile_id
string | null format: uuid
slug
required
string
source_id
required
string format: uuid
summary
string | null
tags
required
Array<string>
updated_at
required
string format: date-time
verified
required
boolean
Example
[
{
"framework": "plain"
}
]