Send WhatsApp messages from your own number with simple HTTP requests. No SDK required — works from browser, cURL, PHP, Python, Node.js, Google Sheets, and more.
Successful response:
Every API request requires your API key. Pass it in one of two ways:
| Method | Example |
|---|---|
| Query parameter | ?apikey=msg_your_key_here |
| HTTP header | X-API-Key: msg_your_key_here |
The simplest way — a GET request in your browser or any HTTP client.
| Parameter | Required | Description |
|---|---|---|
recipient | Yes | Phone number with country code, no + (e.g. 598XXXXXX) |
apikey | Yes | Your API key |
text | Yes | Message body |
Send an image from a public URL. Optional caption via the text parameter.
| Parameter | Required | Description |
|---|---|---|
recipient | Yes | Phone number with country code |
apikey | Yes | Your API key |
file | Yes | Direct public URL to the image (.jpg, .png, etc.) |
text | No | Caption text |
& or ?, encode it with
encodeURIComponent() before adding it to the request.
Use direct image links — stock photo sites often block downloads.
| Parameter | Required | Description |
|---|---|---|
recipient | Yes | Phone number with country code |
apikey | Yes | Your API key |
document | Yes | Direct public URL to a PDF file |
filename | No | Display name (default: document.pdf) |
For integrations that prefer POST requests with JSON bodies and header authentication.
Verify that your WhatsApp is connected before sending messages.
Response example:
| HTTP code | Meaning |
|---|---|
400 | Bad request — missing params, WhatsApp not connected, invalid URL |
401 | Invalid or missing API key |
403 | Subscription inactive or expired |
429 | Daily message limit reached |