Skip to content
whatsapi.sh
Theme
Docs

Coming from wuzapi

whatsapi runs wuzapi underneath, so nothing you already know is wrong. It is just no longer the surface you touch. Here is the translation table.

Same gateway, different contract

POST /send/text {Phone, Body}POST /v1/messages {to, text}
POST /session/qrPOST /v1/numbers/:id/pair {mode: "qr"}
POST /session/pairphonePOST /v1/numbers/:id/pair {mode: "code", phone}
GET /user/checkGET /v1/numbers/check/:phone
POST /send/image|video|audio|documentPOST /v1/messages/image|video|audio|document
webhooks: 13 raw PascalCase eventsPUT /v1/webhooks: 7 normalized, signed events
token header per instanceAuthorization: Bearer wa_… (one key, all numbers)

What you stop doing

Session ids per phone, token headers and PascalCase payloads all go away. A key owns the account, and single-number accounts leave out from entirely. The already connected 500 that meant three different things on wuzapi is resolved for you: connected is a status, cooldown is a 429 with Retry-After, and anything else is a 502.

before
POST wa.whatsapi.sh:8001/send/text
token: <instance token>
{ "Phone": "5511988887777", "Body": "hi" }
after
POST api.whatsapi.sh/v1/messages
Authorization: Bearer wa_…
{ "to": "+5511988887777", "text": "hi" }