FreeRegistrar Prices API
List TLD prices
GET/prices/tlds/{tld}No key
Every registrar's list price for one ending, with the cheapest and trap marks.
Registrar catalog order, then other registrars alphabetically. Free on a public-set ending; outside it the free tier reads one ending a UTC day.
AccessNo key. Limited per address; a key adds the paid fields.
BillingOne call.
FormatsJSON, CSV (
.csv)Connect on RapidAPIAlso inDomain Price Comparison API
Request
tldstringRequiredPathThe ending without the dot (ai); lowercased, a leading dot stripped.
fieldsstringOptionalQueryComma-separated top-level keys to keep; an unknown key answers 400 unsupported_field.
curl -X GET "https://api.unique.domains/v1/prices/tlds/io"
const response = await fetch("https://api.unique.domains/v1/prices/tlds/io", {
method: "GET",
});
const data = await response.json();
console.log(data);import requests
response = requests.get(
"https://api.unique.domains/v1/prices/tlds/io",
)
print(response.json())req, err := http.NewRequest("GET", "https://api.unique.domains/v1/prices/tlds/io", 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/prices/tlds/io",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($ch);uri = URI("https://api.unique.domains/v1/prices/tlds/io")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
registrarstringnamestringhomepageUrlstringpurchasePricenumberrenewalPricenumbertransferPricenumbercurrencystringisPromobooleanFirst year is a promotion.
regularPurchasePricenumberrenewalTrapbooleanRenewal at least twice the first year and $10 more.
cheapestbooleanLowest first year.
cheapestRenewalbooleanLowest renewal.
cheapestTransferbooleanLowest transfer-in.
Errors
{
"data": [
{
"registrar": "cloudflare",
"name": "Cloudflare",
"homepageUrl": "https://www.cloudflare.com/products/registrar/",
"purchasePrice": 38.5,
"renewalPrice": 38.5,
"transferPrice": 38.5,
"currency": "USD",
"isPromo": false,
"renewalTrap": false,
"cheapest": true,
"cheapestRenewal": true,
"cheapestTransfer": true
}
],
"meta": {
"asOf": "2026-11-05T08:00:00Z",
"cursor": null,
"limit": null
},
"links": {
"self": "https://api.unique.domains/v1/prices/tlds/io",
"next": null,
"register": null,
"product": null,
"dataset": null
}
}