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

> Discover the 20 service categories Holehe checks for, from social media to developer platforms. Understand its modular architecture and the scope of its email registration checks.

- Repository: [Palenath/holehe](https://github.com/megadose/holehe)
- Tags: deep-dive
- Published: 2026-08-29

---

**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`](https://github.com/megadose/holehe/blob/main/__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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/holehe/core.py) coordinates the checks:

```python

# 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`](https://github.com/megadose/holehe/blob/main/holehe/instruments.py) file provides the `TrioProgress` instrument for real-time progress tracking during these concurrent operations, while [`holehe/localuseragent.py`](https://github.com/megadose/holehe/blob/main/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:

```bash
holehe user@example.com

```

Display only services where the email is registered:

```bash
holehe user@example.com --only-used

```

Export results to CSV for further analysis:

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

```

### Python API by Category

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

```python
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`](https://github.com/megadose/holehe/blob/main/__init__.py) and service modules
- The `import_submodules` and `get_functions` utilities in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/__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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/instruments.py) module provides real-time progress bars during these parallel operations, while [`localuseragent.py`](https://github.com/megadose/holehe/blob/main/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.