Your own server: breaks with every update
Month one looks like a bargain. Then every WhatsApp update eats more memory until the server crashes at 3 a.m., with corrupted sessions and messages lost without warning.
It keeps working with the phone switched off. If your server goes down, we hold your messages and deliver them when it’s back, for up to 24 hours.
Three steps and your number is live. The connection stays up 24/7 in our cloud, with no server of yours to look after.
One click in the dashboard or one API call. Your number gets its own dedicated, isolated environment.
Just once. The session stays live 24/7 in our cloud, even with the phone switched off.
Send messages from your system and get replies instantly in your backend, n8n or Make.
An OpenAPI 3.1 spec and no heavyweight SDK: if your code speaks HTTP, it already integrates.
Numbers offline, messages lost, customers left waiting: that’s life on a makeshift server or an API shared with hundreds of others.
Month one looks like a bargain. Then every WhatsApp update eats more memory until the server crashes at 3 a.m., with corrupted sessions and messages lost without warning.
Hundreds of customers on one server, no isolation. When someone else hits a traffic spike, your messages lag and notifications vanish with no retry.
Every number runs isolated, with automatic load balancing and queues that hold everything. We own the infrastructure, and no message gets left behind.
When WhatsApp updates, that’s our problem. Your system just sends and receives.
No message goes out twice, every notification arrives in the same format and even your AI editor understands the docs.
Add an Idempotency-Key header and a network blip mid-send never turns into a duplicate message for your customer.
fetch('https://api.restzapi.com/v1/messages', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_TOKEN', 'Content-Type': 'application/json', 'Idempotency-Key': 'req_987654321' // No more duplicate messages }, body: JSON.stringify({ to: "5511999999999", type: "text", content: { text: "Your order is confirmed!" } })});Same call, zero dependencies. If your system can make an HTTP request, it already speaks Restzapi.
Read the docscurl -X POST https://api.restzapi.com/v1/messages \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: req_987654321" \ -d '{ "to": "5511999999999", "type": "text", "content": { "text": "Your order is confirmed!" } }'From read receipts to incoming audio, every event arrives in real time as one consistent JSON payload that’s easy to parse.
Read the docs{ "event": "message.received", "instance_id": "inst_123abc", "data": { "from": "5511999999999", "push_name": "João Silva", "type": "audio", "content": { "url": "https://api.restzapi.com/media/audio_xyz.ogg", "mime_type": "audio/ogg", "duration_seconds": 14 }, "timestamp": 1715094320 }}Paste the prompt into Cursor or Lovable. The AI reads llms.txt and writes the integration with no made-up methods or CORS errors.
Open llms.txtUse the documentation at https://docs.restzapi.com/llms.txt. Build a service in [Your Stack] that:1. connects a number to Restzapi;2. renders the QR code in the UI for the user to scan;3. sets up an endpoint that listens for new-message webhooks.If your server goes down, we resend everything for up to 24 hours. Every number runs isolated and every request is logged in your dashboard.
Server offline or mid-update? Restzapi holds your messages and keeps retrying on its own until your system answers.
Resources isolated per number. Another company’s traffic spike never touches your app’s delivery speed.
Every request is validated with an encrypted key. Rotate tokens from the dashboard and audit every call in the detailed logs.
Voice notes, media, groups, AI agents and automatic reconnection. Plus your customers’ numbers connected under your brand.
Create instances, generate QR codes and connect your customers’ numbers through the API. They never see Restzapi.
Audio lands with a waveform, as if it were recorded on the spot. PDFs, videos and images too.
Create groups, manage participants, export the member list and ping everyone with a hidden mention in one call.
On n8n or OpenAI, the webhook delivers transcription-ready audio and keeps the quoted message ID for context.
If a number’s WhatsApp Web session flickers, we restore it in the background, with no new QR scan.
Coming from another unofficial API? In most cases it takes under 10 minutes: swap the Base URL and the token.
Restzapi, Meta’s Official API, your own server and legacy APIs: what it costs, how long it takes and what stays up.
| Criterion | Restzapi | Official API (Meta) | Self-hosted VPS (Docker) | Legacy APIs |
|---|---|---|---|---|
| Cost per message | R$ 0,00 (unlimited) | Paid (in USD) | R$ 0,00 | R$ 0,00 |
| Setup time | 2 minutes | Days of paperwork | Hours to days | Minutes |
| Maintenance time | Zero | Low | High (outages/updates) | Medium (outages) |
| Traffic isolation | Yes (isolated) | Yes | Depends on your server | No (shared) |
| Simulation (typing/PTT) | Native and automatic | Not available | Needs custom work | Rare / unreliable |
The math is simple: one fixed cost instead of per-message fees in dollars and engineering hours spent restarting servers.
Fewer outages, fewer on-call nights, the same bill every month.
No per-message fees and no surprise on the bill: you pay the same every month, however much you send.
For solo devs, MVP validation, local testing and internal automations.
R$ 89,99 per month, per instance
7-day free trial · no card required
If your system goes offline or returns an error (like a 500 or a timeout), Restzapi doesn't drop the event. Smart Retry stores it safely and keeps retrying delivery at progressive intervals for up to 24 hours. As soon as your system is back up, the webhook is delivered.
The VPS might cost US$5 a month, but the real cost is your team's time. Meta updates WhatsApp Web constantly. When the script breaks, your developer has to drop everything to debug, update libraries and restart instances, not to mention the out-of-memory crashes. With Restzapi, we take on 100% of that maintenance. You pay for stability, not for on-call hours.
Through the API itself. Call the create-instance endpoint and we return the QR code as base64. Render that image in your SaaS frontend so your customer can scan it with their phone. The whole connection happens without your customer ever knowing Restzapi exists.
Our docs are also published as llms.txt, structured to be read by AI. Just ask your agent or editor (Cursor, Windsurf, Lovable) to read the docs on our domain: it picks up the methods, keys and webhook formats and writes working integration code on the first try.
No. Restzapi uses WhatsApp's Multi-Device architecture. Once the QR code is scanned, your phone can go offline or even be switched off. The instance stays active, sending and receiving messages directly through our servers.
In most cases it takes less than 10 minutes. If you already use a popular library or a legacy REST API, just swap the base URL, update the token in the header and make small tweaks to the JSON payload. If your messaging logic is already in place, the switch is painless.
Didn’t find your answer? Read the docs
Try it free for 7 days, no card required. Then R$ 89,99 flat per number, with unlimited messages.