Find and Evaluate Domain Names for Your Brand¶
Whether you're launching a product, protecting a brand, or just exploring names, the DNS Toolkit gives you everything you need: availability checks, cross-TLD search, AI-assisted name generation, and bulk lookups for your shortlist.
For full parameter and response schema details, see the API reference →
The naming workflow¶
A typical domain search follows these steps:
- Generate ideas — get keyword-based suggestions you haven't thought of
- Search across TLDs — check your favourite name across every extension at once
- Bulk check your shortlist — confirm availability for the names you like (up to 50 at a time)
- Check a single domain — quick one-off availability check
# pip install toolkitapi
from toolkitapi import DNS
with DNS(api_key="YOUR_KEY") as dns:
# 1. Generate name ideas from keywords
ideas = dns.generate(keywords=["launch", "fast", "ship"])
print("Name ideas:")
for name in ideas.domains[:10]:
print(f" {name}")
# 2. Check one name across all TLDs
tld_results = dns.tld_search("launchfast")
available_tlds = [r for r in tld_results.results if r.available]
print(f"\n'launchfast' is available on {len(available_tlds)} TLD(s):")
for r in available_tlds[:10]:
print(f" {r.domain}")
# 3. Batch check a shortlist
shortlist = ["launchfast.com", "launchfast.io", "launchfast.co", "shipfast.com"]
bulk = dns.available_bulk(shortlist)
print("\nShortlist:")
for result in bulk.results:
status = "✓ available" if result.available else "✗ taken"
print(f" {result.domain}: {status}")
Generate name ideas¶
The generate endpoint takes a list of keywords and returns domain name suggestions combining them with common patterns and suffixes. Good for breaking out of the obvious choices.
from toolkitapi import DNS
with DNS(api_key="YOUR_KEY") as dns:
result = dns.generate(keywords=["launch", "fast"])
for domain in result.domains:
print(domain)
curl "https://dns.toolkitapi.io/v1/generate?keywords=launch,fast" \
-H "X-API-Key: YOUR_KEY"
const params = new URLSearchParams({ keywords: "launch,fast" });
const r = await fetch(`https://dns.toolkitapi.io/v1/generate?${params}`, {
headers: { "X-API-Key": "YOUR_KEY" },
});
const data = await r.json();
data.domains.forEach(d => console.log(d));
Search one name across all TLDs¶
tld-search takes a domain label (the part before the dot) and checks it across every supported TLD. Good for finding unexpected availability or making sure you've covered your brand variants.
from toolkitapi import DNS
with DNS(api_key="YOUR_KEY") as dns:
result = dns.tld_search("launchfast")
for r in result.results:
status = "✓" if r.available else "✗"
print(f"{status} {r.domain}")
curl "https://dns.toolkitapi.io/v1/tld-search?domain=launchfast" \
-H "X-API-Key: YOUR_KEY"
const params = new URLSearchParams({ domain: "launchfast" });
const r = await fetch(`https://dns.toolkitapi.io/v1/tld-search?${params}`, {
headers: { "X-API-Key": "YOUR_KEY" },
});
const data = await r.json();
data.results.filter(r => r.available).forEach(r => console.log(r.domain));
Batch check availability¶
Once you have a shortlist, available/bulk checks up to 50 domains in a single request.
from toolkitapi import DNS
domains = [
"launchfast.com", "launchfast.io", "launchfast.co",
"shipfast.com", "shipfast.io",
]
with DNS(api_key="YOUR_KEY") as dns:
result = dns.available_bulk(domains)
for r in result.results:
status = "available" if r.available else "taken"
print(f"{r.domain}: {status}")
curl -X POST "https://dns.toolkitapi.io/v1/available/bulk" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domains": ["launchfast.com", "launchfast.io", "shipfast.com"]}'
const r = await fetch("https://dns.toolkitapi.io/v1/available/bulk", {
method: "POST",
headers: {
"X-API-Key": "YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
domains: ["launchfast.com", "launchfast.io", "shipfast.com"],
}),
});
const data = await r.json();
data.results.forEach(r => console.log(`${r.domain}: ${r.available ? "available" : "taken"}`));
Check a single domain¶
For a quick one-off check:
from toolkitapi import DNS
with DNS(api_key="YOUR_KEY") as dns:
result = dns.available("launchfast.com")
print(f"Available: {result.available}")
curl "https://dns.toolkitapi.io/v1/available?domain=launchfast.com" \
-H "X-API-Key: YOUR_KEY"
const params = new URLSearchParams({ domain: "launchfast.com" });
const r = await fetch(`https://dns.toolkitapi.io/v1/available?${params}`, {
headers: { "X-API-Key": "YOUR_KEY" },
});
const data = await r.json();
console.log(`Available: ${data.available}`);
Internationalised domain names¶
If you're working with non-ASCII domain names (e.g., Chinese, Arabic, accented characters), the idn endpoint converts between Unicode and punycode formats and returns registration eligibility information.
from toolkitapi import DNS
with DNS(api_key="YOUR_KEY") as dns:
result = dns.idn("münchen.de")
print(f"Unicode: {result.unicode}")
print(f"Punycode: {result.punycode}")
curl "https://dns.toolkitapi.io/v1/idn?domain=m%C3%BCnchen.de" \
-H "X-API-Key: YOUR_KEY"
const params = new URLSearchParams({ domain: "münchen.de" });
const r = await fetch(`https://dns.toolkitapi.io/v1/idn?${params}`, {
headers: { "X-API-Key": "YOUR_KEY" },
});
const data = await r.json();
console.log(`Punycode: ${data.punycode}`);