Does Holehe Check Domain Availability? No—Here’s What It Actually Does

Holehe does not check domain availability; it is an email reconnaissance tool that verifies whether a specific email address is registered across approximately 150 online services.

Holehe is an open-source OSINT utility developed by megadose for checking email address existence across various platforms. While the codebase contains variables named domain within its service modules, these identifiers specify target service hostnames rather than performing WHOIS queries. The tool specifically targets email account verification across social media, email providers, and other web services—not domain registration status.

What Holehe Actually Does: Email Verification Across Services

Holehe functions as an asynchronous email enumeration framework. Its primary purpose is to determine if a given email address is already registered on supported platforms like Google, Twitter, Instagram, and hundreds of other services.

The architecture centers on holehe/core.py, which acts as the main orchestrator. This core driver dynamically loads modules from the holehe/modules/ directory and executes their individual verification logic. Each module implements a standardized interface that sends carefully crafted HTTP requests to the target service's email validation endpoints.

Analyzing the Source Code: Why Domain Availability Is Not Supported

The Core Architecture in holehe/core.py

The central logic resides in holehe/core.py, where the main class coordinates the scanning process. This file contains the execution engine that iterates through available modules and aggregates results. According to the source analysis, there is no implementation of WHOIS protocol queries, registrar API calls, or DNS-based domain availability checks within this core file.

The "Domain" Variable Misconception

Individual modules such as holehe/modules/mails/google.py and holehe/modules/social_media/twitter.py contain a domain class variable. This constant identifies the target service's hostname (for example, domain = "google.com" or domain = "twitter.com"), telling the module which endpoint to query during the email verification process.

Searches for keywords like "whois", "registrar", or "domain availability" within the repository return no matches. The domain variables serve purely as service identifiers within the module structure, not as indicators of domain registration checking functionality.

Module Structure Evidence

The modular architecture follows this pattern:

Each module focuses exclusively on email presence verification via HTTP request manipulation, with no domain availability logic implemented.

How to Use Holehe for Email Reconnaissance

Since Holehe checks email existence rather than domain availability, use it to verify if an email is already in use across multiple platforms.

Command-Line Usage


# Install holehe via pip

pip install holehe

# Check an email address across all supported services

holehe -e target@example.com

# Output shows which services have the email registered

Python Library Implementation

from holehe.core import Holehe
from holehe.instruments import Instruments

# Initialize the scanner with target email

scanner = Holehe(email="target@example.com")

# Execute checks across all enabled modules (~150 services)

results = scanner.run()

# Process results dictionary

for service, info in results.items():
    if info.get("status") == "found":
        print(f"{service}: ✅ Email registered")
    elif info.get("status") == "not_found":
        print(f"{service}: ❌ Email not found")
    else:
        print(f"{service}: ⚠️ Rate limited or error")

This implementation leverages the core orchestrator in holehe/core.py and various modules in holehe/modules/ to probe service endpoints, confirming the tool's exclusive focus on email verification rather than domain queries.

Summary

  • Holehe checks email address existence across web services, not domain name availability
  • The domain variables in modules (e.g., holehe/modules/mails/google.py) identify target service hostnames for API endpoints
  • No WHOIS, registrar API, or DNS-based domain checking functionality exists in the codebase
  • The core logic in holehe/core.py orchestrates asynchronous HTTP requests to verify email registration status across approximately 150 supported platforms
  • For domain availability checks, specialized WHOIS tools or registrar APIs are required instead of Holehe

Frequently Asked Questions

Does Holehe check if a domain is registered?

No. Holehe does not query WHOIS databases, DNS registration records, or registrar APIs. The tool exclusively checks whether a specific email address is registered on supported online services like Google, Twitter, and Instagram by sending verification requests to those platforms' endpoints.

What does the "domain" variable mean in Holehe modules?

In modules such as holehe/modules/mails/google.py, the domain constant defines the target service's hostname (e.g., domain = "google.com"). This identifier specifies which service endpoint the module should query during email verification. It does not indicate any functionality for checking if the domain itself is available for registration.

Can I use Holehe to check domain availability before registering a website?

No. Holehe lacks any functionality for domain name availability checking or registration status queries. The tool is designed specifically for email reconnaissance and OSINT investigations. For checking domain availability, you would need to use registrar APIs, WHOIS command-line tools, or specialized domain availability services.

How does Holehe verify email addresses across different services?

Holehe uses a modular architecture where holehe/core.py loads and executes service-specific modules located in holehe/modules/. Each module implements a check method that sends HTTP requests to the target platform's email validation endpoints (such as registration forms or login pages) and analyzes the responses to determine if the email address exists in that service's database.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →