身份验证
请将 API 密钥作为 bearer 令牌发送。此端点在规范中未指明具体的权限,因此请为您的密钥赋予所需的最小权限,并通过检查响应来确认,而不是盲目假设。
此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。
免费试用
将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。
curl -X GET https://api.zinndigital.com/v1/domains/tld-pricing \
-H "Authorization: Bearer zdk_live_…"已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点
详细信息
The **canonical** TLD price table (docs/43 §3.1) and the one the dashboard's "Register a domain" reference table consumes. Flat integer minor units converted into the caller's display currency (`X-Zinn-Currency`, falling back to USD). `GET /v1/public/domains/tld-pricing` serves the same rows anonymously in a nullable `MoneyAmount` shape, cursor-paged; `GET /v1/domains/pricing` served them publicly and uncursored and was **retired in wave 8** (#845). Authenticated, because it prices in the caller's currency. Cacheable per caller — strong `ETag` + `Cache-Control: private, max-age=60` + `Vary: X-Zinn-Currency`, so a shared cache can never hand one customer's currency to another. A TLD whose register, renew and transfer are not all priced is **omitted** rather than zero-filled: the flat shape has no null, and `$0.00` on a pricing screen is a false quote, not a missing value. **Cursor-paged and server-searched (#846).** This was the last unbounded projection of the catalogue — the public reader has been paged since #571 and `/v1/domains/pricing` was retired for exactly this (#845), which left the authenticated table returning every row in one body. `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, matching the public table: the two show the same catalogue to the same person before and after they sign up, and opening one with `.com` and the other with `.ai` is the split `docs/48` §6 warns about. `order=tld` gives the alphabetical reference view. ⚠️ **A page can be short.** The omit-if-unpriced rule above is applied *after* the window, so a page of 50 offers may carry 48 rows. Pagination is still correct — the cursor is taken from the last **offer** in the window, not the last row emitted — so follow `page.next_cursor` until `page.has_more` is false rather than stopping when a page looks short.
参数
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
cursor (query) | string | 否 | Opaque cursor from a previous page's `page.next_cursor`. |
limit (query) | integer | 否 | Maximum items to return (page size). |
q (query) | string | 否 | Substring match on the TLD label, applied server-side. A leading dot is tolerated and ignored. |
order (query) | string<popularity, tld> | 否 | `popularity` (default) is most-popular-first with an alphabetical tiebreak; `tld` is the alphabetical reference view. |
If-None-Match (header) | string | 否 | A previously returned `ETag`; a match responds `304`. |
响应
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
data | TldPrice[] | 是 | — |
page | PageMeta | 是 | — |
此端点可能返回的错误
401 · 422 · 429