WhatsApp API, the way it should be.

Link a number by QR or pairing code, send and receive over REST and signed webhooks.

  1. Read https://wuapi.dev/agent-setup.md and follow it to set up wuapi in this project.
  2. Logging in to wuapinpx @wuapidev/cli loginapprove HWDR-7KQP in your browserdone
  3. Installing wuapi skillsnpx skills add wuapidev/wuapi-skillsdone
  4. Installing @wuapidev/sdkdone
  5. Connecting the wuapi MCP servernpx @wuapidev/cli mcp adddone
  6. Linking your number…open the link in your browser: wuapi.dev/invite/…
  7. Number readydone
  8. Sending a test message to +58 424 111 2233
  9. 202 queuedmessage.sentmessage.deliveredmessage.readdone
  10. Done. Your agent can send and receive WhatsApp now.

00/Agent setup

Let your agent set it up

The session in the Agent tab, run in your own project.

Copy the setup prompt for your agent
Works great with any model, any agent, any editor

What the prompt does

01/Price

Save up to 99% vs the official API

The official Cloud API charges every message, replies included. wuapi charges per connected number. Here is 100,000 messages a month, 5% of it marketing and the rest utility and replies, for your recipients.

100,000
1 number

Official Cloud API

$951/mo

charged per message

wuapi

$7/mo

1 number · no per-message fee

You save

99%

$11,328 less a year

Brazil: marketing $0.0625 · utility and replies $0.0068 · rates effective Oct 1, 2026 · checked 2026-09-27. Up to 99% is Germany, the highest at 100,000 messages a month, 5% marketing, before provider fees.

02/Security

Safe for your numbers, and for your customers'

Our team has spent 10+ years with WhatsApp, building agents and building SaaS. We designed wuapi to be easy, to scale with you and to be secure without you redesigning anything: a proxy layer and a security layer protect your accounts and your customers' accounts.

proxy layer

Every number, yours and your customers', connects from its own residential IP in its country, and never falls back to a datacenter.

security layer

Signed webhooks, keys scoped to each customer's project, API keys stored as hashes and sessions stored encrypted.

scale

The same API from one number to hundreds, with a project per customer and queued sends that wait out a dropped connection.

Pacing and first-contact limits are opt-in, per account.

How we protect your numbers

03/Support

People who know WhatsApp answer you

The same team, with 10+ years building on WhatsApp, answers you in chat. The connection itself is watched for you around the clock.

handled for you

Reconnects and proxy drops are handled around the clock. You hear about a number only when it stays down.

uptime you can check

A public status page checked every minute, and an SLA with service credits up to 99.95%.

people who know whatsapp

Chat directly with our engineers on every plan, Free included. Response times follow your support plan: as little as 30 minutes on Enterprise.

Open the chat

100+ organizations on the same build, the same engine and the same status page

04/How it works

Start using the API in a minute

Sign up, link the number you already have, and send. No business verification, no templates to approve.

01

Sign up, no card

The Free plan has one number and 2,000 messages a month, with sending, webhooks and the Inbox working.

02

Link a number

Scan a QR under Linked devices on the phone, or type a pairing code. The number keeps working on the phone.

03

Send over REST

You get a 202 at once, then sent, delivered and read as they happen.

04

Get events two ways

Webhooks POST to your endpoint, signed and retried. Streams reach code with no public URL.

One send, from the outside: the call returns at once, then each step arrives on your webhook or your stream.

events for msg k57a…0vbrtimings are an example
  1. →POST /v1/messages202 queued+0.0s
  2. ·typing…shown to the recipient+0.1s
  3. ←message.sentwebhook · stream+1.9s
  4. ←message.deliveredwebhook · stream+2.4s
  5. ←message.readwebhook · stream+41s

streams

Building a desktop app? Can't receive webhooks? Use Streams.

  • Your events, except presence updates, over one connection your code opens
  • Resume from the last event within 28 minutes
  • A heartbeat every 15 s
  • Included in every plan: 3 stream connections at once on Free; 25, or 5 per connected account, on a paid plan

Both carry your events, except presence updates, which only webhooks get. Pick the one your code can receive.

Streams docs

webhooks

Your server has a public HTTPS endpoint

  • Signed with HMAC-SHA256
  • 6 attempts, retried 30s · 2m · 10m · 1h · 6h
  • Delivery log kept 30 days

Webhooks don't change.

Webhooks docs

Send your customers a link to connect their WhatsApp

Built for SaaS and AI agent builders

They open a page with your name and logo, scan or type a code, and their WhatsApp is in your project. You never see a QR.

  1. 1

    Give each customer a project

  2. 2

    Send them a link with your name and logo

  3. 3

    Their number lands in their project

How invitations work
wuapi.dev/invite/7c1e…
the full api

Everything a linked device can do, over REST

