List domain hacks
Domain hacks: names whose ending completes the word.
The domain hacks list. Free: the public hacks list, at most 20 rows, one page. Keyed: pages in a neutral column order with sort, else in the engine's own order.
.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.
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/hacks?ending=com%2Cio&status=available&lengthMax=8&priceMax=50"
const response = await fetch("https://api.unique.domains/v1/domains/hacks?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/hacks?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
)
print(response.json())req, err := http.NewRequest("GET", "https://api.unique.domains/v1/domains/hacks?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/hacks?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/hacks?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_1d4f9b02-3c6a-4e8d-b7f1-0a2c5e9d3b18",
"name": "del.icio.us",
"ending": "us",
"status": "taken",
"price": null,
"priceKind": null,
"renewal": null,
"ratingBand": "niche",
"format": "hack",
"shape": "single",
"length": 9,
"coverage": {
"available": 0,
"premium": 0,
"forSale": 1,
"unavailable": 2
}
}
],
"meta": {
"asOf": "2026-11-05T08:00:00Z",
"cursor": null,
"limit": 20
},
"links": {
"self": "https://api.unique.domains/v1/domains/hacks?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
"next": null,
"register": null,
"product": null,
"dataset": null
}
}