Skip to main content

Check username availability across multiple popular platforms

Project description

User Scanner

User Scanner Logo


A powerful 2-in-1 OSINT suite combining deep Email OSINT with comprehensive Username Scanning.

With 205+ total scan vectors—including 100+ email-integrated sites and 105+ username platforms—you can identify digital footprints or verify account registrations in seconds.

The ultimate tool for finding a unique username across GitHub, X, Reddit, Instagram, and more 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 Not Found / Found / 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

Activate venv

# Linux / macOS
source .venv/bin/activate

# Windows (PowerShell)
.venv\Scripts\Activate.ps1

Installation

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

# install
pip install user-scanner

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 johndoe@gmail.com   # single email scanning 
user-scanner -u johndoe             # single username scanning 

Verbose mode

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

user-scanner -v -e johndoe@gmail.com -c dev

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
  ...

Selective scanning

Scan only specific categories or single modules:

user-scanner -u johndoe -c dev                # developer platforms only
user-scanner -e johndoe@gmail.com -m github   # only GitHub

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

Pattern generation

See Pattern Syntax for more details


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.shopping import etsy

async def main():
    # Engine detects 'email_scan' path -> returns "Registered" status
    result = await engine.check(etsy, "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())

Output:

{
        "email": "test@gmail.com",
        "category": "Shopping",
        "site_name": "Etsy",
        "status": "Registered",
        "url": "https://www.etsy.com",
        "extra": "ID: 98832\nName: test123\nUsername: test123\nGender: private\nIs Seller: No\nHas Public Page: No\nStats: 0 followers | 0 following | 0 favorites\nPrivacy: Items are Public | Shops are Public\nJoined: 2010-09-19 09:34:06\nLast Profile Update: 2020-07-31 06:10:24\nAvatar: https://i.etsystatic.com/site-assets/images/avatars/default_avatar.png?width=400",
        "reason": ""
}

Using Proxies

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

user-scanner -u johndoe -P proxies.txt --validate-proxies # recommended

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: Screenshots might be outdated


1000188339
1000175084
  • Use the --hudson flag to check if a username or email has been exposed in infostealer malware logs.
user-scanner -e johndoe@gmail.com --hudson   # for email check
user-scanner -u johndoe --hudson             # for username check
1000183041

❤️ Support the project

If this project helps you, consider supporting its development:

BTC (SegWit): bc1q0dzkuav8lq9lwu7gc457vwlda4utfcr5hpv7ka

💖 Sponsors

Huge thanks to our amazing sponsors who support the development of user-scanner!

soxoj
@soxoj

Contributing

See detailed Contributing guidelines


⚠️ 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.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

user_scanner-1.3.6.7.tar.gz (86.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

user_scanner-1.3.6.7-py3-none-any.whl (207.1 kB view details)

Uploaded Python 3

File details

Details for the file user_scanner-1.3.6.7.tar.gz.

File metadata

  • Download URL: user_scanner-1.3.6.7.tar.gz
  • Upload date:
  • Size: 86.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.34.2

File hashes

Hashes for user_scanner-1.3.6.7.tar.gz
Algorithm Hash digest
SHA256 d3d0639984c4af5cf08be8b2a8cf62ed0764f9a32017f05f5c9277e4685485a5
MD5 b8e96a7e367f42a166061ecf371f6fe6
BLAKE2b-256 8923951d423a1e5dbc2b48e71062ff8e1f6a0067115263c1eae329574ecf1a4d

See more details on using hashes here.

File details

Details for the file user_scanner-1.3.6.7-py3-none-any.whl.

File metadata

File hashes

Hashes for user_scanner-1.3.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a9e2383bbc3a02fcb9370c8b82ea2bdd3ac5154bbe7fb21f8a4f053b85f543c1
MD5 b01e239d3470893b79113301f85605ad
BLAKE2b-256 bd9a5aef9b1fca61148f06ca419b5ede2b2474eb7d68f9496f65b43bc3bd2db2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page