ການພິສູດຕົວຕົນ
ຈຸດສິ້ນສຸດນີ້ແມ່ນສາທາລະນະ. ມັນບໍ່ຕ້ອງການຂໍ້ມູນຢັ້ງຢືນຕົວຕົນ ແລະ ບໍ່ມີອົງກອນ — ມັນແມ່ນສິ່ງທີ່ເວັບໄຊການຕະຫຼາດ ແລະ ເຄື່ອງຈັກຕອບຄຳຖາມ AI ຂອງພວກເຮົາເອງອ່ານ.
ຈຸດເຊື່ອມຕໍ່ນີ້ບໍ່ໄດ້ຮັບ ID ອົງກອນ. ລະຫັດຂອງທ່ານໄດ້ລະບຸອົງກອນທີ່ມັນຂຶ້ນກັບແລ້ວ, ແລະ ຄໍາຕອບແມ່ນຖືກຈໍາກັດຂອບເຂດໄວ້ສໍາລັບອົງກອນນັ້ນ.
ລອງໃຊ້ເບິ່ງ
ປ່ຽນແທນທຸກຢ່າງທີ່ຢູ່ໃນວົງເລັບມຸມດ້ວຍຄ່າຂອງທ່ານເອງ, ແລະ ປ່ຽນແທນຕົວແທນບ່ອນວ່າງຄີດ້ວຍຄີຈາກແຜງຄວບຄຸມຂອງທ່ານ.
curl -X GET https://api.zinndigital.com/v1/catalog/plansເຂົ້າສູ່ລະບົບແລ້ວບໍ? ໂຄງສົນທະນາ API ໃນໜ້າັດສະຫຼອງຂອງທ່ານຈະຕື່ມຂໍ້ມູນລະຫັດອົງກອນຕົວຈິງ ແລະ ລະຫັດລັບສ່ວນຕົວຂອງທ່ານໂດຍອັດຕະໂນມັດ, ແລະ ປະຕິບັດການຮ້ອງຂໍຜ່ານ API ຕົວຈິງ ເພື່ອໃຫ້ທ່ານສາມາດເຫັນຜົນຕອບຮັບທີ່ແທ້ຈິງໄດ້. ເປີດຈຸດສິ້ນສຸດນີ້ໃນຄອນໂສລ API
ລາຍລະອຽດ
Returns every active plan with its current version's **resolved entitlements** (product-line defaults overlaid with the plan's own) and its list prices, in the stored currency and interval. Prices are integer minor units + an ISO currency code (CLAUDE.md §2.8); USD is the base, and a derived, charm-rounded row is served for every enabled currency once the FX refresh has run (docs/29 §2). **Public** (docs/35 #19). **`prices` is a multi-row array, one entry per (interval, currency)** — never a single pre-converted row. A client selects the entry matching the customer's chosen currency AND interval, and must render **nothing** rather than fall back to an amount in a different currency: a number in the wrong currency, or the right number under the wrong symbol, is worse than an absent price (#471). **Each plan carries `plan_version_id`, the identifier that makes it purchasable.** A `hosting_plan` cart line pins a plan *version*, not a plan, so before this field existed a customer could browse the catalogue and had no way to buy anything in it (#463). The full self-serve path is `POST /v1/carts` → `POST /v1/carts/{cartId}/lines` with `{kind: hosting_plan, plan_version_id, metadata: {interval}}` → `POST /v1/carts/{cartId}/checkout`. An **internal** plan is never listed here and the cart refuses it, so the unlimited staff plan cannot be self-served. Returned **whole, not cursor-paginated** — a deliberate, documented deviation matching `getTranslationBundle`: the catalogue is our own bounded content, and a pricing page or the pricing slider needs every tier at once, not 50 at a time. The response is bounded by a hard server-side cap; a catalogue that would exceed it is a `422` (it never silently truncates), which cannot happen with today's catalogue and exists only so unbounded future growth fails loudly. Cacheable exactly like `listProductLines` (strong `ETag` + `max-age=60`).
ພາຣາມິເຕີ
| ຊື່ | ປະເພດ | ຕ້ອງການ | ສິ່ງທີ່ມັນເປັນ |
|---|---|---|---|
product_line (query) | string | ບໍ່ | Restrict to one product line by its code (e.g. `footprint_free`). Unknown code → empty list. |
currency (query) | string | ບໍ່ | Narrow each plan's `prices` array to a single ISO 4217 currency. **Optional and additive**: omitting it returns every currency exactly as before, so no existing client changes b… |
If-None-Match (header) | string | ບໍ່ | A previously returned `ETag`; a match responds `304`. |
ຖືກໂຈະ
| ຊື່ | ປະເພດ | ຕ້ອງການ | ສິ່ງທີ່ມັນເປັນ |
|---|---|---|---|
data | CatalogPlan[] | ແມ່ນແລ້ວ | — |
ຂໍ້ຜິດພາດທີ່ຈຸດເຊື່ອມຕໍ່ນີ້ສາມາດສົ່ງຄືນໄດ້
422 · 429