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:

  1. Module Discovery: The tool imports every submodule in the holehe.modules package via holehe/modules/__init__.py.

  2. Function Collection: It gathers callable check functions using get_functions() to identify which services to probe.

  3. Async Execution: For each module, it starts an asynchronous task invoking launch_module(), passing the target email, an httpx.AsyncClient instance, and a shared results list.

  4. 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, the launch_module function, and the definitive data dictionary 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 as rocketreach.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 data dictionary within the launch_module function in holehe/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.AsyncClient for efficient parallel checking.
  • Results can be filtered using CLI flags like --only-used or exported via --csv for 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:

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 →