Introduction
The Whaiz API lets you send WhatsApp messages from your linked number, from any programming language. All requests are HTTPS and use JSON.
- Base URL:
https://api.whaiz.info/v1 - The number you send from is determined by your API key (each key is tied to a number) — you don't need to specify it in the URL.
- Response format:
{ "success": true, "data": { … } }
Authentication
Every request needs an API key. Create it in the dashboard under API → Create key (shown only once). You can pass it in two ways:
- • In the JSON body as a
tokenfield (simple style). - • Or in the
Authorization: Bearer <key>header, orx-api-key.
Your first send
Replace token with your API key. The number the message is sent from is the one tied to the key.
curl -X POST "https://api.whaiz.info/v1/messages/text" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","body":"Hello!"}'Send a text
Send a simple text message.
/messages/textParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| body | string | Yes | The message text (max 8000 characters). |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/text" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","body":"Hello from my software 👋"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "text",
"status": "sent"
}
}Send an image
Send an image downloaded from a public URL (max 16 MB).
/messages/imageParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| url | string | Yes | http(s) URL of the image. |
| caption | string | No | Optional caption. |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/image" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","url":"https://yoursite.com/photo.jpg","caption":"Look here!"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "image",
"status": "sent"
}
}Send a document
Send a file (PDF, etc.) downloaded from a public URL (max 16 MB).
/messages/documentParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| url | string | Yes | http(s) URL of the file. |
| filename | string | Yes | File name shown to the recipient. |
| caption | string | No | Optional caption. |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/document" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","url":"https://yoursite.com/document.pdf","filename":"document.pdf","caption":"Here's the file"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "document",
"status": "sent"
}
}Send a location
Send a geographic location pin.
/messages/locationParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| latitude | number | Yes | Latitude (-90…90). |
| longitude | number | Yes | Longitude (-180…180). |
| name | string | No | Place name. |
| address | string | No | Address. |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/location" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","latitude":41.9028,"longitude":12.4964,"name":"Rome","address":"Italy"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "location",
"status": "sent"
}
}Send a contact
Send a contact card (vCard) generated from a name and number.
/messages/contactParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| contactName | string | Yes | Contact name. |
| contactPhone | string | Yes | Contact number (international format). |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/contact" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","contactName":"Mario Rossi","contactPhone":"393331112233"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "contact",
"status": "sent"
}
}Send an audio
Send an audio file downloaded from a public URL (max 16 MB).
/messages/audioParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Your API key (see Authentication). |
| to | string | Yes | Recipient in international format (e.g. 393331234567) or a group …@g.us. |
| url | string | Yes | http(s) URL of the audio file (e.g. mp3). |
Example request
curl -X POST "https://api.whaiz.info/v1/messages/audio" \
-H "Content-Type: application/json" \
-d '{"token":"wha_live_LA_TUA_CHIAVE","to":"393331234567","url":"https://yoursite.com/audio.mp3"}'Response
{
"success": true,
"data": {
"id": "cmq54mvrb001x13oj...",
"to": "393331234567@c.us",
"type": "audio",
"status": "sent"
}
}Number status
Check whether the number is connected to WhatsApp. The token goes in the header.
/statuscurl "https://api.whaiz.info/v1/status" \ -H "x-api-key: wha_live_LA_TUA_CHIAVE"
Response
{
"success": true,
"data": {
"instance": "cmpwquy5c001u...",
"phoneNumber": "39351...",
"status": "CONNECTED",
"connected": true
}
}Error codes
On error the response is { "success": false, "error": "…" } with one of these HTTP codes:
| Code | Meaning |
|---|---|
| 400 | Invalid parameters (number/URL/missing fields). |
| 401 | API token missing or invalid/revoked. |
| 402 | Subscription not active, or number limit reached. |
| 404 | Instance not found (number not linked to this account). |
| 409 | The WhatsApp number is not connected. |
| 413 | File too large (max 16 MB). |
| 429 | Too many requests (rate limit) or send queue full. |
| 502 | Message sending failed. |
Limits & anti-ban
🛡️ Anti-ban delay: sends on the same number are spaced out by a configurable interval (minimum 5 seconds) to protect the WhatsApp account from bans. Set the value on the API page.
⏱️ Rate limit: requests are limited per user; if you exceed it you receive 429.
📦 Media: files (image/document/audio) are downloaded from the provided URL, maximum 16 MB.
💳 Subscription: sending requires an active subscription and respects the number of numbers included in the plan.