The WhatsApp API your account survives.
Scan a QR and send in a minute — no Meta verification, no template approvals, no per-message fees. Every message goes out at a human pace over a dedicated mobile route, so your number stays healthy and never gets blocked.
Built by automation veterans. We've spent years building sales & marketing automation platforms — staying a step ahead of automation detection is exactly what we do.
Connect your WhatsApp
3 days free, then $24/mo. No card to start.
Built to keep numbers alive
The hard parts of running WhatsApp at scale — pacing, fingerprints, delivery — handled for you.
Human-paced sending
Fire 100 messages at once; we drip them out with realistic spacing, hourly and daily caps, warm-up ramps, and active-hours — decoupled from your API cadence.
Inbound webhooks
Get every reply pushed to your endpoint, HMAC-signed and retried. Verify authenticity, reject replays — Stripe-style.
Per-number mobile route
Each number gets its own hardened browser fingerprint and a country-matched mobile proxy, with WebRTC pinned to the exit — so nothing leaks and nothing looks automated.
Everything the official API makes you fight for
Meta's WhatsApp Business API means verification, template approvals, and a bill that grows with every message. Skip all of it.
No Business Manager review or 2–7 day waits. Connect a number by scanning a QR.
Send any message you want. No pre-approval queue, no ~1-in-5 rejections, no delays.
Message anyone, anytime. No paid re-engagement templates or 24-hour window traps.
Flat $24 per number. Send unlimited messages — no metering, no BSP markup.
None of Meta's 1K/10K/100K tiers or quality ratings that throttle or suspend you.
Our whole edge: anti-detect fingerprints, per-number mobile proxies, and human pacing.
| Official API (Meta) | Other unofficial APIs | WhatsappHook | |
|---|---|---|---|
| Setup | Days — verification & approvals | Minutes — scan a QR | Minutes — scan a QR |
| Meta verification | Required (2–7 days) | Not needed | Not needed |
| Message templates | Pre-approved by Meta | Send anything | Send anything |
| New conversations | Paid templates only | Unlimited | Unlimited |
| Pricing | Per message + BSP markup | Flat per number | Flat $24/number, unlimited |
| Send volume | Tiered caps, quality-gated | Unlimited (high ban risk) | Unlimited |
| How it connects | Meta's official servers | Emulated protocol — easily flagged | Real browser + human behavior |
| Getting blocked | Number can be suspended | Frequent bans & drop-offs | Anti-detect + mobile proxies + human pacing |
A real browser — not a protocol hack
The reason other unofficial APIs get numbers banned, and we don't.
They emulate the WhatsApp protocol
Libraries like Baileys and whatsapp-web.js reverse-engineer WhatsApp's protocol and connect as a fake client. That traffic looks nothing like a real phone, so WhatsApp spots the pattern and bans the number — often in waves that take out whole batches at once.
We drive a real, hardened browser
We run genuine WhatsApp Web in a real anti-detect browser, humanize every action, and route each number through its own mobile proxy. To WhatsApp it's indistinguishable from a person tapping on their phone — there's no fake protocol to detect.
Real browser, per-number fingerprint
Actual WhatsApp Web in a hardened Firefox, each number with its own device fingerprint. No emulated client for WhatsApp to flag.
Humanized behavior
Human cursor paths, per-keystroke typing jitter, and paced sending. Nothing fires at machine speed or in machine patterns.
Dedicated mobile proxy
Every number egresses through a country-matched mobile IP — the same kind of connection a real user is on, not a datacenter.
Send fast, or play it safe — your call
Connect a number once, then sending is one REST call. It's unlimited with human-like spacing by default — tick a box to add protections and watch the request update.
curl https://www.wahook.app/api/v1/messages \ -H "Authorization: Bearer sk_live_…" \ -H "Content-Type: application/json" \ -d '{ "to": "+34600000000", "text": "hello 👋" }'
Receiving is just a webhook
Register a URL with your API key and we push every inbound reply to it — signed with HMAC and retried on failure. Delivered straight from your number's worker, so replies arrive the moment they land.
# 1. Register your endpoint once, with the number's API key curl -X POST https://www.wahook.app/api/v1/webhooks \ -H "Authorization: Bearer sk_live_…" \ -H "Content-Type: application/json" \ -d '{"url": "https://your-app.com/whatsapp"}' # → { "url": "https://your-app.com/whatsapp", "secret": "whsec_…" } # 2. We POST every inbound message to your URL, signed + retried: # headers X-Whatsapphook-Timestamp: <unix> # X-Whatsapphook-Signature: v1=<hmac> # body { "type": "message", "from": "34600000000", # "body": "hi there 👋", "t": 1699999999 } // 3. Verify it's really us — HMAC-SHA256 over `${timestamp}.${rawBody}`: const mac = crypto.createHmac("sha256", secret) .update(ts + "." + rawBody) .digest("hex"); if (("v1=" + mac) !== signatureHeader) return res.status(400).end();
Simple pricing
Start with a 3-day free trial. Then one flat plan — no per-message surprises.
One number, unlimited human-paced sending, inbound webhooks, and per-number mobile routing.
Start 3 days free