Other Detection Methods in Holehe: Extracting Metadata from Odnoklassniki Accounts
Holehe's "Other" detection methods extract supplementary metadata beyond simple existence checks, specifically returning FullName and account creation timestamps from Odnoklassniki while leaving the others field as None for all other services.
Holehe is an open-source email OSINT tool that checks whether an email address is registered across hundreds of services. While most modules return only a binary exists flag, the "Other" detection methods populate an others dictionary with additional account metadata. According to the megadose/holehe source code, only the Odnoklassniki module currently implements this enrichment feature.
How Other Detection Methods Work in Holehe
Each service module in Holehe returns a standardized dictionary containing fields like exists, emailrecovery, and phoneNumber. The others key is reserved for service-specific metadata that goes beyond basic registration confirmation.
In holehe/core.py, the central orchestration engine aggregates results from each module and formats the output. When a module populates the others field with a dictionary rather than None, Holehe renders this additional context in the CLI output. Currently, only holehe/modules/social_media/odnoklassniki.py utilizes this capability to expose account metadata.
Odnoklassniki Module: The Primary Other Detection Implementation
The Odnoklassniki module demonstrates how Other detection methods enrich OSINT results by scraping profile data during the existence verification process.
Extracted Metadata Fields
When the module detects a registered account, it extracts two specific data points:
- FullName – The display name associated with the Odnoklassniki profile.
- Date, time of the creation – The exact timestamp indicating when the account was created.
These values populate the others dictionary with string keys matching the exact field names used by the service's response structure.
Source Implementation Details
In holehe/modules/social_media/odnoklassniki.py, the extraction logic parses the service's API response to isolate these metadata fields. Rather than returning a simple boolean, the module constructs a result object where others contains the parsed dictionary:
{
"FullName": "Jane Smith",
"Date, time of the creation": "2019-11-02 14:05:47"
}
This implementation pattern allows Holehe to display enriched intelligence while maintaining compatibility with the standard result schema used across all modules.
Output Format and Examples
When running Holehe from the command line, accounts detected via Other detection methods render with additional context following the standard [+] indicator:
$ holehe -C -T 15 email@example.com
# Output snippet (when an Odnoklassniki account exists)
[+] odnoklassniki.com / FullName Jane Smith / Date, time of the creation 2019-11-02 14:05:47
Unlike standard outputs that show only the domain and existence status, this enriched format concatenates the others key-value pairs into the result line.
Programmatic Access to Others Data
When consuming Holehe as a Python library, the others field appears in the raw result structure returned by the async core routine:
import json
from holehe.core import maincore
# ... (run the async maincore routine) ...
# A single entry from the result list might look like:
{
"name": "odnoklassniki",
"domain": "odnoklassniki.com",
"rateLimit": False,
"error": False,
"exists": True,
"emailrecovery": None,
"phoneNumber": None,
"others": {
"FullName": "Jane Smith",
"Date, time of the creation": "2019-11-02 14:05:47"
}
}
All other service modules currently return "others": None, indicating no additional metadata is available for those platforms.
Extending Other Detection Methods
The architecture supports expanding Other detection methods to additional services. To implement metadata extraction for other platforms, developers must modify the corresponding module in holehe/modules/ to populate the others dictionary with relevant key-value pairs during the account verification routine. The holehe/core.py engine automatically detects non-None others values and formats them into the output stream without requiring changes to the central orchestration logic.
Summary
- Primary implementation: Only
holehe/modules/social_media/odnoklassniki.pycurrently utilizes Other detection methods in Holehe. - Extracted fields: The module returns
FullNameandDate, time of the creationfor verified Odnoklassniki accounts. - Data structure: Results populate the
othersdictionary key with a metadata object, while all other modules returnNone. - CLI integration: Holehe automatically renders
othersdata in the standard output format when present. - Extensibility: Developers can add Other detection methods to additional services by populating the
othersfield in respective module files.
Frequently Asked Questions
What services support Other detection methods in Holehe?
Currently, only Odnoklassniki (odnoklassniki.com) implements Other detection methods. All other service modules in the Holehe repository return "others": None, meaning they do not expose metadata beyond the basic existence check.
How does the Odnoklassniki module extract account metadata?
The module in holehe/modules/social_media/odnoklassniki.py parses the service's API response during email verification to extract the profile's display name and account creation timestamp. It structures these values into a dictionary with keys FullName and Date, time of the creation, then assigns this dictionary to the others field in the result object.
Can I add Other detection methods to additional services?
Yes. To add Other detection methods to other services, you must extend the corresponding module file in holehe/modules/ to extract relevant metadata during the verification process and return it as a populated dictionary in the others field. The core engine in holehe/core.py will automatically detect and display this data without requiring modifications to the central formatting logic.
Why do most Holehe modules return None for the others field?
Most services do not expose additional metadata through their registration check endpoints, or the information requires authenticated sessions to access. The others field defaults to None to maintain a consistent schema across all modules while allowing selective enrichment only where unauthenticated metadata extraction is technically feasible and implemented.
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 →