Back to Integrations
🔗 Custom / Developers

WhatsApp API + Webhooks: documented REST + bidirectional events

Full REST API to send messages, manage contacts, run bulk sends and invoke AI. Real-time bidirectional webhooks for every event (message received, new lead, tag changed). SDKs in Node and Python. Complete documentation.

REST API documented
Webhooks real time
SDKs Node + Python
★★★★★ 4.9
Why Wazzap

Your app needs WhatsApp but the available options are bad

3 typical problems when building custom WhatsApp integrations — and how Wazzap solves them.

WhatsApp Cloud API: 2-4 week setup + Meta templates

Building on Meta's official API requires a BSP, Business Manager verification, pre-approved templates, the 24h rule, and per-message cost. Complex technical setup + endless restrictions.

Simple REST API, no Meta restrictions

Standard REST API with Bearer token auth. POST /messages and you send. No BSP, no templates, no 24h rule. Technical setup in 30 minutes vs 2-4 weeks.

Unmaintained community libraries

Community JS/Python libraries for WhatsApp break often (WhatsApp Web changes), have poor docs, and frequent abandonment. Your team ends up maintaining more code than they wrote.

Official SDKs maintained in Node and Python

SDKs built and maintained by us. npm install wazzap-sdk or pip install wazzap and you start. Full types, examples, active support.

Polling webhooks vs real-time events

Cheap solutions use polling (check every N minutes). For apps that need to respond instantly to a message, the delay kills UX and conversion.

Real-time push webhooks

Every event (message received, new lead, tag changed, bulk completed) fires a push webhook to your URL in under 1 second. HMAC signing for security. Automatic retries.

Key features

Everything your app needs to talk to WhatsApp

📡

Full documented REST API

Endpoints for everything: /messages, /contacts, /groups, /campaigns, /ai/chat, /templates, /files. Interactive Swagger-style documentation with curl, Node, Python examples.

OpenAPI specTry-it-out liveVersioned

Real-time bidirectional webhooks

Push events to your URL: message.received, contact.created, tag.added, campaign.completed, ai.handoff. HMAC signing to validate origin. Automatic retries with backoff.

15+ eventsHMAC signingAuto retries
📦

Official Node + Python SDKs

SDKs maintained by us with full types (TypeScript), autocomplete, error handling. const msg = await wazzap.messages.send({...}). Start integrating in minutes, not hours.

Node 18+Python 3.10+TypeScript
🔒

Enterprise security

Bearer token authentication with granular scopes (read-only, send-only, admin). Protected rate limiting. HMAC signing on webhooks. Per-request logs for auditing. SOC 2 ready.

Granular scopesRate limitingAudit logs
How it works

From zero to your app connected to WhatsApp in 30 minutes

No BSP, no Meta templates, no fragile community libraries.

1

Generate your API key

In Wazzap, Developers section, you generate an API key with the scopes you need (read, send, admin). You paste it into your app or environment variables. 2 minutes.

2

Install the SDK and implement your first endpoint

npm install wazzap-sdk or pip install wazzap. You follow the documentation for your first use case (send message, receive webhook, manage contacts). 15-30 min to get something into production.

3

Set up webhooks and scale

You point your webhook URL to your app. Every event fires a POST with HMAC signature to validate. Automatic retries. Logs visible in your Wazzap panel.

Real production cases

What developers and technical teams say

★★★★★

"I needed to connect WhatsApp to our custom CRM. I tried 3 community libraries that broke. The Wazzap API was plug-and-play — first endpoint running in 30 minutes."

Marco Salinas · CTO at SaaS B2B

★★★★★

"We built our own notifications platform on top of the Wazzap API. We process 50k events/day with no downtime. The docs + SDK quality saves weeks of development."

Andrea Solano · Lead engineer at fintech

★★★★★

"What I liked most: the API is honest. If you ask for X, it gives you X. No weird abstractions, no hidden coupling. As a developer, it feels well built."

Sergio Linares · Forge Digital Agency

Honest comparison

Wazzap API vs WhatsApp Cloud API vs community libraries

3 ways to integrate WhatsApp into your custom app — compared with data.

Wazzap API + WebhooksWhatsApp Cloud API (Meta)Community libraries (whatsapp-web.js)
Setup time30 minutes2-4 weeks (Meta + BSP)1-3 days
Cost$19/mo platform$0 + $0.005-0.15 per message$0 + your hosting
Per-message cost$0 — unlimited$0.005-$0.15$0
Meta templates requiredNoYesNo
Maintained official SDKs✓ Node + Python✓ Multiple languagesVariable
Real-time webhooks✓ <1s + HMAC✓ <1sVariable
Stability / uptime99.9% (8+ months)99.9% (official)Variable (community)
Built-in anti-ban✓ Spintax + proxiesN/A (official)✗ You build it
SupportWazzap teamBSP intermediaryGitHub issues

When to use WhatsApp Cloud API directly? If your product needs Meta's verified badge for regulatory compliance. For everything else (custom apps, internal integrations, SaaS tools), Wazzap API wins on cost, speed and freedom.

Combine with

Most used alongside API + Webhooks

All these integrations are included in the same plan.

API + SDKs included on any plan

From $19/mo with the full technical stack

REST API + webhooks + Node and Python SDKs + documentation + granular scopes — no add-ons, no per-message fees.

See plans and pricing

Frequently asked questions about API + Webhooks

What authentication does the API use?+

Standard Bearer token (Authorization header). API keys have granular scopes: read-only (query data), send-only (send messages), admin (everything). You can generate multiple keys with different scopes for different use cases.

Are there rate limits?+

Yes, generous ones. Standard plan: 60 requests/minute, 5,000/hour, 50,000/day. For larger volumes we have enterprise plans. Rate limits apply per API key, response headers show remaining quota.

Are webhooks signed?+

Yes. Every webhook includes a X-Wazzap-Signature header with HMAC-SHA256 of the body signed with your secret. You validate with your SDK (included) or manually — this prevents anyone from spoofing webhooks to your URL.

What if my webhook URL fails?+

Automatic retries: 5 attempts with exponential backoff (1s, 5s, 30s, 5min, 1h). After the last failure, the event stays in Wazzap's log for 7 days so you can reprocess it manually.

Do you have SDKs for other languages (PHP, Ruby, Go)?+

Official SDKs: Node and Python. For other languages (PHP, Ruby, Go, Java, .NET), the REST API is standard — you can consume it directly with any HTTP client. We have guides for the most common languages.

Is there a sandbox / test environment?+

Yes. Every account can create "sandbox" sub-accounts with your own test numbers. Messages work for real but stay flagged — useful for testing without contaminating production.

Do you have webhooks for all events?+

Yes, 15+ events: message.received, message.sent, message.delivered, message.read, contact.created, contact.updated, tag.added, tag.removed, campaign.started, campaign.completed, ai.handoff, group.joined, conversation.assigned, etc. Full documentation in developer docs.

Connect your app to WhatsApp in 30 minutes

7 days free, API + SDKs included, complete documentation.

Start free trial