catalog
GET /v1/catalog/app/plans
List the plans a signed-in customer may buy, including unadvertised ones.
인증
Bearer 토큰으로 API 키를 전송하세요. 이 엔드포인트는 명세에 특정 권한을 명시하지 않으므로, 가정하기보다는 키에 필요한 최소한의 권한을 부여하고 응답을 확인하세요.
이 엔드포인트는 조직 ID를 받지 않습니다. 사용자의 키가 이미 속한 조직을 식별하며, 응답은 해당 조직으로 한정됩니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X GET https://api.zinndigital.com/v1/catalog/app/plans \
-H "Authorization: Bearer zdk_live_…"로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
Identical to listCatalogPlans — same shape, same multi-currency prices array, same plan_version_id purchase path — plus the plans on in-app-only lines. This is the endpoint the dashboard reads to offer email on an external domain. The purchase path is unchanged: POST /v1/carts → POST /v1/carts/{cartId}/lines with {kind: hosting_plan, plan_version_id, metadata: {interval}} → checkout. ⛔ The in-app-only exclusion on the public endpoint is applied even when product_line names the hidden line — naming a thing is not authorisation to see it, and that parameter arrives from an untrusted query string. A reseller's client is quoted the reseller's prices — the reseller's own price for the plan where they set one, otherwise list plus their default markup — which is exactly what the cart charges. The public listCatalogPlans never does this: it is anonymous and shared-cached. The dashboard's checkout reads this endpoint for that reason.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
product_line (query) | string | 아니요 | Restrict to one product line by its code (e.g. mail). Unknown code → empty list. |
currency (query) | string | 아니요 | Narrow each plan's prices array to a single ISO 4217 currency, exactly as on listCatalogPlans. Omitted, every currency is returned. |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
data | CatalogPlan[] | 예 | — |
이 엔드포인트가 반환할 수 있는 오류
401 · 422 · 429