> ## Documentation Index
> Fetch the complete documentation index at: https://developers.parkes.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish to the marketplace

> Create listings, prepare releases, and publish content for other organizations to install.

The Marketplace API is for publishers managing their listings and releases. Its base URL is:

```text theme={null}
https://api.parkes.ai/marketplace/v1
```

Customers continue to browse, search, inspect published content, and manage installations through the [REST API](https://developers.parkes.ai/INTRODUCTION.md) at `/rest/v1/marketplace`.

## Use your existing credentials

Both APIs accept the same organization-scoped OAuth access tokens and personal tokens. Use the same API host and login; there is no separate Marketplace account or token exchange. See [authentication](https://developers.parkes.ai/AUTHENTICATION.md).

| Scope | Purpose |
| - | - |
| `marketplace:read` | Read listings, releases, items, and analytics within your permissions. |
| `marketplace:write` | Select publishing sources and create or edit drafts and artwork. |
| `marketplace:publish` | Publish releases and change listing visibility. |

Scopes do not grant publisher ownership or enable publishing for an account. The authenticated member must also have the corresponding publisher permissions. All writes follow the shared [idempotency and concurrency rules](https://developers.parkes.ai/WRITES.md).

## Find your listings

The publisher listing collection includes the listings you manage, including unpublished drafts:

```bash theme={null}
curl https://api.parkes.ai/marketplace/v1/listings \
  -H "Authorization: Bearer $PARKES_TOKEN"
```

For the customer catalog, use `GET /rest/v1/marketplace/listings`. Public categories and publisher profiles also remain in the REST API.

## Prepare and publish a release

1. Create a listing with `POST /marketplace/v1/listings`, supplying an authorized `publisher_id`. The response contains the listing and its initial draft release.
2. Find source content with `GET /marketplace/v1/sources?kind=skill`, then add items to the draft. Supported source kinds are `skill`, `automation`, `rule`, and `knowledge`.
3. Update the draft’s metadata, items, and artwork. Fetch the parent release’s current ETag before each conditional write.
4. Validate with `POST /marketplace/v1/releases/{id}/validate`, then publish with `POST /marketplace/v1/releases/{id}/publish`.
5. For a later version, create a new draft with `POST /marketplace/v1/releases` and its `listing_id`.

The reference below documents each request body, permission scope, and response. Publishing requires `marketplace:publish`; the default CLI login does not request that scope. Authorize it explicitly when needed.

## Use the CLI

Command names stay the same. The CLI selects the API for the operation:

```bash theme={null}
# Customer browsing and installations use the REST API.
parkes marketplace listings list
parkes marketplace installations list

# Publisher inventory and draft management use the Marketplace API.
parkes marketplace listings list --owned
parkes marketplace releases create --listing LISTING_UUID
```

CLI **0.1.3 or later** uses the new routes. Existing released clients continue to work through deprecated publisher routes during rollout. New integrations should use `/marketplace/v1` for management.

[Read the CLI reference](https://developers.parkes.ai/cli/reference/MARKETPLACE.md) or [download the Marketplace OpenAPI specification](https://developers.parkes.ai/marketplace-openapi.json).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.