commerce
GET /v1/order/config/{planCode}
Everything a signed-in customer configures for one plan.
身份验证
请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 billing.view 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。
此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。
免费试用
将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。
curl -X GET https://api.zinndigital.com/v1/order/config/{planCode} \
-H "Authorization: Bearer zdk_live_…"已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点
详细信息
The in-app twin of getPublicOrderConfig, and it reads the same function: two computations of "what can I configure on this plan" is how the public funnel and the console come to disagree about whether a plan includes a free domain. The one real difference is why this route exists: it includes the product lines the owner ruled sellable only inside the app (email for an external domain, 2026-08-16), which are absent from every anonymous surface. It is a separate authenticated route rather than a query parameter, because a parameter an anonymous caller can set is not a visibility control. Authenticated but not tenant-scoped: the answer is a statement about what the platform sells, not about the caller's estate. Requires billing.view.
参数
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
planCode (path) | string | 是 | The catalogue code of the plan being configured. |
响应
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
plan_code | string | 是 | — |
plan_name | string | 是 | — |
plan_id | string | 是 | The plan's stable identity — what a URL or an analytics event refers to. |
plan_version_id | string | 是 | The purchasable identifier: what a hosting_plan cart line pins. Not plan_id — a price change mints a new version rather than mutating the sold one, so this value changes… |
plan_version | integer | 是 | — |
product_line | string | 是 | — |
product_line_name | string | 是 | The line's display name from the engine's one source table, so a client never has to render a raw code to a customer. |
currency | string | 是 | What everything on this payload is priced in. It may differ from the currency asked for: a currency with no derived price row yet falls back to USD and says so here rather… |
terms | OrderTerm[] | 是 | Cheapest per month first, which is what default_interval names. |
default_interval | string | 是 | The cadence to select on first render — derived as the cheapest per month rather than typed beside the price table. A typed default is a comment that happens to run: correct… |
trial_days | object | 是 | The free trial this plan offers, or null for none. A trial takes no card and starts immediately, so the button beneath the configuration has to say "start trial" rather than… |
included_domains | integer | 是 | How many domain registrations the plan includes free — the "use the free domain this plan includes" branch. 0 is the common case: render that branch only when the allowance is… |
included_domain_tlds | string[] | 是 | Which extensions the free registration may be spent on. Empty alongside a non-zero included_domains means the plan grants any offered TLD. |
domain_term_years | integer[] | 是 | — |
regions | OrderRegion[] | 是 | The data centres a site on this plan may be created in. Empty is a real answer — the Footprint-Free line offers no region by owner ruling, because a PBN customer is… |
spec | OrderSpecItem[] | 是 | The read-only "what is included" panel, ordered for display. Not a filtered allow-list: every resolved entitlement appears, so a capability added to the catalogue tomorrow is… |
addons | OrderAddon[] | 是 | The services offered on this product line and deliverable today — a PBN addon never appears on a mainstream plan, and an addon whose fulfilment handler has been withdrawn… |
此端点可能返回的错误
401 · 403 · 404