Domain Checker
Check domain availability using whois + DNS cross-verification. Single source of truth for all domain availability queries.
Quick Start
Run the bundled script to check one or more domains:
bash scripts/check_domains.sh example.com myproject.io brand.ai
Or pipe a list:
echo "foo.com bar.ai baz.io" | bash scripts/check_domains.sh
Output Format
Each domain gets one of three verdicts:
| Symbol | Meaning | Confidence |
|---|---|---|
| ✅ AVAILABLE | whois says "not found" AND no DNS NS records | High |
| ❌ TAKEN | whois shows Creation Date OR DNS records exist | High |
| ⚠️ LIKELY TAKEN | Conflicting signals (whois unclear but DNS exists) | Medium |
| ❓ UNKNOWN | whois returned no data — verify manually | Low |
How It Works
Three independent signals are cross-verified:
- whois Creation Date — Most authoritative. If present, domain is taken.
- DNS NS records — Registered domains almost always have nameservers.
- DNS A records — Fallback signal for parked/active domains.
A domain is only marked AVAILABLE when whois explicitly says "not found" AND no DNS records exist. This eliminates false positives from unreliable whois web interfaces.
Important Notes
- Rate limiting: The script waits 1 second between queries to avoid whois server throttling. For large batches (>50), consider splitting into multiple runs.
- whois web interfaces are unreliable: Sites like whois.com often return stale/incorrect data. This script uses the
whoisCLI directly. - .ai TLD quirk: The .ai whois server sometimes returns sparse data. The script handles this by also checking DNS.
- Premium/aftermarket domains: A domain may be "available" in whois but listed at a premium price on registrars. The script cannot detect this — check the registrar for actual purchase price.
- Requires:
whoisanddigCLI tools (pre-installed on most Linux/macOS systems).
Batch Domain Brainstorming
When helping users brainstorm project names with domain checks, use this workflow:
- Generate 15-30 candidate names based on user criteria
- Run all candidates through the script in one batch
- Present only the AVAILABLE results with analysis
- Iterate on available candidates if needed
Example:
bash scripts/check_domains.sh myapp.com myapp.ai myapp.io coolname.com coolname.ai