domains
GET /v1/domains/tld-pricing
The TLD price table, flat, in the caller's currency.
Uwierzytelnianie
Wyślij klucz API jako token bearer. Ten punkt końcowy nie określa konkretnego uprawnienia w specyfikacji, więc nadaj swojemu kluczowi minimum potrzebnych uprawnień i sprawdź odpowiedź zamiast zakładać.
Ten punkt końcowy nie wymaga identyfikatora organizacji. Twój klucz już identyfikuje organizację, do której należy, a odpowiedź jest do niej ograniczona.
Wypróbuj
Zastąp wszystko w nawiasach ostrych własnymi wartościami, a zastępczy znacznik klucza kluczem ze swojego pulpitu nawigacyjnego.
curl -X GET https://api.zinndigital.com/v1/domains/tld-pricing \
-H "Authorization: Bearer zdk_live_…"Zalogowany? Konsola API w Twoim panelu uzupełnia rzeczywiste identyfikator organizacji oraz Twój własny klucz i wykonuje żądanie względem aktywnego API, dzięki czemu możesz zobaczyć rzeczywistą odpowiedź. Otwórz ten punkt końcowy w konsoli API
Szczegóły
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.
Parametry
| Nazwa | Typ | Wymagane | Co to jest |
|---|---|---|---|
cursor (query) | string | Nie | Opaque cursor from a previous page's `page.next_cursor`. |
limit (query) | integer | Nie | Maximum items to return (page size). |
q (query) | string | Nie | Substring match on the TLD label, applied server-side. A leading dot is tolerated and ignored. |
order (query) | string<popularity, tld> | Nie | `popularity` (default) is most-popular-first with an alphabetical tiebreak; `tld` is the alphabetical reference view. |
If-None-Match (header) | string | Nie | A previously returned `ETag`; a match responds `304`. |
Odpowiedź
| Nazwa | Typ | Wymagane | Co to jest |
|---|---|---|---|
data | TldPrice[] | Tak | — |
page | PageMeta | Tak | — |
Błędy, które ten punkt końcowy może zwrócić
401 · 422 · 429