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_mediatomedicalandpornplatforms - Each category exists as a sub-package under
holehe/modules/<category>/with its own__init__.pyand service modules - The
import_submodulesandget_functionsutilities inholehe/core.pydynamically 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →