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

# Read marketplace by stable key

`GET /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

Reads the marketplace identified by the stable externalKey assigned through declarative provisioning.

## Path parameters

- `externalKey` string, required

## Response `200`

Marketplace configuration.

- PluginArchMarketplaceDetailResponse
  - `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

- `404`: Resource not found.

## Changes

> 152 revisions in range; 1 not diffed.

- **2026-10-23** `c93387179b31`: 1 breaking, 4 info
  - the response property `item/externalKey` became nullable for the status `200`
  - response property `item/externalKey` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`
  - the `item/createdAt` response's property pattern was changed from `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$` to `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$` for the status `200`
  - the `item/deletedAt/anyOf[subschema #1]/` response's property pattern was changed from `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$` to `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$` for the status `200`
  - …1 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/marketplaces/by-key/:externalKey/get.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)
