# How holehe's 120+ Modules Are Categorized by Service Domain

> Discover how holehe's 120+ modules are categorized by service domain. Explore groupings for social media, e-commerce, productivity, and more to understand holehe's extensive capabilities.

- Repository: [Palenath/holehe](https://github.com/megadose/holehe)
- Tags: internals
- Published: 2026-08-18

---

**Holehe's 120+ modules are organized into 18 service-based categories under `holehe/modules/`, with each sub-package grouping together platforms that share a common domain such as social media, e-commerce, productivity, or adult content.**

This categorization system in megadose/holehe enables security researchers and OSINT practitioners to quickly locate relevant modules and understand the tool's coverage at a glance. Rather than organizing by technical implementation or API type, holehe structures its I2O+ (Input → Output plus) architecture around the real-world service domains that users actually search.

## How the Module Categories Work

In `holehe/modules/`, each category exists as a standalone Python package with its own [`__init__.py`](https://github.com/megadose/holehe/blob/main/__init__.py). Modules within a category implement a standardized interface: they accept an email address, an asynchronous HTTP client, and a results list, then append a dictionary containing `name`, `exists`, `emailrecovery`, `phoneNumber`, `others`, and `rateLimit`.

This design means adding coverage for a new shopping site requires only creating a new file in `holehe/modules/shopping/`, following the same pattern as existing modules like [`amazon.py`](https://github.com/megadose/holehe/blob/main/amazon.py) or [`ebay.py`](https://github.com/megadose/holehe/blob/main/ebay.py).

## Complete Category Breakdown

The 18 categories cover distinct service domains. Below is the full taxonomy with representative modules and source locations:

### Social Media

- **Purpose**: Profile and login discovery on networking platforms
- **Modules**: `twitter`, `instagram`, `snapchat`, `tiktok` (via `facebook`), `xing`
- **Source**: `holehe/modules/social_media/`

### Software

- **Purpose**: Desktop and cloud software with password-recovery endpoints
- **Modules**: `office365`, `lastpass`, `adobe`, `docker`, `firefox`
- **Source**: `holehe/modules/software/`

### Shopping

- **Purpose**: E-commerce account lookups
- **Modules**: `amazon`, `ebay`, `vivino`, `naturabuy`, `garmin`
- **Source**: `holehe/modules/shopping/`

### Productivity

- **Purpose**: Organization and task management tools
- **Modules**: `evernote`, `anydo`
- **Source**: `holehe/modules/productivity/`

### Music

- **Purpose**: Streaming and music-related platforms
- **Modules**: `spotify`, `soundcloud`, `lastfm`, `tunefind`
- **Source**: `holehe/modules/music/`

### Adult Content

- **Purpose**: Adult sites with exposed account-recovery
- **Modules**: `pornhub`, `xnxx`, `xvideos`
- **Source**: `holehe/modules/porn/`

### Payment

- **Purpose**: Financial and payment services
- **Modules**: `venmo`
- **Source**: `holehe/modules/payment/`

### OSINT

- **Purpose**: Intelligence and email-lookup APIs
- **Modules**: `rocketreach`
- **Source**: `holehe/modules/osint/`

### Learning

- **Purpose**: Educational platforms
- **Modules**: `quora`, `duolingo`, `codecademy`
- **Source**: `holehe/modules/learning/`

### Programming

- **Purpose**: Developer platforms and coding sites
- **Modules**: `github`, `replit`, `devrant`, `teamtreehouse`
- **Source**: `holehe/modules/programing/`

### Real Estate

- **Purpose**: Property-listing services
- **Modules**: `vrbo`
- **Source**: `holehe/modules/real_estate/`

### Crowdfunding

- **Purpose**: Fundraising platforms
- **Modules**: `buymeacoffee`
- **Source**: `holehe/modules/crowfunding/`

### Company

- **Purpose**: Personal-branding and about-page services
- **Modules**: `aboutme`
- **Source**: `holehe/modules/company/`

### CMS

- **Purpose**: Content management systems
- **Modules**: `wordpress`, `gravatar`, `atlassian`
- **Source**: `holehe/modules/cms/`

### Medical

- **Purpose**: Health-oriented platforms
- **Modules**: `sevencups`, `caringbridge`
- **Source**: `holehe/modules/medical/`

### Media Sharing

- **Purpose**: Photo and video hosting services
- **Modules**: `flickr`
- **Source**: `holehe/modules/medias/`

### Transport

- **Purpose**: Ride-sharing and travel services
- **Modules**: `blablacar`
- **Source**: `holehe/modules/transport/`

### Sports

- **Purpose**: Fitness and athletic platforms
- **Modules**: `bodybuilding`
- **Source**: `holehe/modules/sport/`

## Working with Categories in Code

### Running a Single Module

Target a specific service using direct import from its category:

```python
import trio, httpx
from holehe.modules.social_media.twitter import twitter

async def demo():
    email = "test@example.com"
    out = []
    async with httpx.AsyncClient() as client:
        await twitter(email, client, out)
    print(out)  # → [{'name': 'twitter', 'exists': True, ...}]

trio.run(demo)

```

### Running All Modules in a Category

Programmatically discover and execute every module within a category:

```python
import trio, httpx
from importlib import import_module
from pathlib import Path

async def run_category(category: str, email: str):
    out = []
    async with httpx.AsyncClient() as client:
        mod_path = Path(__file__).parent / "holehe" / "modules" / category
        for py_file in mod_path.glob("*.py"):
            if py_file.name == "__init__.py":
                continue
            mod = import_module(f"holehe.modules.{category}.{py_file.stem}")
            await getattr(mod, py_file.stem)(email, client, out)
    return out

email = "test@example.com"
results = trio.run(run_category, "social_media", email)
print(results)

```

### CLI: Scanning Across All Categories

Execute the full module suite from command line:

```bash
holehe test@example.com

```

The CLI dispatcher in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) automatically loads all categories and modules, handling the asynchronous orchestration.

## Key Implementation Files

| File | Role |
|------|------|
| [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) | Orchestrates module loading and async dispatch |
| [`holehe/modules/__init__.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/__init__.py) | Exposes category package structure |
| [`holehe/modules/social_media/twitter.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/social_media/twitter.py) | Reference social-media implementation |
| [`holehe/modules/software/office365.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/office365.py) | Reference software-category implementation |
| [`holehe/modules/shopping/amazon.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/shopping/amazon.py) | Reference shopping-category implementation |

## Summary

- **18 domain-based categories** organize holehe's 120+ modules under `holehe/modules/`
- **Service taxonomy** prioritizes real-world use cases over technical implementation details
- **Standardized interface** across all modules enables consistent extension and maintenance
- **Category-level imports** allow targeted or broad execution strategies
- **I2O+ architecture** separates input handling, service queries, and result aggregation cleanly

## Frequently Asked Questions

### How many categories does holehe have?

Holehe organizes its modules into **18 distinct categories**, ranging from social_media and shopping to specialized domains like medical, transport, and adult content. This number has grown organically as the tool expanded its service coverage.

### Can I run only specific categories instead of all modules?

Yes. While the CLI (`holehe test@example.com`) runs all available modules, you can programmatically target specific categories using the pattern shown in the code example above—importing from `holehe.modules.{category}` and iterating over that sub-package's Python files.

### How do I add a new module to an existing category?

Create a new Python file in the appropriate `holehe/modules/{category}/` directory. The module must implement the standard async function signature: `async def servicename(email, client, out)` where `client` is an httpx.AsyncClient and `out` is a list to which you append result dictionaries. No changes to [`core.py`](https://github.com/megadose/holehe/blob/main/core.py) are required for category additions.

### Why are categories organized by service type rather than technical approach?

The domain-based taxonomy aligns with how OSINT practitioners actually search—by the platform they're investigating. A researcher looking for social media accounts doesn't need to know whether a service uses OAuth, REST, or GraphQL; they need to find the `social_media` category and select relevant targets. This organization also makes coverage gaps immediately visible.