What Websites Does Holehe Check for Email Registration?
Holehe verifies email registration status across more than 200 online services—including GitHub, Instagram, Adobe, Amazon, Discord, and Last.fm—by dynamically loading service-specific modules defined in the data dictionary inside holehe/core.py.
Holehe is an OSINT (Open Source Intelligence) tool maintained in the megadose/holehe repository that determines whether an email address is registered on various websites. Understanding exactly what websites Holehe checks for email registration is essential for security researchers assessing digital footprints and attack surfaces.
How Holehe Defines the Website List
The definitive catalog of supported services resides in the launch_module function within holehe/core.py. At approximately line 66, this asynchronous function initializes a Python dictionary named data that maps short module identifiers to their corresponding target domain names.
The Data Dictionary Structure
The data dictionary serves as the master registry, containing entries such as:
# https://github.com/megadose/holehe/blob/master/holehe/core.py#L66
async def launch_module(module,email, client, out):
data = {
'aboutme': 'about.me',
'adobe': 'adobe.com',
'amazon': 'amazon.com',
'anydo': 'any.do',
'archive': 'archive.org',
'armurerieauxerre': 'armurerie-auxerre.com',
'atlassian': 'atlassian.com',
'babeshows': 'babeshows.co.uk',
'badeggsonline': 'badeggsonline.com',
'biosmods': 'bios-mods.com',
'biotechnologyforums': 'biotechnologyforums.com',
'bitmoji': 'bitmoji.com',
'blablacar': 'blablacar.com',
'blackworldforum': 'blackworldforum.com',
'blip': 'blip.fm',
'blitzortung': 'forum.blitzortung.org',
'bluegrassrivals': 'bluegrassrivals.com',
'bodybuilding': 'bodybuilding.com',
'buymeacoffee': 'buymeacoffee.com',
'cambridgemt': 'discussion.cambridge-mt.com',
'caringbridge': 'caringbridge.org',
'chinaphonearena': 'chinaphonearena.com',
'clashfarmer': 'clashfarmer.com',
'codecademy': 'codecademy.com',
'codeigniter': 'forum.codeigniter.com',
'codepen': 'codepen.io',
'coroflot': 'coroflot.com',
'cpaelites': 'cpaelites.com',
'cpahero': 'cpahero.com',
'cracked_to': 'cracked.to',
'crevado': 'crevado.com',
'deliveroo': 'deliveroo.com',
'demonforums': 'demonforums.net',
'devrant': 'devrant.com',
'diigo': 'diigo.com',
'discord': 'discord.com',
'docker': 'docker.com',
'dominosfr': 'dominos.fr',
'ebay': 'ebay.com',
'ello': 'ello.co',
'envato': 'envato.com',
'eventbrite': 'eventbrite.com',
'evernote': 'evernote.com',
'fanpop': 'fanpop.com',
'firefox': 'firefox.com',
'flickr': 'flickr.com',
'freelancer': 'freelancer.com',
'freiberg': 'drachenhort.user.stunet.tu-freiberg.de',
'garmin': 'garmin.com',
'github': 'github.com',
'google': 'google.com',
'gravatar': 'gravatar.com',
'imgur': 'imgur.com',
'instagram': 'instagram.com',
'issuu': 'issuu.com',
'koditv': 'forum.kodi.tv',
'komoot': 'komoot.com',
'laposte': 'laposte.fr',
'lastfm': 'last.fm',
'lastpass': 'lastpass.com',
'mail_ru': 'mail.ru',
'mybb': 'community.mybb.com',
'myspace': 'myspace.com',
'nattyornot': 'nattyornotforum.nattyornot.com',
'naturabuy': 'naturabuy.fr',
'ndemiccreations': 'forum.ndemiccreations.com',
'nextpvr': 'forum.nextpvr.com',
# ... (dictionary continues with more than 200 entries)
}
Each key in this dictionary corresponds to a Python file under holehe/modules/ that implements the specific HTTP logic required to probe that service.
Categories of Supported Websites
The data dictionary covers diverse service categories, with modules organized into logical subdirectories under holehe/modules/.
Social Media and Communication
- Instagram (
instagram.com) - Discord (
discord.com) - GitHub (
github.com) - Ello (
ello.co) - Fanpop (
fanpop.com) - Imgur (
imgur.com) - MySpace (
myspace.com) - Gravatar (
gravatar.com)
Software and Developer Services
- Adobe (
adobe.com) - Docker (
docker.com) - Atlassian (
atlassian.com) - CodePen (
codepen.io) - Codecademy (
codecademy.com) - Evernote (
evernote.com) - LastPass (
lastpass.com) - Firefox (
firefox.com)
E-commerce and Retail
- Amazon (
amazon.com) - eBay (
ebay.com) - Deliveroo (
deliveroo.com) - Domino's France (
dominos.fr) - Envato (
envato.com)
Forums and Community Platforms
- Bodybuilding.com (
bodybuilding.com) - DevRant (
devrant.com) - Blablacar (
blablacar.com) - BlackWorldForum (
blackworldforum.com) - Various specialized forums (e.g.,
forum.codeigniter.com,forum.kodi.tv)
Adult Content and Specialized Services
- Adult platforms located in
holehe/modules/porn/(e.g.,babeshows.co.uk) - Armurerie Auxerre (
armurerie-auxerre.com) - NaturaBuy (
naturabuy.fr)
How Holehe Checks Email Registration
Holehe employs an asynchronous architecture to查询 these services efficiently without authentication. The execution flow follows this pattern:
-
Module Discovery: The tool imports every submodule in the
holehe.modulespackage viaholehe/modules/__init__.py. -
Function Collection: It gathers callable check functions using
get_functions()to identify which services to probe. -
Async Execution: For each module, it starts an asynchronous task invoking
launch_module(), passing the target email, anhttpx.AsyncClientinstance, and a shared results list. -
Result Processing: Each service-specific module returns a dictionary indicating whether the email exists, along with any recovered metadata such as password hints, phone numbers, or profile information. Rate-limited or failed requests are flagged accordingly.
Command-Line Usage Examples
Holehe provides granular control over which checks to perform and how to format results.
Basic Email Check
Execute checks against all supported websites:
holehe test@example.com
This command queries every domain listed in the data dictionary and prints a color-coded summary indicating registration status.
Export Results to CSV
Generate a machine-readable report:
holehe test@example.com --csv
The --csv flag triggers the export_csv() function, writing results to holehe_<timestamp>_test@example.com_results.csv.
Show Only Registered Sites
Filter output to display confirmed hits only:
holehe test@example.com --only-used
The --only-used flag suppresses entries where the email was not found or the request failed.
Disable Password Recovery Attempts
Limit checks to non-sensitive endpoints:
holehe test@example.com --no-password-recovery
This excludes services that rely on password-recovery logic, such as Adobe or Mail.ru.
Key Source Files
Understanding the codebase structure clarifies how the website list is maintained:
-
holehe/core.py: Contains the main entry point, argument parsing, thelaunch_modulefunction, and the definitivedatadictionary mapping modules to domains. -
holehe/modules/__init__.py: Package initializer enabling dynamic discovery of all service modules. -
holehe/modules/social_media/: Implements checks for social platforms (e.g.,facebook.py,twitter.py,instagram.py). -
holehe/modules/software/: Contains modules for software-related services (e.g.,adobe.py,lastpass.py,docker.py). -
holehe/modules/porn/: Houses modules for adult-content platforms (e.g.,pornhub.py). -
holehe/modules/osint/: OSINT-focused modules such asrocketreach.py.
Summary
- Holehe checks email registration against over 200 websites spanning social media, software services, forums, e-commerce, and adult content platforms.
- The complete list of supported sites is defined in the
datadictionary within thelaunch_modulefunction inholehe/core.py. - Each website has a dedicated Python module under
holehe/modules/implementing service-specific HTTP verification logic. - The tool uses asynchronous HTTP requests via
httpx.AsyncClientfor efficient parallel checking. - Results can be filtered using CLI flags like
--only-usedor exported via--csvfor further analysis.
Frequently Asked Questions
How many websites does Holehe check?
Holehe checks more than 200 distinct websites and online services. The exact number grows as the community adds new modules to the holehe/modules/ directory and corresponding entries to the data dictionary in holehe/core.py.
Where is the definitive list of supported websites located?
The authoritative list resides in the launch_module function inside holehe/core.py (approximately line 66). This function defines a dictionary named data that maps short module identifiers (e.g., 'github', 'instagram') to their respective domain names (e.g., 'github.com', 'instagram.com').
Can I add custom websites to Holehe?
Yes. To add a new service, create a Python module in the appropriate subdirectory under holehe/modules/ (such as holehe/modules/custom/) implementing the required check function. Then add the module name and domain mapping to the data dictionary in holehe/core.py. The module must accept an httpx.AsyncClient, email string, and return a standardized result dictionary.
Does Holehe work with all email providers?
Holehe accepts any valid email format (e.g., user@example.com). However, success rates vary based on individual service protections, including rate limiting, CAPTCHA mechanisms, and API endpoint changes that may require module updates in the source code.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →