catalog
GET /v1/catalog/product-lines/owned
List the product lines this organization actually has.
Autentikasi
Kirimkan kunci API sebagai token bearer. Titik akhir ini tidak menyatakan izin tertentu dalam spesifikasi, jadi berikan kunci Anda izin minimum yang diperlukan dan periksa responsnya alih-alih berasumsi.
Endpoint ini tidak memerlukan id organisasi. Kunci Anda telah mengidentifikasi organisasi tempatnya berafiliasi, dan respons akan dibatasi untuk organisasi tersebut.
Coba
Ganti apa pun di dalam tanda kurung sudut dengan nilai Anda sendiri, dan placeholder kunci dengan kunci dari dasbor Anda.
curl -X GET https://api.zinndigital.com/v1/catalog/product-lines/owned \
-H "Authorization: Bearer zdk_live_…"Sudah masuk? Konsol API di dasbor Anda akan mengisi ID organisasi asli dan kunci Anda sendiri, serta menjalankan permintaan terhadap API langsung sehingga Anda dapat melihat respons aktualnya. Buka titik akhir ini di konsol API
Detail
The product lines the caller's organization has, or has ever had, something on — for narrowing a list of what they already own, never for choosing what to buy. ⚖️ **Owner, 2026-09-08:** *"in the filters it shows all product lines, even when they do not have any products in that line or never brought it, it should only show the hosting types they actually own or used so to speak."* Measured that morning on a real account with seven sites across **two** lines, the sites filter offered **sixteen**; fourteen of them could only narrow the list to nothing. A line is returned when the organization has a **site** on it — including `deleted` sites, so the deleted-sites screen stays filterable — **or** a **subscription** to a plan in it, in **any** status, cancelled included. A line paid for does not stop being theirs. An abandoned cart is not ownership and is excluded: it minted neither a site nor a subscription. ⛔ **Not the list to offer when somebody is BUYING.** Restricting a purchase flow to lines already owned means a customer can never buy their first line. Use `listProductLines` (or `listInAppProductLines`) for that. ⛔ **Authenticated and tenant-scoped**, unlike the other `/v1/catalog` reads: it is a fact about one organization's estate, computed over exactly the scope `listSites` reads (`sites.view`), so the filter and the rows it filters cannot disagree. Served `Cache-Control: no-store` — a shared cache in front of it would serve one organization's lines to the next caller. ⛔ Retired, internal and in-app-only lines are **not** filtered out here, unlike the public catalogue. Every code in the response is present because a row of theirs names it, so there is nothing to leak — and a retired line whose sites still exist must stay filterable, or those sites become unreachable by filter with nothing to tell the customer why.
Tanggapan
| Nama | Jenis | Wajib | Tentang apa ini |
|---|---|---|---|
data | OwnedProductLine[] | Ya | — |
Kesalahan yang dapat dikembalikan oleh titik akhir ini
401 · 403 · 429