A powerful and efficient Python-based domain availability checker that helps you find available domain names across multiple Top-Level Domains (TLDs).
- Clone the repository:
git clone https://github.com/AliHzSec/tld-finder.git
cd tld-finder
- Install required Python packages:
pip install requests
- Install
whoistool (if not already installed):
Ubuntu/Debian:
sudo apt install whoismacOS:
brew install whoispython3 main.py --keyword DOMAIN_NAME [TLD_SOURCE] [OPTIONS]
--keywordor-k: The domain name you want to check (without TLD)
--default-tldsor-dt: Use default popular TLDs (.com, .org, .net, etc.)--iana-tldsor-it: Use all TLDs from IANA registry (1500+ TLDs)--file-tldsor-ft: Use custom TLD list from a file
--available-onlyor-a: Show only available domains--not-availableor-na: Show only registered domains--workersor-w: Number of concurrent workers (default: 30)--jsonor-j: Output results in JSON format--outputor-o: Save output to file
Check a domain with default TLDs:
python3 main.py --keyword mybusiness --default-tlds
Check a domain with all IANA TLDs:
python3 main.py --keyword mybusiness --iana-tlds
Check a domain with custom TLD list:
python3 main.py --keyword mybusiness --file-tlds custom-tlds.txt
Show only available domains:
python3 main.py --keyword techstartup --default-tlds --available-only
Show only registered domains:
python3 main.py --keyword techstartup --default-tlds --not-available
Show both available and registered domains (default behavior):
python3 main.py --keyword techstartup --default-tlds
Use more concurrent workers for faster checking:
python3 main.py --keyword mybrand --iana-tlds --workers 50
Use fewer workers for slower/limited connections:
python3 main.py --keyword mybrand --default-tlds --workers 10
Save results to a text file (auto-generated filename):
python3 main.py --keyword company --default-tlds --output
Save results to a custom text file:
python3 main.py --keyword company --default-tlds --output results.txt
Output results as JSON to console:
python3 main.py --keyword mybrand --default-tlds --json
Save results as JSON to file (auto-generated filename):
python3 main.py --keyword mybrand --default-tlds --json --output
Save results as JSON to custom file:
python3 main.py --keyword mybrand --iana-tlds --json --output domains.json
Check with IANA TLDs, show only available domains, save to file:
python3 main.py --keyword startup --iana-tlds --available-only --output available-domains.txt
Check with default TLDs, show only registered domains, output as JSON:
python3 main.py --keyword company --default-tlds --not-available --json --output registered.json
Check with custom TLDs, use 20 workers, save results:
python3 main.py --keyword mybrand --file-tlds tlds.txt --workers 20 --output
Fast check with high worker count and JSON output:
python3 main.py --keyword techbrand --iana-tlds --workers 50 --json --output scan-results.json
Create a text file with one TLD per line (including the dot):
.com
.net
.org
.io
.dev
.app
.tech
.store
Then use it:
python3 main.py --keyword mybrand --file-tlds my-tlds.txt
[avail] mybrand.com
[taken] mybrand.org - Exp Date: 2025-12-31
[avail] mybrand.net
{
"timestamp": "2026-02-07T12:34:56.789012",
"total_checked": 22,
"statistics": {
"available": 8,
"registered": 12,
"timeout": 1,
"error": 1
},
"domains": [
{
"domain": "mybrand.com",
"status": "available"
},
{
"domain": "mybrand.org",
"status": "registered",
"expiry_date": "2025-12-31"
}
]
}The default TLD list includes these popular domains:
- .com, .org, .net, .de, .uk, .fr, .it, .nl, .es, .cn, .jp, .in, .ru, .br, .au, .us, .ca, .mx, .info, .co, .io, .biz
Some whois servers may rate-limit requests. If you encounter this Reduce the number of workers
If you find this tool useful, please give it a ⭐ on GitHub!
For issues, questions, or suggestions, please open an issue on the GitHub repository.