checking status

WhatsApp API, without the paperwork.

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

No credit card required

Set up wuapi with your agent

Copy the setup prompt for your agent
Works great with any model, any agent, any editor
import { Wuapi } from "@wuapidev/sdk"

const wuapi = new Wuapi({ apiKey: process.env.WUAPI_API_KEY })

const message = await wuapi.messages.send(
  {
    accountId: "k57a8m2x9d3f0q1wjh6ypc4n2d7s0vbr",
    to: "+584241112233",
    text: "Your order has shipped.",
  },
  { idempotencyKey: "order-4417-shipped" },
)

console.log(message.id, message.status) // "queued"

01/Price

Up to 160× cheaper than 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.

26×cheaper than the official API

You save $915 a month ($10,983 a year) on 100,000 messages.

wuapi costs $6 a month per number, less from the second, with 0.5 GB of proxy included. No per-message fee.

Official Cloud API$952/mo
wuapi$36.47/mo

7 numbers · no per-message fee

Brazil: marketing $0.0625 · utility and replies $0.0068 · rates effective Oct 1, 2026 · checked 2026-09-27. Up to 160× 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.

egress: residential or refuse
security layer

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

Wuapi-Signature · project keys · sha256(key)
scale

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

Wuapi-Project · Idempotency-Key

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 your questions. 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.

account.disconnected · account.connected
people who know whatsapp

Email on every plan, and a first answer in as little as 30 minutes on Enterprise.

support@wuapi.dev · P1 30 minutes, 24/7
uptime you can check

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

status.wuapi.dev · api · engine · webhooks

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.

Free · 1 number · no card
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.

POST /v1/accounts → pairingCode → ready
03

Send over REST

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

POST /v1/messages → 202 queued
04

Listen on webhooks

Messages, receipts and calls land on your endpoint, signed and retried.

message.received → your endpoint

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

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+1.9s
  4. ←message.deliveredwebhook+2.4s
  5. ←message.readwebhook+41s

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

    POST /v1/projects
  2. 2

    Send them a link with your name and logo

    POST /v1/invitations → url
  3. 3

    Their number lands in their project

    invitation.status_changed → completed
How invitations work
wuapi.dev/invite/7c1e…
the full api

Everything a linked device can do, over REST

/

messages9 ops
  • Text, image, video, audio, voice notes, documents, stickers
  • Location, contacts, polls, calendar events
  • Replies, mentions, reactions, stars
  • Edit, and delete for everyone
POST /v1/messages · 12 typesDocs
chats, presence18 ops
  • Read receipts, mark read or unread
  • Typing and recording, online presence
  • Archive, pin, mute, delete, labels
  • Disappearing messages timer
chats/{chatId}/read · presenceDocs
groups, communities22 ops
  • Create groups and communities
  • Add, remove, promote and demote
  • Invite links, join by invite
  • Approve or reject join requests
items[].error: privacy_restricted → inviteCodeDocs
channels11 ops
  • Create, follow, mute
  • Post text, images, video and documents
  • Read, react, mark viewed
to: …@newsletterDocs
stories1 op
  • Post a story from any number
  • Queued and paced like a send
  • Read your story privacy settings
POST accounts/{id}/storiesDocs
contacts12 ops
  • Check which numbers are on WhatsApp
  • Look up names, pictures, business profiles
  • Block, unblock, your contact link
POST contacts/checkDocs
profile, privacy6 ops
  • Name, about and picture
  • Every privacy setting, read and write
PATCH accounts/{id}/profileDocs
calls1 op
  • call.received and call.ended on your webhook
  • Reject a call, or every call with a text reply
rejectCalls · rejectCallsMessageDocs
webhooks6 ops
  • 34 event types, per endpoint
  • Signed with HMAC-SHA256
  • Retried 30s · 2m · 10m · 1h · 6h
Wuapi-Signature: t=…,v1=…Docs
history syncopt-in
  • Import recent chats when a number links
  • Off by default, per account
  • One webhook per batch, with counts
historySync: recent → history.syncedDocs
projects, usage18 ops
  • A project per customer, own keys and webhooks
  • Branded invitation links
  • Usage per project, for rebilling
GET /v1/usage/by-projectDocs
sdk, spec, mcptools
  • Typed TypeScript SDK
  • OpenAPI 3.1 spec
  • MCP server for Claude, Cursor and VS Code
  • The docs as one file, for agents
npm i @wuapidev/sdkDocs

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

See all 118 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.
templates · opt-in · business verification

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, 2026How 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 and the Inbox all working. 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.

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.