catalog

GET /v1/catalog/app/product-lines

List the product lines a signed-in customer may buy, including unadvertised ones.

All catalog endpoints

Authentication

Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.

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 GET https://api.zinndigital.com/v1/catalog/app/product-lines \
  -H "Authorization: Bearer zdk_live_…"

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

Identical to `listProductLines`, plus every line marked **in-app-only** — sold, but never promoted on the public site. ⚖️ **Owner ruling, 2026-08-16:** email is not a product we sell. It is free with every domain registered with us or transferred in. Email for a domain registered *somewhere else* stays purchasable *"only form inside the app"* and is not promoted on the frontend, so the `mail` line is served here and **not** by `listProductLines`. Requires authentication and nothing else — every signed-in customer sees the same catalogue, so there is no org to scope to and no permission to require. Responses are `Cache-Control: private, no-store`: the body varies by whether the caller is signed in, and a shared cache in front of it would hand the in-app catalogue to the next anonymous visitor.

Response

NameTypeRequiredWhat it is
dataProductLine[]Yes

Errors this endpoint can return

401 · 429