Skip to main content

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

Metadata

Release files for whatschecker 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whatschecker 0.1.0
File Size Uploaded Provenance Actions
whatschecker-0.1.0.tar.gz 12.6 kB Without provenance Details for whatschecker-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for whatschecker 0.1.0
File Interpreter ABI Platform Actions
whatschecker-0.1.0-py3-none-any.whl Python 3 none any Details for whatschecker-0.1.0-py3-none-any.whl

Total release size: 23.7 kB

Release files / whatschecker-0.1.0.tar.gz

Download URL whatschecker-0.1.0.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
12fbe2bce1119e465f55b62ca37dcaf10d18772d0c78c81b77e7132279f0cf6d
BLAKE2b-256 checksum
How to use checksums
5091ab886f950fbb5ddf171b3c6cb00ca6f6eabd97e13606a39d7719f1dd7987
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.6

Release files / whatschecker-0.1.0-py3-none-any.whl

Download URL whatschecker-0.1.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e59305394917fd0957b90eeb2717bf404bf71f0012f4e0a906cdac756336279a
BLAKE2b-256 checksum
How to use checksums
491f76b22609b7d74fec0e724bc409721f7e07951360abc657a59b809c913dab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.6

Security for whatschecker 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page