---
title: "Apply marketplace by stable key"
method: PUT
path: "/v1/marketplaces/by-key/{externalKey}"
tags: ["Marketplaces"]
---

# Apply marketplace by stable key

`PUT /v1/marketplaces/by-key/{externalKey}`

## Request

- Base URL: `https://api.openworklabs.com`
- URL: `https://api.openworklabs.com/v1/marketplaces/by-key/{externalKey}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Creates or replaces marketplace metadata. Omitted description and logo are cleared. Memberships and access grants are managed separately. Archived marketplaces must be explicitly restored before applying.

## Path parameters

- `externalKey` string, required

## Request body

- object
  - `name` string, required
  - `description` string, nullable
  - `logoUrl` string, nullable

## Response `200`

The existing resource was replaced.

- PluginArchMarketplaceMutationResponse
  - `ok` true, required
  - `item` PluginArchMarketplace, required
    - `externalKey` string, nullable, required
    - `id` string, typeid, required: Den TypeID with 'mkt_' prefix and a 26-character base32 suffix.
    - `organizationId` string, typeid, required: Den TypeID with 'org_' prefix and a 26-character base32 suffix.
    - `name` string, required
    - `description` string, nullable, required
    - `logoUrl` string, nullable, required
    - `status` 'active' | 'inactive' | 'deleted' | 'archived', required
    - `createdByOrgMembershipId` string, typeid, required: Den TypeID with 'om_' prefix and a 26-character base32 suffix.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, nullable, required
    - `pluginCount` integer

## Other responses

- `201`: The resource was created.
- `400`: Invalid declarative request.
- `401`: Authentication required.
- `403`: Resource management permission required.
- `404`: A referenced resource was not found.
- `409`: A name or identity conflict requires reconciliation.

## Changes

> 152 revisions in range; 1 not diffed.

- **2026-10-23** `c93387179b31`: 2 breaking, 9 info
  - the response property `item/externalKey` became nullable for the status `200`
  - the response property `item/externalKey` became nullable for the status `201`
  - response property `details/items/path/items/` list-of-types was narrowed by removing types `number` from media type `application/json` of response `400`
  - response property `item/externalKey` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`
  - …7 more
- **2026-10-01** `df3754993784`: 1 info
  - added the optional property `message` to the response with the `400` status
- **2026-09-11** `bb8ff73e4ad3`: 2 info
  - the endpoint scheme security `bearerAuth` was added to the API
  - the endpoint scheme security `denApiKey` was added to the API
- **2026-09-05** `cb34559d4b4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/marketplaces/by-key/:externalKey/put.md)

---

[API](https://skmtc.dev/openworklabs/apis/den-api.md) - [All operations](https://skmtc.dev/openworklabs/apis/den-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openworklabs/apis/den-api/revisions/fe63f722826c?raw)
