What Are the Different Categories of Services Holehe Checks For? A Complete Guide to Its Modular Architecture

Holehe checks email registration status across 20 distinct service categories—including social media, shopping, adult content, developer platforms, and transportation services—organized as Python sub-packages under holehe/modules/.

Holehe is an open-source OSINT (Open Source Intelligence) tool designed to identify where an email address is registered online. Unlike simple breach checkers, it performs live verification against platform APIs and login endpoints to determine account existence. The tool organizes its supported services into logical categories, with each category implemented as a dedicated Python package under the holehe/modules/ directory according to the repository structure.

The 20 Service Categories in Holehe

The source code explicitly defines 20 category folders under holehe/modules/, each functioning as a Python sub-package with its own __init__.py file. These packages contain individual modules for specific platforms:

  • transport – Ride-sharing, logistics, and travel services (e.g., Uber, Lyft verification logic)
  • sport – Sports-related platforms and fitness applications
  • software – Desktop and SaaS software accounts
  • social_media – Classic social networks and messaging applications (Twitter, Instagram, Facebook)
  • shopping – E-commerce sites and price comparison platforms
  • real_estate – Property listing and rental platforms
  • programing – Developer-oriented services, coding platforms, and repositories
  • porn – Adult content and video streaming sites
  • osint – Open-source intelligence tools and reconnaissance platforms
  • music – Music streaming services and artist platforms
  • medical – Health-related portals and telemedicine services
  • medias – Photo and video sharing services distinct from mainstream social media
  • mails – Email provider-specific verification checks
  • learning – E-learning platforms, courses, and knowledge-sharing sites
  • jobs – Job boards, recruitment platforms, and freelance marketplaces
  • forum – Web forum software and discussion boards
  • crowfunding – Crowdfunding and fundraising platforms
  • crm – Customer Relationship Management tools and business software
  • company – Company profile and business directory sites
  • cms – Content Management Systems and website builders

Each category follows the pattern holehe/modules/<category>/__init__.py and contains platform-specific Python files. For example, the social media category includes holehe/modules/social_media/twitter.py for Twitter-specific checking logic.

How Holehe Dynamically Loads Service Categories

Holehe uses a dynamic import system defined in holehe/core.py to discover and execute checks across all 20 categories without hardcoding service lists.

import_submodules – This function recursively imports all Python modules under holehe/modules, treating each category folder as a sub-package. During initialization, Holehe calls import_submodules("holehe.modules") to load every available service checker into memory.

get_functions – After importing modules, this helper extracts public checking functions from each category module. Every service module exports an async function signature accepting email, client, and output parameters.

This architecture ensures that adding a new category simply requires creating a folder under holehe/modules/ with valid Python files; the core engine automatically incorporates these checks in subsequent runs.

Executing Checks Across Categories

Holehe uses Trio for asynchronous concurrency when querying services across all categories. The main execution flow in holehe/core.py coordinates the checks:


# Conceptual implementation based on core.py

async def run_checks(email):
    modules = import_submodules("holehe.modules")
    functions = get_functions(modules)
    
    async with httpx.AsyncClient() as client:
        async with trio.open_nursery() as nursery:
            for func in functions:
                nursery.start_soon(func, email, client, output_list)

The holehe/instruments.py file provides the TrioProgress instrument for real-time progress tracking during these concurrent operations, while holehe/localuseragent.py supplies consistent HTTP headers used across all category checks to avoid detection.

Practical Usage Examples

Command Line Interface

Run Holehe against all 20 categories simultaneously:

holehe user@example.com

Display only services where the email is registered:

holehe user@example.com --only-used

Export results to CSV for further analysis:

holehe user@example.com --csv output.csv

Python API by Category

To check a specific category programmatically without running the full suite:

from holehe.modules.social_media import twitter
import httpx
import asyncio

async def check_email(email):
    async with httpx.AsyncClient() as client:
        result = []
        await twitter(email, client, result)
        print(result)

asyncio.run(check_email("user@example.com"))

Summary

  • Holehe organizes OSINT checks into 20 distinct categories ranging from social_media to medical and porn platforms
  • Each category exists as a sub-package under holehe/modules/<category>/ with its own __init__.py and service modules
  • The import_submodules and get_functions utilities in holehe/core.py dynamically discover checks from all categories without manual registration
  • Categories include high-sensitivity areas like adult content, medical services, and financial platforms alongside standard shopping and social sites
  • The architecture supports concurrent checking across all categories using Trio asynchronous operations with progress instrumentation

Frequently Asked Questions

How many service categories does Holehe support?

Holehe supports 20 distinct service categories as defined by the sub-directory structure in holehe/modules/. These include transport, sport, software, social_media, shopping, real_estate, programing, porn, osint, music, medical, medias, mails, learning, jobs, forum, crowfunding, crm, company, and cms.

Can I add a custom service category to Holehe?

Yes. Create a new folder under holehe/modules/ containing an __init__.py file and Python modules implementing async checking functions following the standard signature (email, client, out). The dynamic import system in holehe/core.py automatically discovers and loads new categories during startup without modifying the core codebase.

Does Holehe check all categories simultaneously?

Yes. The tool uses Trio to execute checks concurrently across all 20 categories. The instruments.py module provides real-time progress bars during these parallel operations, while localuseragent.py ensures consistent HTTP headers are sent to services across every category.

Why are sensitive categories like 'porn' included in Holehe?

OSINT investigations often require comprehensive digital footprint analysis. The porn category, like medical or crowfunding, helps investigators understand the complete scope of an email address's online presence. These checks use the same privacy-preserving methodology as other categories, verifying registration status without retrieving or displaying personal content.

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 →