List domains
One-word catalog names under filters.
Free: at most 20 rows in the engine's neutral order (the cached public list, or the daily shuffle under filters), one page. Keyed: pages of up to 100 in a neutral column order with sort, else in the engine's own order, with the estimate, Est. Profit, liquidity and verdict on each row.
.csv)Request
endingstringOptionalQueryComma list of endings without the dot.
statusstringOptionalQueryComma list of statuses: available, premium, resell, expiring, expired, taken, dormant, sold, unknown. Default: available, premium, resell.
lengthMinintegerOptionalQueryShortest word, in characters.
lengthMaxintegerOptionalQueryLongest word, in characters.
shapestringOptionalQueryComma list of word shapes: single, properNoun, acronym, twoWords, phrase. properNoun is ignored on the free tier.
stylestringOptionalQueryComma list of styles: modern, elegant, slab, handwritten, playful, futuristic.
formatstring: oneWord, hackOptionalQueryOne word, or domain hacks.
priceMaxnumberOptionalQueryHighest price today, USD.
renewalMaxnumberOptionalQueryHighest renewal, USD.
prefixstringPaidQueryThe word starts with.
containsstringPaidQueryThe word contains.
posstringOptionalQueryComma list of parts of speech: adjective, adjective satellite, adverb, conjunction, contraction, determiner, interjection, letter, noun, particle, pnoun, pnound, preposition, prepPhrase, pronoun, proverb, symbol, verb, unknown.
expiresBeforestringOptionalQueryRegistry expiry on or before this day.
sortstringPaidQueryA neutral order: askPrice, price, renewal, seoRandomKey, domain; prefix - for descending. Without it, the engine's own order. No quality order exists.
limitintegerOptionalQueryRows a page: 20 by default, at most 20 without a key and 100 with a paid subscription; a larger value is clamped.
cursorstringPaidQueryThe 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/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50"
const response = await fetch("https://api.unique.domains/v1/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50", {
method: "GET",
});
const data = await response.json();
console.log(data);import requests
response = requests.get(
"https://api.unique.domains/v1/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
)
print(response.json())req, err := http.NewRequest("GET", "https://api.unique.domains/v1/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50", 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/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($ch);uri = URI("https://api.unique.domains/v1/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
idstringdom_<uuid>.
namestringendingstringstatusstringThe stored status of the row. One name's own answer groups it for a buyer: resell reads for_sale there (at_auction at a drop-catch venue), premium reads free_premium.
pricenumber | nullPrice today, USD.
priceKindstring | nullrenewalnumber | nullratingBandstring | nullA simple band.
formatstring | nullshapestring | nulllengthinteger | nullcoverageobject | nullThe same word on other endings: available, premium, for sale.
valueobject | nullKeyed: the current estimate, USD.
upsidePercentnumber | nullKeyed.
liquiditystring | nullKeyed.
verdictobjectKeyed.
Errors
{
"data": [
{
"id": "dom_9a7e4c11-0b3d-4f6e-8c2a-5d1e7f3b9a20",
"name": "harbor.co",
"ending": "co",
"status": "available",
"price": 11.98,
"priceKind": "registration",
"renewal": 31.98,
"ratingBand": "strong",
"format": "oneWord",
"shape": "single",
"length": 6,
"coverage": {
"available": 22,
"premium": 3,
"forSale": 9,
"unavailable": 7
}
}
],
"meta": {
"asOf": "2026-11-05T08:00:00Z",
"cursor": null,
"limit": 20
},
"links": {
"self": "https://api.unique.domains/v1/domains?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
"next": null,
"register": null,
"product": null,
"dataset": null
}
}