DEV Community

Cover image for User Scanner : πŸ•΅οΈπŸ«† (2-in-1) Emaill and Username OSINT tool that analyzes email and username presence across multiple platforms ⚑
kaifcodec
kaifcodec

Posted on • Edited on

User Scanner : πŸ•΅οΈπŸ«† (2-in-1) Emaill and Username OSINT tool that analyzes email and username presence across multiple platforms ⚑

User Scanner


A powerful Email OSINT tool that checks if a specific email is registered on various sites, combined with username scanning for branding or OSINT β€” 2-in-1 tool.

Perfect for fast, accurate and lightweight email OSINT

Perfect for finding a unique username across GitHub, Twitter, Reddit, Instagram, and more, all in a single command.

Features

  • βœ… Email & username OSINT: check email registrations and username availability across social, developer, creator, and other platforms
  • βœ… Dual-mode usage: works as an email scanner, username scanner, or username-only tool
  • βœ… Clear results: Registered / Not Registered for emails and Available / Taken / Error for usernames with precise failure reasons
  • βœ… Fully modular architecture for easy addition of new platform modules
  • βœ… Bulk scanning support for usernames and emails via input files
  • βœ… Wildcard-based username permutations with automatic variation generation
  • βœ… Multiple output formats: console, JSON, and CSV, with file export support
  • βœ… Proxy support with rotation and pre-scan proxy validation
  • βœ… Smart auto-update system with interactive upgrade prompts via PyPI

Virtual Environment (optional but recommended)


# create venv
python -m venv .venv

Enter fullscreen mode Exit fullscreen mode

Activate venv

# Linux / macOS
source .venv/bin/activate

# Windows (PowerShell)
.venv\Scripts\Activate.ps1
Enter fullscreen mode Exit fullscreen mode

Installation

# upgrade pip
python -m pip install --upgrade pip

# install
pip install user-scanner
Enter fullscreen mode Exit fullscreen mode

Important Flags

See Important flags here and use the tool powerfully

Usage

Basic username/email scan

Scan a single email or username across all available modules/platforms:

user-scanner -e john_doe@gmail.com   # single email scanning 
user-scanner -u john_doe             # single username scanning 
Enter fullscreen mode Exit fullscreen mode

Verbose mode

Use -v flag to show the url of the sites being checked

user-scanner -v -e johndoe@gmail.com -c dev
Enter fullscreen mode Exit fullscreen mode

