
go-whatsapp-web-multidevice (GOWA) -- a Go service that logs into WhatsApp the way the web client does and exposes it as a REST API, a webhook receiver, and an MCP server.
Alternative to: Meta's own WhatsApp Business Platform priced per message -- in the US, $0.025 for marketing, $0.004 for utility and authentication, with customer-initiated service messages free. Twilio adds $0.005 per message on top. Wati Growth is $59/month billed annually with a 3-user cap; 360dialog Regular is €49 per number per month.
Cost to run: a $5-10/month VPS, a phone number you can receive a pairing code on, and negligible media storage. Realistically $5-20/month. The cost that never appears on an invoice is the ban risk.
Licence: MIT. Free for commercial use.
Runs on: prebuilt binaries for Linux x86_64 and ARM64, macOS Intel and Apple Silicon, Windows x86_64. Docker imagealdinokemal2104/go-whatsapp-web-multidevice.
Requires: a real WhatsApp-capable phone number and a phone to scan the QR or enter the pairing code. FFmpeg and libwebp for media and stickers. Go 1.25.5+ only if you build from source.
Traction: 4,629 stars · ~1,100 forks · 35 contributors · 576 commits on main · 11 open issues.
Liveness: very live -- v9.1.0 shipped 2026-08-15 and the last commit, updating the upstream WhatsApp library, landed 2026-08-16.
Maturity: v9.1.0. The README's own warning, verbatim: "This project is unofficial and not affiliated with WhatsApp. Please use official WhatsApp API to avoid any issues."
Links: repo · Trendshift peak #1 on GitHub Trending, 2025-06-30
Figures as of 2026-08-18.
What it does
GOWA runs on your server, logs into WhatsApp using a real phone number, and then lets your code send and receive messages over plain HTTP.
Start it, open the page, scan a QR code with the phone that owns the number, and the session is linked -- the same mechanism as WhatsApp Web, which is why it works without any Meta account, approval process or business verification.
After that it is an API. POST /send/message sends text. There are endpoints for images, audio, documents, video, stickers with automatic WebP conversion, locations, contacts, polls, link previews and message forwarding. It manages groups, posts to Status, and does mass mentions. Incoming messages fire webhooks at whatever URL you give it.
Since v9.1.0 it also serves an MCP endpoint at `/mcp` with five consolidated tools, so an AI agent can send WhatsApp messages directly. There is a Chatwoot integration for two-way sync with message history import.
The whole thing is one Go binary sitting on top of whatsmeow, the unofficial WhatsApp protocol library.
What it replaces, and what that costs
Meta rebuilt WhatsApp Business pricing around per-message billing, and the rate card in effect from 2026-07-01 is published.
Meta WhatsApp Business Platform (Cloud API), United States: marketing $0.025 per message, utility $0.004, authentication $0.004. Customer-initiated service messages inside the 24-hour window are free and unlimited. There is a 72-hour free window from Click-to-WhatsApp ads. India, for contrast: marketing ₹0.8631, utility and authentication ₹0.115.
Nobody sends those messages directly, though. They go through a provider:
Twilio -- $0.005 per message handling fee on top of Meta's rate, pay-as-you-go, no monthly platform fee.
Wati -- Growth at $59/month billed annually ($69 monthly), one channel, three users, no additional users allowed. Pro at $119/month billed annually ($149 monthly), five users, $39/user/month beyond that. Meta's fees pass through on top.
360dialog -- €49 per number per month on Regular, €99 on Premium, with Meta's fees passed through at no markup.
Worked, for 5,000 utility messages a month in the US:
Meta's fee alone -- 5,000 × $0.004 = $20/month
Through Twilio -- 5,000 × ($0.004 + $0.005) = $45/month
Through 360dialog Regular -- €49 platform + $20 Meta = ~$69/month
Through Wati Growth -- $59 annualised + ~$20 Meta = ~$79/month, capped at 3 users
GOWA against that: a small VPS at $5-10/month, a number you probably already own, and no per-message fee at all, because you are not on Meta's billing rails. At 5,000 messages a month that is roughly $5-20 versus $45-79.
That gap is real and it is also not the whole invoice. What the paid providers sell is not throughput, it is standing: an approved business account, delivery reporting, a support contact, and a number Meta will not switch off for using an API it published. GOWA replaces the fee. It does not replace the standing, and the section below is why that distinction is the entire entry.
Is it still alive?
Very live, on both floors of the building.
Release v9.1.0 shipped 2026-08-15, three days before these figures were taken. The last commit, 2026-08-16, was "chore: update whatsmeow to latest." Issue #799 was opened 2026-08-17. The maintainer answers personally and in detail -- his 2026-07-25 reply on the ban-risk discussion cites his own line numbers.
The dependency matters as much as the repo. GOWA is a wrapper around `tulir/whatsmeow`, maintained by Tulir Asokan, Beeper's bridge architect, which had commits on 16, 13, 10, 6, 5 and 4 August 2026. A Hacker News commenter notes whatsmeow "is used by many Beeper users every day with no issues." This project is only as alive as that library, and that library is alive.
Trendshift records GOWA hitting #1 on GitHub Trending on 2025-06-30 and #1 Go Repository of the Day on 2025-11-17.
What people say
Reddit is blocked from the research sandbox -- a relevant r/selfhosted thread surfaced in search but could not be opened, so no vote count is claimed for it. The most useful voices here are in the projects' own discussion boards, where the vote counts are visible.
A user reporting an instant restriction on a fresh number, 2025-12-07:
"I've already tried changing my WhatsApp account several times, and it's getting worse--I'll just send one test message through the app and immediately get hit with a restriction/limitation."
-- Fandhiprayoga, 1 vote, discussion #489
Another user in the same thread, with the mitigation that actually seems to matter:
"My observations show that if a new number sends messages to contacts who haven't interacted with you before, the account will almost certainly get restricted immediately... I highly recommend using a number that has been registered and active for a significant amount of time."
-- sonarta, 2 votes, discussion #489
And upstream, on whatsmeow's own board:
"When I sent approximately 5 messages to the number, my WhatsApp was banned. I came to the conclusion that this ban rule is not related to whatsmeow, but applies to the 'possibility' of being considered a spammer"
-- hrizal, whatsmeow discussion #567
The maintainer's own answer, from 2026-07-25, is the most honest thing in this entry:
"There is no limit on this side, and I cannot confirm any number as safe. This project is an unofficial client on top of whatsmeow. A send request goes straight to WhatsApp with no queue, no throttle and no delay... the blocking decision is made entirely on WhatsApp's side and nothing in this repo can influence it... If you need guaranteed volume with an SLA, use the official WhatsApp Cloud API."
The catch
It violates WhatsApp's Terms of Service, and the terms say so directly. The Acceptable Use section prohibits users from "directly, indirectly, through automated or other means" accessing or using the services "in impermissible or unauthorized manners," including creating "software or APIs that function substantially the same as our Services and offer them for use by third parties in an unauthorized manner."
Bans are real, documented, and unappealable in practice. WhatsApp publishes a Help Center article on unauthorised automated or bulk messaging, and another on what to do when your number is banned. The maintainer confirms GOWA has no mechanism to reduce this: no queue, no throttle, no delay, and the decision is Meta's alone.
No delivery guarantees and no support. There is no SLA. Meta will not help you with an account you ran through an unofficial client.
Sessions drop. Device unlinking, long inactivity or a protocol change forces a re-pair, which means a human scanning a QR code. That is not a headless operation.
The protocol moves under you. whatsmeow ships near-daily protocol updates precisely because WhatsApp keeps changing, and unofficial clients break without notice when it does.
The practical read, from the reports above: an aged, established number messaging people who already messaged you is a very different risk profile from a fresh number cold-messaging strangers. The second one gets restricted almost immediately. Nothing in the software changes that.
Credits
Aldino Kemal Adi Gumawang (aldinokemal), software engineer in Yogyakarta, Indonesia, who built it and answers his own ban-risk threads with more candour than most vendors manage. No X handle is listed on his profile and none could be verified, so none is cited; he links LinkedIn and Threads. Tulir Asokan and the tulir/whatsmeow project, without which none of this exists. The users Fandhiprayoga, sonarta and hrizal, quoted above, for publishing what happened to their numbers. Pricing verified against Meta's developer pricing page, Twilio, Wati and 360dialog; ToS language from WhatsApp's own terms; peak rank from Trendshift.

