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

> Discover which Holehe modules need User-Agent strings. Our complete reference details modules that require specific headers to mimic real browsers for web requests.

- Repository: [Palenath/holehe](https://github.com/megadose/holehe)
- Tags: api-reference
- Published: 2026-08-28

---

**Almost every Holehe module that performs web requests requires a User-Agent header, sourcing values from [`holehe/localuseragent.py`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/holehe/localuseragent.py), the `ua` object contains categorized browser strings:

```python
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`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/adobe.py) | Creative Cloud |
| **docker.py** | [`holehe/modules/software/docker.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/docker.py) | Container registry |
| **office365.py** | [`holehe/modules/software/office365.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/office365.py) | Microsoft services |
| **lastpass.py** | [`holehe/modules/software/lastpass.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/lastpass.py) | Password manager |
| **archive.py** | [`holehe/modules/software/archive.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/software/archive.py) | Internet Archive |
| **issuu.py** | [`holehe/modules/software/issuu.py`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/holehe/modules/mails/google.py) |
| **Yahoo Mail** | [`holehe/modules/mails/yahoo.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/mails/yahoo.py) |
| **ProtonMail** | [`holehe/modules/mails/protonmail.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/mails/protonmail.py) |
| **Mail.ru** | [`holehe/modules/mails/mail_ru.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/mails/mail_ru.py) |
| **La Poste** | [`holehe/modules/mails/laposte.py`](https://github.com/megadose/holehe/blob/main/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:

- **blablacar.py** ([`holehe/modules/transport/blablacar.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/transport/blablacar.py)) – Ridesharing platform
- **vrbo.py** ([`holehe/modules/real_estate/vrbo.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/real_estate/vrbo.py)) – Vacation rentals

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`](https://github.com/megadose/holehe/blob/main/codecademy.py) | Coding education |
| **CodePen** | [`codepen.py`](https://github.com/megadose/holehe/blob/main/codepen.py) | Frontend playground |
| **Replit** | [`replit.py`](https://github.com/megadose/holehe/blob/main/replit.py) | Cloud IDE |
| **Team Treehouse** | [`teamtreehouse.py`](https://github.com/megadose/holehe/blob/main/teamtreehouse.py) | Tech skills training |
| **DevRant** | [`devrant.py`](https://github.com/megadose/holehe/blob/main/devrant.py) | Developer community |
| **Duolingo** | [`duolingo.py`](https://github.com/megadose/holehe/blob/main/duolingo.py) | Language learning |
| **Quora** | [`quora.py`](https://github.com/megadose/holehe/blob/main/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:

- **Payment:** [`venmo.py`](https://github.com/megadose/holehe/blob/main/venmo.py) – Peer-to-peer payments
- **OSINT:** [`rocketreach.py`](https://github.com/megadose/holehe/blob/main/rocketreach.py) – Professional contact finder
- **Medical:** [`sevencups.py`](https://github.com/megadose/holehe/blob/main/sevencups.py), [`caringbridge.py`](https://github.com/megadose/holehe/blob/main/caringbridge.py) – Support communities
- **Jobs:** [`freelancer.py`](https://github.com/megadose/holehe/blob/main/freelancer.py), [`coroflot.py`](https://github.com/megadose/holehe/blob/main/coroflot.py), [`seoclerks.py`](https://github.com/megadose/holehe/blob/main/seoclerks.py) – Gig economy platforms
- **Sports:** [`bodybuilding.py`](https://github.com/megadose/holehe/blob/main/bodybuilding.py) – Fitness community

## Customizing User-Agents in Holehe

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

1. **[`holehe/localuseragent.py`](https://github.com/megadose/holehe/blob/main/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:

```python

# 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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/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`](https://github.com/megadose/holehe/blob/main/holehe/localuseragent.py) with additional browser strings. Ensure new entries match the existing nested structure: `ua["browsers"]["your_category"] = ["string1", "string2"]`.