Output:

  ...
  [βœ”] Huggingface [https://huggingface.co] (johndoe@gmail.com): Registered
  [βœ”] Envato [https://account.envato.com] (johndoe@gmail.com): Registered
  [βœ”] Replit [https://replit.com] (johndoe@gmail.com): Registered
  [βœ”] Xda [https://xda-developers.com] (johndoe@gmail.com): Registered
  ...
Enter fullscreen mode Exit fullscreen mode

Selective scanning

Scan only specific categories or single modules:

user-scanner -u john_doe -c dev                # developer platforms only
user-scanner -e john_doe@gmail.com -m github   # only GitHub
Enter fullscreen mode Exit fullscreen mode

Bulk email/username scanning

Scan multiple emails/usernames from a file (one email/username per line):

  • Can also be combined with categories or modules using -c , -m and other flags
user-scanner -ef emails.txt     # bulk email scan
user-scanner -uf usernames.txt  # bulk username scan
Enter fullscreen mode Exit fullscreen mode

Library mode for email_scan

Only available for user-scanner>=1.2.0

See full usage (eg. category checks, full scan) guide library usage

  • Email scan example (single module):

import asyncio
from user_scanner.core import engine
from user_scanner.email_scan.dev import github

async def main():
    # Engine detects 'email_scan' path -> returns "Registered" status
    result = await engine.check(github, "test@gmail.com")
    json_data = result.to_json() # returns JSON output
    csv_data = result.to_csv()   # returns CSV output
    print(json_data)             # prints the json data

asyncio.run(main())

Enter fullscreen mode Exit fullscreen mode

Output:


{
        "email": "test@gmail.com",
        "category": "Dev",
        "site_name": "Github",
        "status": "Registered",
        "url": "https://github.com",
        "reason": ""
}
Enter fullscreen mode Exit fullscreen mode

Using Proxies

Validate proxies before scanning (tests each proxy against google.com):

user-scanner -u john_doe -P proxies.txt --validate-proxies # recommended
Enter fullscreen mode Exit fullscreen mode

This will:

  1. Filter out non-working proxies
  2. Save working proxies to validated_proxies.txt
  3. Use only validated proxies for scanning

Screenshots:

  • Note*: New modules are constantly getting added so screenshots might show only limited, outdated output:

1000146237


user-scanner's main usage screenshot


❀️ Support the project

If this project helps you, consider supporting its development:

BTC (SegWit): bc1q0dzkuav8lq9lwu7gc457vwlda4utfcr5hpv7ka


Contributing

Modules are organized under user_scanner/:

user_scanner/
β”œβ”€β”€ email_scan/       # Currently in development
β”‚   β”œβ”€β”€ social/       # Social email scan modules (Instagram, Mastodon, X, etc.)
|   β”œβ”€β”€ adult/        # Adult sites 
|    ...               # New sites to be added soon
β”œβ”€β”€ user_scan/
β”‚   β”œβ”€β”€ dev/          # Developer platforms (GitHub, GitLab, npm, etc.)
β”‚   β”œβ”€β”€ social/       # Social platforms (Twitter/X, Reddit, Instagram, Discord, etc.)
β”‚   β”œβ”€β”€ creator/      # Creator platforms (Hashnode, Dev.to, Medium, Patreon, etc.)
β”‚   β”œβ”€β”€ community/    # Community platforms (forums, StackOverflow, HackerNews, etc.)
β”‚   β”œβ”€β”€ gaming/       # Gaming sites (chess.com, Lichess, Roblox, Minecraft, etc.)
    ...
Enter fullscreen mode Exit fullscreen mode

See detailed Contributing guidelines


Dependencies:


License

This project is licensed under the MIT License. See LICENSE for details.


⚠️ Disclaimer

This tool is provided for educational purposes and authorized security research only.

  • User Responsibility: Users are solely responsible for ensuring their usage complies with all applicable laws and the Terms of Service (ToS) of any third-party providers.
  • Methodology: The tool interacts only with publicly accessible, unauthenticated web endpoints. It does not bypass authentication, security controls, or access private user data.
  • No Profiling: This software performs only basic yes/no availability checks. It does not collect, store, aggregate, or analyze user data, behavior, or identities.
  • Limitation of Liability: The software is provided β€œas is”, without warranty of any kind. The developers assume no liability for misuse or any resulting damage or legal consequences.

πŸ› οΈ Troubleshooting

Some sites may return 403 Forbidden or connection timeout errors, especially if they are blocked in your region (this is common with some adult sites).

  • If a site is blocked in your region, use a VPN and select a region where you know the site is accessible.
  • Then run the tool again.

These issues are caused by regional or network restrictions, not by the tool itself. If it still fails, report the error by opening an issue.

Top comments (14)

Collapse
 
kaifcodec profile image
kaifcodec

Actively looking for feedbacks and contributions for improvement of it.

Collapse
 
japroger profile image
JA Proger

Great project!

Collapse
 
kaifcodec profile image
kaifcodec

Thanks!
UserScanner is open to contributions and it's super easy to contribute, if you are familiar with networking and APIs you can add new popular site support which you prefer and think would make the project better.

Collapse
 
japroger profile image
JA Proger

Thank you for invitation! I'll think about it. I'm currently getting familiar with networking, so wouldn't bring anything nice πŸ˜‰

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
kaifcodec profile image
kaifcodec

Thanks!

Collapse
 
splotdev profile image
Splot Dev

This is really useful - but could you create a web based version? I think users would love that

Collapse
 
kaifcodec profile image
kaifcodec

Thanks! Do you mean a hosted web version (like websites), or a local one that runs via Flask/FastAPI on localhost?

Collapse
 
splotdev profile image
Splot Dev

A hosted web version would be really nice

Thread Thread
 
kaifcodec profile image
kaifcodec

Thanks! A hosted version would be great, but the project’s still small, not enough supported sites yet. A public one would also need regular maintenance since sites change and rate limits hit often. For now, I’m keeping it CLI-focused until it’s bigger and more stable. If you’re into web requests or site integrations, feel free to contribute, more hands will speed things up.

Collapse
 
nathan2412 profile image
Nathan2412

Why is it necessary to digitize these systems?

Collapse
 
kaifcodec profile image
kaifcodec

I didn't really understand what you asked, can you clarify a little bit?

Collapse
 
provenco profile image
Proven

Good App!

Collapse
 
kaifcodec profile image
kaifcodec

Thanks! Feel free to check it out by yourself and suggest any fixes or features.