partner

POST /v1/partner/marketplace/withdrawals

Take V1-imported marketplace listings off sale now.

All partner endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the partner.domains permission; a key without it is refused with 403, not 404.

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 POST https://api.zinndigital.com/v1/partner/marketplace/withdrawals \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "slugs": <string[]> }'

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

For the V1 platform only (a partner on the engine's V1 partner list; any other partner gets 403). Send the V1 slugs of listings V1 has stopped publishing — a removed listing, or every listing of a banned seller. Each matching source=v1 listing is archived in the request (it leaves search, the storefront and the API at once); its cached storefront pages are then purged and submitted to IndexNow. Signed: send X-Zinn-Timestamp (unix seconds, within 300 s) and X-Zinn-Signature (sha256= + hex HMAC-SHA256, keyed with your webhook subscription's signing secret, over v1-marketplace-withdrawal. + timestamp + . + the raw body). Idempotent: a listing already off sale is reported in already_gone. A push that is lost is caught by a sweep every 10 minutes. Requires partner.domains.

Parameters

NameTypeRequiredWhat it is
X-Zinn-Timestamp (header)stringYes—
X-Zinn-Signature (header)stringYes—

Request body

NameTypeRequiredWhat it is
idstringNoThe sender's own event id, for its logs and ours.
reasonstringNoWhy, in V1's words (seller_banned, removed, retired, ...).
slugsstring[]YesV1 listing slugs.

Response

NameTypeRequiredWhat it is
archivedstring[]Yes—
already_gonestring[]Yes—
unknownstring[]Yes—
purged_urlsintegerYes—
purge_okbooleanYes—
indexnow_urlsintegerYes—
announcestring<none, workflow, inline>YesHow the purge and IndexNow step runs: workflow (started, after the response), inline (done before the response; the counts above are its result) or none.

Errors this endpoint can return

401 · 403 · 422 · 429