whatsapp-web.js
A Node.js library for building WhatsApp messaging tools through WhatsApp Web, with media, groups and reply support.
- Stars
- 23k
- Forks
- 5.2k
- Last update
- 1 Nov 2026
Overview
whatsapp-web.js lets developers control WhatsApp Web from Node.js using a browser managed by Puppeteer. It supports messaging, media, groups and other WhatsApp features for user or business accounts. It is unofficial, and the project warns that accounts may be blocked.
Who it's for
Tech stack
Features and benefits
Key features
- Send, receive and reply to messages.
- Send images, audio, documents and stickers; sending video requires Google Chrome.
- Receive images, audio, video and documents.
- Send contact cards and send or receive locations.
- Manage group invites, information, settings and participants.
- Mention users and groups, and react to messages.
- Create polls and vote in polls.
- Work with channels and multi-device accounts.
- Mute chats, block contacts and retrieve contact information.
Why it helps in Pakistan
- Build custom message-response workflows in JavaScript.
- Share documents and product images within WhatsApp conversations.
- Handle group administration through code.
- Use one library for text, media, locations and polls.
- Access source code under the Apache-2.0 licence.
Pakistan use cases
- 01
A Karachi retailer could build a tool to send product images and reply to customer enquiries.
- 02
A Lahore tuition centre could share lesson documents and create polls in class groups.
- 03
An Islamabad repair business could receive customer photos and exchange service locations.
- 04
A Pakistani developer agency could prototype WhatsApp support workflows, while accounting for the risk of account blocking.
Requirements
- Hardware
- Check the official docs for CPU, RAM and storage requirements.
- Operating system
- Check the official docs for supported operating systems.
- Skills
- JavaScript and Node.js developmentWorking with package managers and event handlers
- Accounts needed
- A WhatsApp user or business account; unofficial clients carry an account-blocking risk.
Setup guide
Commands are copied from the project's README and official docs.
- 1
Prepare Node.js
Node.js v18.0.0 or higher is required. Check the official docs for operating-system-specific installation instructions.Not fully covered in the README. Check the official docs before running this step.
- 2
Install the library
Choose one package manager:npm install whatsapp-web.jsoryarn add whatsapp-web.jsorpnpm add whatsapp-web.js. - 3
Use the README example
The example creates a Client, handles QR and ready events, replies with pong to !ping, and initializes the client. It also imports qrcode-terminal, but its installation command is not provided. Check the official docs.Not fully covered in the README. Check the official docs before running this step.
- 4
Run and authenticate
Check the official docs for the launch command and complete authentication steps; these are not included in the supplied installation instructions.Not fully covered in the README. Check the official docs before running this step.
- 5
Review session persistence
Follow the linked Authentication Strategies guide for saving and restoring sessions.
Works with
Connects through a managed browser to access WhatsApp Web's internal functions. This is not an official WhatsApp API integration.
Manages the browser instance used to interact with WhatsApp Web.
qrcode-terminal
The README example uses it to display QR codes in the terminal.
Required for sending video media.
What it costs
| Software | Free to self-host under the Apache-2.0 licence. |
|---|---|
| Hosting | Hosting costs depend on the managed browser's resource needs. The supplied sources give no hardware sizing, so check the official docs and current hosting prices before budgeting. |
FAQ
Is this an official WhatsApp API?
No. The project is not affiliated with or endorsed by WhatsApp. It connects through WhatsApp Web rather than an official business API.
Can my WhatsApp account be blocked?
Yes. The README says WhatsApp does not allow bots or unofficial clients, and there is no guarantee that your account will not be blocked.
Is this a ready-made support dashboard?
It is a Node.js developer library. You need to write application code to create your own messaging workflows.
Does it work with business accounts?
The official homepage says it can programmatically control both user and business accounts.
Are buttons, lists and communities supported?
Sending buttons and lists is marked deprecated and unsupported. Communities are marked as coming later, not currently supported.
Troubleshooting
Package installation fails.
Check that Node.js is v18.0.0 or higher, review the installation error, and see the official docs for detailed installation guidance.
Sending video does not work.
The feature requires Google Chrome. See the official docs' linked attachment caveat for browser requirements.
Sessions are not being saved or restored.
Review the Authentication Strategies guide linked in the README; see the official docs for the appropriate session configuration.
Buttons or lists do not send.
These features are marked deprecated and unsupported. Use supported text replies or media instead; see the official docs for current feature status.
Official links
Get it set up for you
Don't want to install it yourself? A Jugaad maker can set up whatsapp-web.js for your business. Payment is held in Safe Deal until it works.
No maker offers a setup gig for this yet. Post a request and makers will quote.
Related tools
Built by wwebjs and contributors on GitHub. All credit goes to the authors. GitHub stats refresh daily. Jugaad does not host, copy or sell this code.
Is this your project?
