public

GET /v1/public/domains/tld-pricing

The public, searchable TLD price table.

จุดสิ้นสุด public ทั้งหมด

การยืนยันตัวตน

เอนด์พอยต์นี้เป็นสาธารณะ ไม่ต้องใช้ข้อมูลประจำตัวหรือองค์กรใดๆ เนื่องจากเป็นสิ่งที่เราใช้สำหรับเว็บไซต์การตลาดและระบบตอบคำถามด้วย AI ของเราเอง

ปลายทางนี้ไม่ต้องใช้รหัสองค์กร คีย์ของคุณระบุองค์กรที่เป็นเจ้าของอยู่แล้ว และการตอบกลับจะถูกจำกัดขอบเขตไว้เฉพาะองค์กรนั้น

ทดลองใช้เลย

แทนที่สิ่งใดๆ ที่อยู่ภายในวงเล็บแหลมด้วยค่าของคุณเอง และตัวยึดตำแหน่งคีย์ด้วยคีย์จากแดชบอร์ดของคุณ

curl -X GET https://api.zinndigital.com/v1/public/domains/tld-pricing

เข้าสู่ระบบแล้วใช่ไหม คอนโซล API ในแดชบอร์ดของคุณจะเติมรหัสองค์กรจริงและคีย์ของคุณเองโดยอัตโนมัติ และทำการส่งคำขอไปยัง API จริง เพื่อให้คุณเห็นผลลัพธ์ที่เป็นข้อมูลจริง เปิดจุดสิ้นสุดนี้ในคอนโซล API

รายละเอียด

The crawlable price surface `docs/31` §5.1 specifies and nothing served: what every extension we sell costs to **register, renew and transfer**, plus the registry policy a buyer needs (min/max years, WHOIS privacy, IDN, restore, whether a transfer grants a year, and any residency restriction). No account, no cart, no registrar call — a cached read of platform-global reference data. **Cursor-paged and searched server-side**, which is now the only public shape: the older `listTldPricing` (`GET /v1/domains/pricing`) returned the whole catalogue in one uncursored body and was **retired in wave 8** (issue #845). That was fine at fifteen TLDs and was issue #466 all over again at the ~1,500 the registrar sync imports — on an unauthenticated endpoint, which is the worst place to have one. `q` is a substring match on the label and tolerates a leading dot (`.shop` and `shop` find the same row). Ordered **most popular first** by default, because a visitor who has decided nothing wants `.com` before `.zuerich`; `order=tld` gives the alphabetical reference view. Inactive offers are never returned. `summary` appears on the **first page only** and carries `active` — how many extensions we sell, *counted*. Any surface stating "search across N extensions" must read it: a hardcoded number is a public claim that goes stale the first time the sync deactivates a registry. `matched` is the same count under the current filter, so a page can say both without either being wrong. `related` appears when `q` names an extension we actually sell, and carries the neighbours worth offering beside it — `.shop` returns `.store` and `.online` with their real prices — each row stamped with `related_kind` so the surface can make the *argument* rather than list names. Ranked by the same code as the domain-search upsell grid, and unlike that grid it costs **no registrar call**: a price table is a browse, not an availability check. Prices are USD, the catalogue's authored currency (`docs/29`); a public surface converts for display. Cacheable — strong `ETag` + `Cache-Control: public, max-age=60`.

พารามิเตอร์

ชื่อประเภทจำเป็นต้องมีลักษณะของสิ่งนี้
q (query)stringไม่ใช่Substring match on the TLD label. A leading dot is ignored.
category (query)string<gtld, new_gtld, cctld, sponsored>ไม่ใช่Restrict to one registry family.
order (query)string<popularity, tld>ไม่ใช่`popularity` (default) ranks the extensions a visitor is most likely to want first; `tld` is the alphabetical reference order.
cursor (query)stringไม่ใช่Opaque cursor from a previous page's `page.next_cursor`.
limit (query)integerไม่ใช่Maximum items to return (page size).
If-None-Match (header)stringไม่ใช่A previously returned `ETag`; a match responds `304`.

การตอบกลับ

ชื่อประเภทจำเป็นต้องมีลักษณะของสิ่งนี้
dataPublicTldPriceRow[]ใช่
pagePageMetaใช่
summaryPublicTldPricingSummaryไม่ใช่Whole-collection facts, counted rather than derived from the page in hand. First page only.
relatedPublicTldPriceRow[]ไม่ใช่Neighbour extensions worth offering beside an exact-TLD `q`. Absent when `q` is empty, is not an extension we sell, or on any page but the first.

ข้อผิดพลาดที่เอนด์พอยต์นี้สามารถส่งกลับได้

422 · 429