Which Holehe Modules Require User-Agent Strings: Complete Module Reference

Almost every Holehe module that performs web requests requires a User-Agent header, sourcing values from holehe/localuseragent.py and injecting them into HTTP request headers to mimic legitimate browsers.

Holehe is an open-source OSINT tool for checking email address usage across online services. Understanding which modules require User-Agent strings helps developers debug request failures, customize headers, or identify why certain checks might be blocked by target services.

How Holehe Implements User-Agent Headers

The User-Agent injection pattern is consistent across the megadose/holehe codebase. Each module constructs a headers dictionary using randomly selected browser strings from the centralized ua dictionary.

In holehe/localuseragent.py, the ua object contains categorized browser strings:

import random
from holehe.localuseragent import ua

headers = {
    "User-Agent": random.choice(ua["browsers"]["chrome"]),
    "Accept": "application/json",
}
response = requests.get(url, headers=headers)

This pattern appears in virtually every module performing HTTP requests. The random.choice() call selects from chrome, firefox, safari, iOS, and other browser categories to rotate signatures and avoid detection.

Social Media Modules Requiring User-Agent

The largest category of modules with explicit User-Agent requirements covers social platforms. These modules implement the header pattern in holehe/modules/social_media/:

  • facebook.py – Meta's platform detection
  • instagram.py – Image-based social network checking
  • snapchat.py – Ephemeral messaging service
  • discord.py – Gaming and community platform
  • twitter/xing.py – Professional and microblogging networks
  • tumblr.py, wattpad.py, strava.py – Content and fitness communities
  • imgur.py, bitmoji.py, fanpop.py – Media sharing services
  • myspace.py, odnoklassniki.py, taringa.py – Regional social networks
  • patreon.py, plurk.py, tellonym.py, crevado.py – Creator and niche platforms

Each file constructs headers using the ua dictionary before making authentication or existence checks against their respective APIs.

Software and Service Modules

Multiple productivity and software platforms require browser-like headers:

Module File Path Category
adobe.py holehe/modules/software/adobe.py Creative Cloud
docker.py holehe/modules/software/docker.py Container registry
office365.py holehe/modules/software/office365.py Microsoft services
lastpass.py holehe/modules/software/lastpass.py Password manager
archive.py holehe/modules/software/archive.py Internet Archive
issuu.py holehe/modules/software/issuu.py Document platform

These modules particularly need realistic User-Agent strings because enterprise services often implement stricter bot detection than consumer platforms.

E-Commerce and Shopping Platforms

Online retailers frequently block non-browser requests. Holehe's shopping modules in holehe/modules/shopping/ all implement User-Agent headers:

  • ebay.py – Global marketplace
  • amazon variants including regional implementations
  • dominosfr.py, deliveroo.py – Food delivery services
  • envato.py – Digital marketplace
  • garmin.py, naturabuy.py, vivino.py – Specialized retailers
  • armurerieauxerre.py – Niche e-commerce

The ebay.py module particularly relies on header rotation because its anti-bot systems aggressively filter automated requests.

Communication and Email Services

Email provider modules require User-Agent strings to access webmail interfaces and account recovery flows:

Provider Module File
Google/Gmail holehe/modules/mails/google.py
Yahoo Mail holehe/modules/mails/yahoo.py
ProtonMail holehe/modules/mails/protonmail.py
Mail.ru holehe/modules/mails/mail_ru.py
La Poste holehe/modules/mails/laposte.py

These modules check email existence through forgotten-password flows, which typically require browser-identical headers to complete successfully.

Forum and Community Platforms

The most extensive category of User-Agent-dependent modules covers internet forums in holehe/modules/forum/:

Large forum implementations:

  • mybb.py – MyBB forum software detection
  • phpbb variants including specialized communities
  • vbulletin-based platforms across multiple niches

Specialized communities:

  • koditv.py – Media center community
  • cracked_to.py, cpaelites.py, cpahero.py – Marketing forums
  • codeigniter.py – Developer framework community
  • demonforums.py, blackworldforum.py – General discussion
  • biotechnologyforums.py, biosmods.py – Technical niches

All 30+ forum modules follow identical header construction patterns to bypass common forum software bot protections like XenForo's anti-spam systems.

Entertainment and Media Modules

Content platforms with strict access controls:

  • spotify.py, soundcloud.py, smule.py, blip.py, tunefind.py – Audio streaming
  • pornhub.py, xvideos.py, xnxx.py, redtube.py – Adult content platforms
  • flickr.py, ello.py, rambler.py, komoot.py, sporcle.py – Mixed media

The adult content modules particularly require header rotation as these platforms implement aggressive anti-scraping measures.

Transportation and Travel

Limited but significant coverage:

Both implement browser detection bypass for their search and availability endpoints.

Developer and Learning Platforms

Technical education and coding platforms:

Platform Module Purpose
Codecademy codecademy.py Coding education
CodePen codepen.py Frontend playground
Replit replit.py Cloud IDE
Team Treehouse teamtreehouse.py Tech skills training
DevRant devrant.py Developer community
Duolingo duolingo.py Language learning
Quora quora.py Q&A platform

These services often expose email existence through account recovery endpoints that require realistic browser headers.

Other Notable Modules

Additional categories with User-Agent requirements:

Customizing User-Agents in Holehe

To modify or inspect User-Agent behavior, examine these key files:

  1. holehe/localuseragent.py – Contains the ua dictionary with all browser strings
  2. Individual module files – Each contains header construction logic

Example customization to force a specific browser:


# Instead of random selection, specify directly

headers = {
    "User-Agent": ua["browsers"]["firefox"][0],  # First Firefox string

    "Accept-Language": "en-US,en;q=0.9",
}

Summary

  • User-Agent injection is nearly universal across Holehe modules—any module performing HTTP requests implements this pattern
  • Source location: holehe/localuseragent.py provides the ua dictionary used by all modules
  • Primary categories: Social media (20+ modules), forums (30+ modules), shopping (8 modules), and email services (5 modules) represent the largest User-Agent-dependent groups
  • Implementation pattern: random.choice(ua["browsers"][browser_type]) injected into request headers
  • Purpose: Evade bot detection on services checking for browser legitimacy

Frequently Asked Questions

What happens if I modify the User-Agent in a Holehe module?

The target service may respond differently—some block non-standard strings while others accept them. Consistent modifications across all modules in holehe/modules/ maintain uniform behavior, though aggressive rotation can trigger rate limiting.

Which Holehe modules do NOT use User-Agent headers?

Modules relying on API endpoints with explicit authentication or specialized protocols may omit browser headers. However, the vast majority of active email-checking modules in the repository implement the User-Agent pattern described above.

How does Holehe's User-Agent rotation compare to other OSINT tools?

Holehe's centralized ua dictionary approach in localuseragent.py provides more organized rotation than tools hardcoding strings per-module. The categorized browser selection (chrome/firefox/safari/iOS) allows targeted mimicry of specific device types.

Can I add custom User-Agent strings to Holehe?

Yes—extend the ua dictionary in holehe/localuseragent.py with additional browser strings. Ensure new entries match the existing nested structure: ua["browsers"]["your_category"] = ["string1", "string2"].

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 →