Can Holehe Check Social Media Profiles? OSINT Email Verification Explained

Holehe can check social media profiles by verifying whether an email address is registered on platforms like Twitter, Instagram, Snapchat, and Facebook through automated queries to public password recovery endpoints.

Holehe is an open-source Python OSINT tool that determines where an email address is registered across hundreds of online services. If you need to verify whether a specific email owns social media accounts, holehe checks social media profiles by exploiting public "forgot password" APIs without authentication. The tool's modular architecture allows it to query platforms individually through dedicated modules in the holehe/modules/social_media/ directory.

How Holehe Checks Social Media Profiles

The Modular Architecture

Each social media platform is implemented as an independent Python module located under holehe/modules/social_media/. The central orchestrator in holehe/core.py maintains a service map called data, which is a dictionary that registers every available module. When you execute a scan, the core routine dynamically loads each social media checker—such as twitter.py, instagram.py, or snapchat.py—and executes its asynchronous verification function.

The Execution Flow

When holehe checks social media profiles, it follows this precise sequence:

  1. Initialize HTTP Client – Creates an aiohttp.ClientSession with a randomized user-agent string to mimic legitimate browser traffic.
  2. Iterate Service Map – The data dictionary in holehe/core.py yields the module references for each social platform.
  3. Execute Async Checks – For each module, holehe invokes the platform-specific coroutine that constructs the HTTP request.
  4. Parse Response Signatures – Each module analyzes the HTTP response status codes or JSON payloads from "forgot password" endpoints to determine if the email exists in the platform's database.
  5. Report Results – Returns a standardized dictionary containing the service name, found boolean, and other metadata.

Supported Social Media Platforms

Holehe includes dedicated checker modules for major social networks. Each module targets the platform's public account recovery or email availability endpoint:

Implementation Examples

Command Line Usage

The simplest way to check an email across all supported social media platforms is via the CLI:

holehe user@example.com

The output displays a table where each row corresponds to a service. Social media entries appear with the service name (e.g., twitter, instagram) and a found or not found status.

Programmatic Integration

You can import holehe's core functions directly into Python scripts to process results programmatically:

import asyncio
from holehe.core import check_email

async def verify_social_accounts(email):
    """
    Check email registration across all holehe services
    including social media platforms.
    """
    results = await check_email(email)
    
    for result in results:
        if result["found"]:
            print(f"{result['service']} → Account exists")
        else:
            print(f"{result['service']} → Not found")

# Run the check

asyncio.run(verify_social_accounts("target@example.com"))

The check_email function automatically loads every module registered in the data service map, executes the checks concurrently, and returns a list of result dictionaries.

Targeting Specific Social Platforms

To check only social media sites and ignore other services, manually select modules from the service map:

import asyncio
import aiohttp
from holehe.core import data, run_module

async def check_social_only(email):
    """
    Restrict verification to specific social media platforms.
    """
    social_platforms = [
        "twitter", "instagram", "snapchat", 
        "facebook", "pinterest", "tiktok"
    ]
    
    async with aiohttp.ClientSession() as client:
        for platform in social_platforms:
            if platform in data:
                await run_module(data[platform], email, client)

# Execute targeted scan

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

This approach uses the run_module function to execute specific checkers from the data dictionary while maintaining the async HTTP session for connection pooling.

Core Source Files

Understanding these key files helps when customizing or debugging social media checks:

Summary

  • Holehe verifies email registration across social media by querying public password recovery endpoints without requiring authentication.
  • The modular architecture in holehe/modules/social_media/ allows each platform to implement custom request logic while returning standardized results.
  • The data service map in holehe/core.py registers all available checkers and enables dynamic module loading.
  • Users can run checks via CLI (holehe <email>) or programmatically using the check_email() coroutine.
  • For targeted scans, the run_module() function allows selective execution of specific social media checkers from the service map.

Frequently Asked Questions

Which social media platforms can holehe check?

Holehe supports major platforms including Twitter, Instagram, Snapchat, Facebook, Pinterest, TikTok, LinkedIn, and YouTube. Each platform has a dedicated Python module in the holehe/modules/social_media/ directory that implements platform-specific logic for querying public account recovery APIs.

How does holehe verify an email address without logging in?

According to the holehe source code, each social media module sends crafted HTTP requests to public "forgot password" or "email availability" endpoints. These endpoints return distinctive HTTP status codes or JSON error messages that indicate whether the email exists in the platform's user database, allowing verification without authentication cookies or tokens.

Using holehe to query publicly accessible password recovery endpoints typically falls within legal gray areas that depend on jurisdiction, intent, and the specific platform's Terms of Service. The tool automates requests that any user could manually send through a browser, but users should ensure compliance with local laws and platform policies regarding automated data collection.

Can holehe detect private or deactivated social media accounts?

Holehe can only determine if an email address is registered in a platform's database. It cannot distinguish between active, private, suspended, or deactivated accounts, as these states often produce identical responses from public recovery APIs or require authenticated access to differentiate.

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 →