marketplace

PATCH /v1/marketplace/listings/{listing_id}

Edit a Zinn®, or publish it.

All marketplace endpoints

All developer docs →

Authentication

Send an API key as a bearer token. This endpoint checks no specific permission, so any key for your organisation can call it.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X PATCH https://api.zinndigital.com/v1/marketplace/listings/{listing_id} \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

publish: true validates every value against the stamped schema version, requires at least one package, recomputes the price cache and takes the listing live — in one transaction, because a listing that went live with a stale price sorts wrongly on every storefront page and quotes a price nobody agreed to, and nothing raises. ⛔ A live Zinn®'s slug is permanent: it is the public URL, and changing it breaks every link to it and loses the ranking that link earned. ⛔ A domain value is stored in the reveal table, never in field_values — the storefront's read path cannot leak what it cannot see (docs/83 §3).

Parameters

NameTypeRequiredWhat it is
listing_id (path)stringYes—

Request body

NameTypeRequiredWhat it is
descriptionstringNos1006 — plain-text long description (blank line between paragraphs, - list lines). ⛔ Changing it, the title, the summary or the FAQ on a live third-party listing sends it back…
faqsMarketplaceFaq[]NoQuestion/answer pairs; an entry missing either half is dropped.
inclusion_itemsobject[]NoThe handover checklist a buyer confirms receipt of, for an asset-transfer listing (a website, a domain, a Shopify store). The seller composes it; the listing type's…
titlestringNo—
summarystringNo—
slugstringNo—
field_valuesobjectNoPlain {key: value} — the envelope is added by the engine.
publishbooleanNoValidate against the stamped schema, require a package, recompute the price cache and go live — in one transaction.
statestring<live, paused, archived>NoTake a Zinn® off sale, put it back, or retire it. Applied AFTER any value edit in the same request, so the storefront projection is rebuilt once from the state the listing…

Response

NameTypeRequiredWhat it is
idstringYes—
vendor_idstringYes—
marketplace_idstringYes—
marketplace_keystringYes—
category_idstringNo—
listing_type_idstringYes—
listing_type_keystringYes—
schema_versionintegerYesThe version this listing's values were authored against. Stamped once, never moved — a later schema must not reinterpret an older listing.
titlestringYes—
slugstringYesPermanent once live. It is the public URL.
summarystringYes—
field_valuesobjectYes"{key: {v, ver}}" — uniform two keys, ver: null for a seller-declared value, so no consumer branches on key presence. ⛔ A domain value is NOT here — it is in the reveal…
field_schemaMarketplaceFieldDefinition[]NoPresent on the detail read; the schema THIS listing is authored against.
stateMarketplaceListingStateYes⛔ archived, never deleted. A listing that sold has public URLs, backlinks and an order behind it, and a 404 costs rankings that do not come back.
price_minorintegerYes—
price_max_minorintegerYes—
currencystringYes—
published_atstringNo—
packagesMarketplacePackage[]Yes—
inclusion_itemsMarketplaceInclusionItem[]NoWhat comes with the asset, as the seller composed it. Rows carrying zinn_asset were added by the platform because the listing sells a site or domain hosted with us (docs/714…
inclusion_revisionintegerNoHow many times the seller has revised the list since publishing.
descriptionstringNos1006 — the long description, PLAIN TEXT: paragraphs separated by a blank line, list lines starting - . Never HTML; it is rendered as text.
faqsMarketplaceFaq[]NoThe listing's FAQ, shown on the page and as FAQPage structured data.
zinn_site_idstringNoThe site on our hosting this listing sells, set by listListingFromSite only. When the listing sells, the site moves into the buyer's account automatically.
zinn_domain_idstringNoThe domain in our account this listing sells, set by listListingFromDomain only.

Errors this endpoint can return

401 · 404 · 422