Skip to main content

Concurrent WhatsApp number checker via WhatsApp Web

Project description

WhatsChecker Logo

WhatsChecker

🕵️‍♂️ A powerful multi-threaded CLI tool to check WhatsApp number validity via WhatsApp Web.

Version Badge License Badge Python Badge Status Badge


🌟 Features

  • Detect Active/Inactive WhatsApp Numbers
  • 🧠 Intelligent Login Handling (QR scan and session reuse)
  • 🔀 Concurrent Multi-Account Checking
  • 🛡️ Proxy Support (optional, per account)
  • 🗃️ Persistent Profiles – saves WhatsApp login sessions
  • 🕶️ Headless Mode – optional
  • 🕓 Customizable Delays – mimic human-like behavior
  • 📂 Custom Config Support (whatschecker.config.json)
  • 📈 Built with Selenium + Undetected ChromeDriver
  • 💥 Auto dependency installs on first run
  • 📇 Extracts valid WhatsApp numbers from saved contacts on the device

🚀 Usage

1. 📦 Installation

git clone https://github.com/bitbytelab/WhatsChecker.git
cd WhatsChecker
chmod +x whatschecker.py

2. 🧪 First-time Setup (Scan QR)

./whatschecker.py --add-account

Scan the QR code to save your WhatsApp session. You can add multiple accounts this way.


3. 📤 Checking Numbers

Prepare an input file (e.g., numbers.txt) with one number per line:

+12025550123
+447911123456
+8801711123456

Run the checker:

./whatschecker.py --input numbers.txt --valid active.txt --invalid inactive.txt

You can also run in headless mode:

./whatschecker.py --input numbers.txt --valid active.txt --invalid inactive.txt --headless

4. 📇 Contacts Extraction

To extract valid WhatsApp numbers from your saved contacts:

python -m whatschecker --input contacts

This will:

  1. Launch WhatsApp Web and log you in.
  2. Open the "New Chat" sidebar to access all device contacts.
  3. Incrementally scroll through the list and extract each visible contact.
  4. Save valid WhatsApp numbers along with name, about, and avatar info to a CSV.

The generated CSV will be saved as:

valid_whatsapp_contacts_YYYY_mm_dd_HH_MM.csv

📁 Example output preview:

name about user_avatar
019xxxxxxxxx Always learning https://media.whatsapp.net/...
018xxxxxxxxx Big brother watching you 😊 default

📝 Note: Contact names must be saved as numbers (i.e., "017xxxxxxx") to work properly with this feature.

5. 🧩 Optional Arguments

Flag Description
--input Input file with numbers
--valid Output file for active numbers
--invalid Output file for inactive numbers
--delay Base delay in seconds between number checks
--proxies List of proxies (e.g., http://ip:port)
--headless Run Chrome in headless mode
--add-account Launch new profile and scan QR to add account

6. ⚙️ Config File Support

You can also define your settings in a whatschecker.config.json file:

{
  "input": "numbers.txt",
  "valid": "active.txt",
  "invalid": "inactive.txt",
  "delay": 8,
  "proxies": ["http://127.0.0.1:8000", null]
}

Then just run:

./whatschecker.py

🔐 Session Management

Saved WhatsApp sessions are stored in:

./Profiles/account1
./Profiles/account2
...

Remove a folder to reset that session.


🧰 Dependencies

📦 Auto-installs on first run if not found!


❓ FAQ

Q: Will my WhatsApp account get banned?
A: This script mimics human behavior using real browser sessions and delays. Use proxies and multiple accounts to reduce risk. No API violations.

Q: Is this open source?
A: Yes! MIT licensed. Use it responsibly and contribute back.


👨‍💻 Author

Made with ❤️ by BitByteLab
📧 Contact: bbytelab@gmail.com


📄 License

MIT License – see LICENSE file for details.


⭐️ Star this project

If you find this useful, please consider starring the repo!
👉 github.com/bitbytelab/WhatsChecker

Project details


Download files

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

Source Distribution

whatschecker-0.0.7.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

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

whatschecker-0.0.7-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file whatschecker-0.0.7.tar.gz.

File metadata

  • Download URL: whatschecker-0.0.7.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for whatschecker-0.0.7.tar.gz
Algorithm Hash digest
SHA256 779928306a9765b82c8e7c54aeeb896a900335e8bded3f2459367f777083b4e5
MD5 b498a756e80a5d3a391dbc2e53b14a4d
BLAKE2b-256 107c3aec99e9c50c3565af04ff7a388a87d87710fcb08bbc1965517d1792ca59

See more details on using hashes here.

File details

Details for the file whatschecker-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: whatschecker-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for whatschecker-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3582a8cd45d5c7fd52ced4f138c8d60b30c3b4a6d53a4ff8ef2b28dfe1461f25
MD5 35f440b2a6beac168f77c8731329bcb4
BLAKE2b-256 5dec4de274a2f9cf1d77e02e774c895e8b2bdec5aacb7c084540063d779698aa

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