/

12message types on one endpoint

  • Text, image, video, audio, voice notes, documents, stickers
  • Location, contacts, polls, calendar events
  • Replies, mentions, reactions, stars
  • Edit, and delete for everyone
Sending in the docs
  • Create groups and communities
  • Add, remove, promote and demote
  • Invite links, join by invite
  • Approve or reject join requests
  • Read receipts, mark read or unread
  • Typing and recording, online presence
  • Archive, pin, mute, delete, labels
  • Disappearing messages timer
  • Create, follow, mute
  • Post text, images, video and documents
  • Read, react, mark viewed
  • Post a story from any number
  • Queued and paced like a send
  • Read your story privacy settings
  • Check which numbers are on WhatsApp
  • Look up names, pictures, business profiles
  • Block, unblock, your contact link
  • Name, about and picture
  • Every privacy setting, read and write
  • call.received and call.ended on your webhook
  • Reject a call, or every call with a text reply
  • 40 event types, per endpoint
  • Signed with HMAC-SHA256
  • Retried 30s · 2m · 10m · 1h · 6h
  • Import recent chats when a number links
  • Off by default, per account
  • One webhook per batch, with counts
  • A project per customer, own keys and webhooks
  • Branded invitation links
  • Usage per project, for rebilling
  • Typed TypeScript SDK
  • OpenAPI 3.1 spec
  • MCP server for Claude, Cursor and VS Code
  • The docs as one file, for agents

147 operations · OpenAPI 3.1 · REST, TypeScript SDK and MCP

See all 147 operations

05/When not to use wuapi

When the official API is the better tool

wuapi is a number linked as a device, built for conversations. Some jobs belong to WhatsApp's official Cloud API, and we'd rather say so now.

Use the official Cloud API when

  • You start most conversations, and need approved templates at volume.
  • You send marketing broadcasts to people who haven't written to you.
  • You need the green tick next to your business name.
  • You're a large regulated sender that needs a contract with the platform.

Or use both

One number, two sides. Put your WhatsApp Business app number on the official API through coexistence and send templates there. Link wuapi to the same number as a companion, and answer from it: replies sent from the app side carry no per-message fee.

All official
$220
Coexistence + wuapi
$132

Brazil · one number · 2,000 templates + 15,000 replies a month · rates effective October 1, 2026

How to run both, step by step

06/Questions

Before you start

Straight answers. More on billing in the pricing FAQ.

Start free
Do I need business verification or approved templates?

No. You link a number you already have, by QR code or pairing code, and send over REST. Verification, templates and the 24-hour window belong to WhatsApp's official Cloud API. If you start most conversations with templates at volume, that is the better tool, and the two can run side by side.

Run the official API and wuapi together
Is there a free plan?

Yes, and it needs no card: 1 number, 2,000 messages and 0.5 GB of proxy traffic a month, with sending, webhooks, Streams and the Inbox all working. Streams allow 3 stream connections at once per organization on Free; a paid plan allows 25, or 5 per connected account, whichever is greater. Messages count sent and received together. When a limit is reached the number pauses, stays linked and reconnects on its own when the month ends (UTC). Upgrade any time to connect more numbers and lift the limits; your first payment has a 14-day money-back guarantee.

Webhooks or Streams?

Both carry the same events, except presence updates (typing and online status), which only webhooks send. Use Webhooks when your server has a public HTTPS endpoint: each event is signed with HMAC-SHA256 and retried 30s · 2m · 10m · 1h · 6h, with a delivery log kept 30 days. Use Streams when it doesn't, like a desktop app or a script on your laptop: your code opens one connection and, after a drop, resumes from the last event within 28 minutes.

Can my customers connect their own numbers?

Yes. Give each customer a project and send them an invitation link: a page with your name, logo and color where they scan a QR code or type a pairing code. Their number lands in their project, with its own keys and webhooks, and you get invitation.status_changed when it connects. The White label add-on ($100 a month) removes the wuapi mark from the page and the email.

What happens if a phone goes offline?

The number stays linked and wuapi keeps reconnecting it, through the same proxy exit. Messages sent during a short drop wait and go out once it's back. If it stays down, you get account.disconnected on your webhook and account.connected when it returns, plus notifications in the dashboard.

Your first number is one QR scan away.

Sign up and link a number without a card. Free includes 1 number, 2,000 messages and 0.5 GB of proxy traffic a month. When you upgrade, your first payment is covered by a 14-day money-back guarantee.

Start free
npm install @wuapidev/sdk

Talk to sales

Bigger plans? Let's talk.

Tell us what you're building. A person reads every message and writes back by email.

  • Rolling out hundreds of numbers
  • Enterprise support from $4,900/month
  • A platform with a project per customer
  • Security review or custom terms
WhatsApp numbers you plan to connect

We reply by email.