catalog
GET /v1/catalog/app/plans
List the plans a signed-in customer may buy, including unadvertised ones.
身份验证
请将 API 密钥作为 bearer 令牌发送。此端点在规范中未指明具体的权限,因此请为您的密钥赋予所需的最小权限,并通过检查响应来确认,而不是盲目假设。
此端点不需要组织 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