catalog

GET /v1/catalog/app/plans

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

所有 catalog 端点

所有开发者文档

身份验证

请将 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/cartsPOST /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)stringRestrict to one product line by its code (e.g. mail). Unknown code → empty list.
currency (query)stringNarrow each plan's prices array to a single ISO 4217 currency, exactly as on listCatalogPlans. Omitted, every currency is returned.

响应

名称类型必填内容简介
dataCatalogPlan[]

此端点可能返回的错误

401 · 422 · 429