List TLDs
Every root TLD with its registry facts and launch phases, alphabetical.
Root TLDs only, sorted by slug. A public-set row carries insights: the website page and its 12-month market aggregates.
.csv)Request
ianaTypestringOptionalQueryIANA's own type word (generic, country-code, sponsored, infrastructure).
ianaStatusstring: delegated, removed, never_delegatedOptionalQueryIANA root zone status.
countrystringOptionalQueryThe registry operator's country, ISO 3166-1 alpha-2.
isBrandbooleanOptionalQueryBrand TLDs only (true) or none (false).
isIdnbooleanOptionalQueryInternationalised endings only (true) or none (false).
publicSetbooleanOptionalQuerytrue: the public set only (v1's listing=public).
limitintegerOptionalQueryRows a page: 20 by default, at most 20 without a key and 100 with a paid subscription; a larger value is clamped.
cursorstringOptionalQueryThe meta.cursor of the previous page; the last page answers null.
fieldsstringOptionalQueryComma-separated top-level keys to keep; an unknown key answers 400 unsupported_field.
curl -X GET "https://api.unique.domains/v1/tlds"
const response = await fetch("https://api.unique.domains/v1/tlds", {
method: "GET",
});
const data = await response.json();
console.log(data);import requests
response = requests.get(
"https://api.unique.domains/v1/tlds",
)
print(response.json())req, err := http.NewRequest("GET", "https://api.unique.domains/v1/tlds", nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.unique.domains/v1/tlds",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($ch);uri = URI("https://api.unique.domains/v1/tlds")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
tldstringThe ending with its dot (.ai).
slugstringThe bare ending, the row key and cursor key.
ianaStatuskindCatalog kind.
ianaTypestringregistryOperatorstringregistryCountryCodestringisBrandbooleanBrand TLD (Specification 13).
isIdnbooleanInternationalised ending.
delegatedOnstringremovedOnstringcontractTerminatedbooleanRegistry agreement terminated.
rdapServerstringcategorystringphasesobject[]insightsobjectErrors
{
"data": [
{
"tld": ".ai",
"slug": "ai",
"ianaStatus": "delegated",
"kind": "root",
"ianaType": "country-code",
"registryOperator": "Government of Anguilla",
"registryCountryCode": "AI",
"isBrand": false,
"isIdn": false,
"delegatedOn": "1995-02-16",
"removedOn": null,
"contractTerminated": false,
"rdapServer": "https://rdap.nic.ai/",
"category": "Country",
"phases": [],
"insights": {
"insightUrl": "https://unique.domains/tld/ai",
"market": {
"computedAt": "2026-11-05T03:12:00.000Z",
"availableOneWord": 1840,
"registrations90d": 5210,
"medianBuy": 79.98,
"medianRenew": 79.98,
"cheapestRegistrar": "porkbun",
"sales12m": 2312,
"salesMedian12mUsd": 2500,
"salesTrend": "up"
}
}
}
],
"meta": {
"asOf": "2026-11-05T08:00:00Z",
"cursor": null,
"limit": 20
},
"links": {
"self": "https://api.unique.domains/v1/tlds",
"next": null,
"register": null,
"product": null,
"dataset": null
}
}