Whapi.Cloud is a hosted WhatsApp API that links your number as a device, the same model wuapi uses. So this comparison is about the details: what a number costs, what comes with it, how your server knows a webhook is real, and what the free tier lets you try. Both are reasonable choices, and the differences below are the ones that tend to decide it.
- Advantage: $6 a month for the first number, against $35, or $29 on annual billing.
- Advantage: A residential exit in the number's own country, included.
- Advantage: HMAC-SHA256 signatures over the timestamp and the raw body.
- Advantage: Idempotent sends and a hosted MCP server.
- Disadvantage: No warm-up module or risk score: the tools are pacing controls.
- Disadvantage: No partner program with daily billing.
- Disadvantage: Proxy traffic past 0.5 GB a month per number costs $0.99 per GB.
- Advantage: A broad API: groups, channels, communities and statuses.
- Advantage: An automatic warm-up module and an activity risk score.
- Advantage: A partner program billed in channel-days.
- Advantage: A published OpenAPI file and a pairing code option.
- Disadvantage: $35 a month per channel, or $29 on annual billing.
- Disadvantage: The free Sandbox allows 150 messages a day.
- Disadvantage: No signature scheme is published; the check is a custom header.
- Disadvantage: A residential exit means your own SOCKS5 proxy; it no longer sells proxies.
#What Whapi.Cloud is
Whapi.Cloud sells access per channel. Its pricing page defines a channel as one WhatsApp account connected through a linked-device session, one number at a time, and you can relink a different number to the same channel later. Its terms are governed by Romanian law.
The API lives at gate.whapi.cloud, authenticates with a bearer token per channel, and sends a text with POST /messages/text and a body of to and body. It covers a wide surface: groups, channels, communities, statuses, number checks, and a pairing code as an alternative to the QR code. There is a published OpenAPI file, a Postman collection, a PHP SDK, and an MCP server you run locally with npx.
Whapi.Cloud also ships tools aimed at keeping numbers healthy: an automatic warm-up module that pairs your numbers to message each other, and on paid plans an activity score that estimates the risk of a block.
#What it costs
These prices are from the Whapi.Cloud pricing page and the price file it loads, in US dollars, per channel.
- Developer Premium is $35 a month billed monthly, or $29 a month billed annually.
- From six channels the price drops to $30 a month, or $24 annually. Past twenty they ask you to write for a personal discount.
- Sandbox is free, with limits: 5 active conversations a month, 150 messages a day, 30 number checks a day and 1,000 API requests a month, and it needs periodic activity.
- A trial of the paid plan runs for five days.
The page also shows regional prices in other currencies, and a partner program that bills in channel-days from a prepaid balance.
#What wuapi costs
wuapi charges per linked number with no plans to pick: $6 for the first number, $4.50 for each from the second to the fiftieth, and $3.50 from the fifty-first. Four numbers cost $19.50. Every paid number includes 0.5 GB a month of residential proxy traffic, pooled across the organization, and traffic past that is $0.99 per GB.
The Free plan has no card and no end date: 1 number, 2,000 messages a month counting sent and received together, and 0.5 GB of proxy traffic. When either limit is reached the number pauses until the month ends or you upgrade.
On the published prices wuapi costs less per number at every size, and the gap is widest for a single number. Price is rarely the whole decision, though, so the rest of this page is about what each one includes.
#The differences that matter
#The proxy
On Whapi.Cloud, the help center explains that channels come with a default IP that support can change, and that you can set your own SOCKS5 proxy per channel through the settings API. It also says Whapi.Cloud no longer sells proxies and suggests two providers. So if you want a residential exit in your number's own country, you buy and manage it.
On wuapi the residential proxy is part of the account. You choose a country and city from 134 countries when you create it, the number keeps a sticky exit there, and if the proxy is down the account waits offline instead of connecting from a datacenter address.
#Webhook signatures
Whapi.Cloud does not publish a signature scheme for webhooks. Its docs suggest adding a custom header, such as a secret token, which your server compares. That tells you the request knows the token. It does not prove the body was not changed, and it does not stop an old request being replayed.
wuapi signs every delivery with Wuapi-Signature: t=<unix>,v1=<hex>, an HMAC-SHA256 of the timestamp and the raw body, so you can check both the content and the age. Signed webhooks walks through the check in a few lines.
#Retries and idempotency
Both retry webhooks. Whapi.Cloud documents a backoff that starts at 3 seconds and grows, and an option to persist undelivered webhooks. wuapi retries at 30s, 2m, 10m, 1h and 6h, six attempts, and keeps each delivery in the dashboard for 30 days with a resend button.
On the sending side, wuapi takes an Idempotency-Key on any POST and remembers it for 24 hours, so a retry from your queue returns the first response instead of sending again. We did not find an equivalent in the Whapi.Cloud docs.
#Pacing
Whapi.Cloud leans on warm-up and a risk score. wuapi paces each number instead: a per-minute cap, a lower cap for people who never wrote to it, and a typing indicator before each message. They are off by default so a reply is not delayed, and the guide says when to turn them on. Neither approach makes a number safe from WhatsApp's own decisions.
#When a number drops
Linked sessions lose their connection and recover it by themselves many times a day, usually in seconds. On wuapi a send made during one of those drops waits for the number and goes out when it is back, retried with the same WhatsApp message id so it cannot be delivered twice. account.disconnected fires only if the number is still down after a 20 second grace, so your alerts are not woken by every blip. When a drop is final, because the phone removed the device or WhatsApp restricted the number, the engine stops reconnecting and reports it at once. The dashboard can email you, and post to Slack, when a number stays offline longer than a threshold you choose, 10 minutes by default.
#When each one fits
Pick Whapi.Cloud if you want the warm-up tooling and the risk score built into the panel, if you already have a SOCKS5 proxy provider you like and want to point each channel at it, or if the partner program's daily billing matches how you resell. Its API surface is broad, and teams that have built on it for a while have little reason to move for features alone.
Pick wuapi if you want the residential exit handled for you in each number's own country, if your webhook consumer should be able to prove a request came from us and was not replayed, or if you want a retried send to be safe by design. It also fits a team that wants to try a real number without a card and without a daily message cap, since the Free plan counts by the month.
Either way, the number is yours. Moving between the two is a relink, and nothing about your phone number changes.
#Side by side
| Whapi.Cloud | wuapi | |
|---|---|---|
| model | linked device, hosted | linked device, hosted |
| price for one number | $35 a month, $29 on annual billing | $6 a month |
| volume price | $30 a month from six, $24 annual | $4.50 from the second, $3.50 from 51 |
| free tier | Sandbox: 150 messages a day, 5 conversations a month | 1 number, 2,000 messages a month |
| residential proxy | default IP; your own SOCKS5 per channel | included, sticky, in the number's country |
| proxy traffic | no separate charge published | 0.5 GB a month per number, then $0.99 per GB |
| pacing | warm-up module, risk score | per-minute and first-contact caps, typing, opt-in |
| signed webhooks | custom header you set | HMAC-SHA256 over timestamp and raw body |
| webhook retries | growing backoff from 3 seconds | 30s, 2m, 10m, 1h, 6h |
| idempotent sends | not documented | Idempotency-Key, 24 hours |
| SDK and OpenAPI | OpenAPI file, PHP SDK | OpenAPI 3.1, TypeScript SDK |
| MCP server | local only | local and hosted |
| multi-tenant | partner API, per-channel tokens | projects with their own keys and usage |
#Moving from Whapi.Cloud
The resources map almost one to one.
| Whapi.Cloud | wuapi |
|---|---|
| channel | account |
| channel token | one API key per organization or project |
POST /messages/text with to, body | POST /v1/messages with accountId, to, text |
to: "61371989950" | to: "+61371989950" |
| group and channel ids | the same @g.us and @newsletter ids |
PATCH /settings webhooks | POST /v1/webhook-endpoints |
| custom header check | Wuapi-Signature check |
// Whapi.Cloud
await fetch("https://gate.whapi.cloud/messages/text", {
method: "POST",
headers: { Authorization: `Bearer ${CHANNEL_TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({ to: "61371989950", body: "Your table is ready." }),
})
// wuapi
await wuapi.messages.send({ accountId, to: "+61371989950", text: "Your table is ready." })The practical steps:
- Link each number again. A session cannot be moved between providers, so each number scans a new QR code or enters a pairing code.
- Replace the header check with the signature check from the docs, and handle events idempotently by
id. - Collapse your tokens. A channel token per number becomes one key that can reach every account, or one per project if you keep customers apart.
#Questions people ask
How much does Whapi.Cloud cost?
On the day we checked, Developer Premium was $35 a month per channel billed monthly, or $29 a month billed annually, dropping to $30 and $24 from six channels. A free Sandbox allows 150 messages a day and 5 active conversations a month.
Does Whapi.Cloud sign webhooks?
It does not publish a signature scheme. Its docs suggest adding a custom header with a secret your server compares. wuapi signs every delivery with an HMAC-SHA256 over the timestamp and the raw body.
Does Whapi.Cloud include a residential proxy?
Its help center says channels have a default IP and that you can set your own SOCKS5 proxy per channel, and that it no longer sells proxies. wuapi includes a residential proxy with a sticky exit in the country you choose for every number.
Is wuapi cheaper than Whapi.Cloud?
On the published prices, yes: one number is $6 a month against $35, or $29 on annual billing, and the volume prices keep the same order. Proxy traffic past 0.5 GB a month per number is extra on wuapi, at $0.99 per GB.
Can I keep my number when I move?
Yes. The number stays yours and on the phone. You unlink it from Whapi.Cloud and link it to wuapi with a QR code or a pairing code, which takes a minute per number with the phone at hand.