Polymorfa vs whatsapp-web.js
We maintain whatsapp-web.js. Polymorfa runs no browser at all.
Polymorfa connects numbers with a protocol client on its own servers and gives you an HTTP API, signed webhooks and calls from code. There is no Chrome to host, patch or scale per number.1,2,3
- whatsapp-web.js
- A Chromium or Chrome browser
- Polymorfa
- Nothing on your servers
From the maintainer of whatsapp-web.js.
Polymorfa's co-founder, Rajeh Taher, maintains whatsapp-web.js, so we know what a browser per number costs to run: memory, a separate Chrome install for video, session files and breakage after WhatsApp Web updates. Polymorfa removes that whole layer. Your numbers pair through QuickLink and your code sends over HTTP.4,1
- Linked devices and the official Cloud API, behind one API.5
- 2 routes
- Per message. A number costs credits only for the days it is online.6
- $0
- To place and answer calls: in the browser, in server code with the raw audio, and on your PBX over SIP.3,7
- 3 ways
- In the hosted MCP server, for agents that run WhatsApp.8
- 195 tools
Three reasons teams move from whatsapp-web.js
- 01
No browser to run for each number
Polymorfa runs the sessions and stores their keys. Your code sends over HTTP.1
whatsapp-web.js: whatsapp-web.js runs WhatsApp Web in a Puppeteer-controlled browser, and sending video requires Google Chrome.9 You run that browser, keep it patched and store the session with an authentication strategy.10
wwebjs.js const { Client, LocalAuth } = require('whatsapp-web.js') const client = new Client({ authStrategy: new LocalAuth() }) client.on('ready', async () => { await client.sendMessage('15550001111@c.us', 'Your order shipped.') }) client.initialize()polymorfa.sh curl -X POST https://api.polymorfa.com/messaging/support/messages/send \ -H "Authorization: Bearer $POLYMORFA_API_KEY" \ -H "Idempotency-Key: order-1042-shipped" \ -H "Content-Type: application/json" \ -d '{"conversation":{"phoneNumber":"+15550001111"},"content":{"text":"Your order shipped."}}' - 02
Webhooks and retries built in
Polymorfa signs every delivery with HMAC-SHA256 and makes up to eight delivery attempts over 24 hours, set per webhook.2 A send with an Idempotency-Key that repeats within 24 hours returns 409 and does not send again.11
whatsapp-web.js: whatsapp-web.js delivers events inside your process. Forwarding them to other services, signing them and retrying failures is yours to build.9
- 03
Calls from code and over SIP
One credit pool. Only the days a number is online.
One credit balance pays for every number your team runs, and a number costs credits only for the UTC days it is online.6 The monthly bonus is part of the price: buy 100,000 credits in a month and you get 250,000.13
Bonus credits on the whole month's purchase, every month
- +10%
- from 10,000 credits
- +25%
- from 20,000 credits
- +75%
- from 50,000 credits
- +150%
- from 100,000 credits
What Polymorfa gives you that whatsapp-web.js does not
| Feature | Polymorfa | whatsapp-web.js |
|---|---|---|
| Hosted onboarding link for your customers | QuickLink4 | You build it9 |
| Idempotent sends | 24-hour keys11 | You build it9 |
| Place and answer calls from code | Browser, server, SIP3 | Not supported12 |
| SIP trunk to your PBX | Both directions7 | You build it9 |
| REST API with OpenAPI spec | OpenAPI 3.114 | In-process library |
| Signed webhooks with retries | HMAC-SHA2562 | You build it9 |
| Customer accounts for SaaS builders | Customers API15 | You build it9 |
| Number health estimate | 0–100, rules-based16 | You build it9 |
Move from whatsapp-web.js in an afternoon
- 01
Create a project and an API key
Sign up, create a project and generate an API key in the Console.17
- 02
Pair each number again
Send a QuickLink to pair by QR or pairing code.4 Log out the whatsapp-web.js client first, so two linked devices do not compete.
- 03
Replace client calls
Move each sendMessage call to the Polymorfa send endpoint and add an Idempotency-Key.1
Leave the WhatsApp infrastructure to us.
Start freeDisclosure: Polymorfa's co-founder, Rajeh Taher, maintains whatsapp-web.js.
Updated . Other companies' pages checked on 24 September 2026.
- Polymorfa, Send a message
- Polymorfa, Webhooks
- Polymorfa, Calls
- Polymorfa, QuickLink
- Polymorfa, Graph API
- Polymorfa, Usage and credits
- Polymorfa, SIP trunks
- Polymorfa, MCP server
- whatsapp-web.js, Repository
- whatsapp-web.js, Authentication guide
- Polymorfa, Messaging overview
- whatsapp-web.js, Call class reference
- Polymorfa, Billing
- Polymorfa, API overview
- Polymorfa, Customers
- Polymorfa, BanSafe Health
- Polymorfa, API keys
- Polymorfa, Numbers and session import