Skip to main content

Check username availability across multiple popular platforms

Reason this release was yanked:

version mismatch with 1.1.0.2

Project description

User Scanner

User Scanner Logo


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

  • ✅ Check an email across multiple sites to see if it’s registered.
  • ✅ Scan usernames across social networks, developer platforms, creator communities, and more.
  • ✅ Can be used purely as a username tool.
  • ✅ Smart auto-update system detects new releases on PyPI and prompts the user to upgrade interactively.
  • ✅ Clear Registered and Not Registered for email scanning Available / Taken / Error output for username scans
  • ✅ Robust error handling: displays the exact reason a username or email cannot be used (e.g., underscores or hyphens at the start/end).
  • ✅ Fully modular: easily add new platform modules.
  • ✅ Wildcard-based username permutations for automatic variation generation using a provided suffix.
  • ✅ Option to select results format (JSON, CSV, console).
  • ✅ Save scanning and OSINT results in the preferred format and output file (ideal for power users).
  • ✅ Command-line interface ready: works immediately after pip install.
  • ✅ Lightweight with minimal dependencies; runs on any machine.
  • Proxy support with round-robin rotation
  • Proxy validation to test and filter working proxies before scanning
  • Bulk username scanning from file support for checking multiple usernames at once
  • Bulk email scanning from file support for checking multiple emails at once

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

Flag Description
-u, --username USERNAME Scan a single username across platforms
-e, --email EMAIL Scan a single email across platforms
-uf, --username-file FILE Scan multiple usernames from file (one per line)
-ef, --email-file FILE Scan multiple emails from file (one per line)
-c, --category CATEGORY Scan all platforms in a specific category
-lu, --list-user List all available modules for username scanning
-le, --list-email List all available modules for email scanning
-m, --module MODULE Scan a single specific module
-p, --permute PERMUTE Generate username permutations using a pattern/suffix
-P, --proxy-file FILE Use proxies from file (one per line)
--validate-proxies Validate proxies before scanning (tests against google.com)
-s, --stop STOP Limit the number of permutations generated
-d, --delay DELAY Delay (in seconds) between requests
-f, --format {csv,json} Select output format
-o, --output OUTPUT Save results to a file

Usage

Basic username/email scan

Scan a single username across all available modules/platforms:

user-scanner -e john_doe@gmail.com
user-scanner --email john_doe@gmail.com # long version

user-scanner -u john_doe
user-scanner --username john_doe # long version

Selective scanning

Scan only specific categories or single modules:

user-scanner -u john_doe -c dev # developer platforms only
user-scanner -u john_doe -m github # only GitHub

Bulk username scanning

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

  • Can also be combined with categories or modules using -c and -m flags
user-scanner -uf usernames.txt

Bulk email scanning

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

  • Can also be combined with categories or modules using -c and -m flags
user-scanner -ef emails.txt

Username/Email variations (suffix only)

Generate & check username variations using a permutation from the given suffix:

user-scanner -u john_ -p ab # john_a, ..., john_ab, john_ba

Using Proxies

Route requests through proxy servers:

user-scanner -u john_doe -P proxies.txt

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

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

This will:

  1. Test all proxies from the file
  2. Filter out non-working proxies
  3. Save working proxies to validated_proxies.txt
  4. Use only validated proxies for scanning

Update

Update the tool to the latest PyPI version:

user-scanner -U

Screenshot:

  • Note*: New modules are constantly getting added so this might have only limited, outdated output:
1000146096
user-scanner's main usage screenshot
user-scanner's wildcard username feature

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.)
│   └── donation/     # Donation platforms (BuyMeACoffee, Liberapay)
|...

Module guidelines: This project contains small "validator" modules that check whether a username exists on a given platform. Each validator is a single function that returns a Result object (see core/orchestrator.py).

Result semantics:

  • Result.available() → available
  • Result.taken() → taken
  • Result.error(message: Optional[str]) → error, blocked, unknown, or request failure (include short diagnostic message when helpful)

Follow this document when adding or updating validators.

See CONTRIBUTING.md for examples.


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.

Star History

Star History Chart

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.1.0.4.tar.gz (43.0 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.1.0.4-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for user_scanner-1.1.0.4.tar.gz
Algorithm Hash digest
SHA256 87af9227b9982c1abcdfc4d4262f3efcce8e9f6708522a8a2330b6223566db89
MD5 585deca3c1c0c8215bea386dd256f6f2
BLAKE2b-256 934862f1af9eb8d578ce5fdcd9d77b292324e4f8d5d976f0e4138d03ac723d51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for user_scanner-1.1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9bf006c7c732a432560a647d168b2667e2a1c42b36f86632a3e3e77dbe169002
MD5 fcf2933b8d1eb1c7ba04c5ebbc7a3656
BLAKE2b-256 bafec8efb4f7397181d1667d4f4e8ab5fce87c53c3f07250d60cb72dcb9a1598

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