cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chatId": "[email protected]",
"text": "Hi there!",
"reply_to": "string",
"link_preview": false,
"link_preview_high_quality": false
}
'import requests
url = "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text"
payload = {
"chatId": "[email protected]",
"text": "Hi there!",
"reply_to": "string",
"link_preview": False,
"link_preview_high_quality": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chatId: '[email protected]',
text: 'Hi there!',
reply_to: 'string',
link_preview: false,
link_preview_high_quality: false
})
};
fetch('https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chatId' => '[email protected]',
'text' => 'Hi there!',
'reply_to' => 'string',
'link_preview' => false,
'link_preview_high_quality' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text"
payload := strings.NewReader("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}"
response = http.request(request)
puts response.read_body{
"key": {
"remoteJid": "[email protected]",
"fromMe": true,
"id": "3EB0CD3810439716606547"
},
"message": {
"extendedTextMessage": {
"text": "Hi there!"
}
},
"messageTimestamp": 1741359489,
"status": "PENDING"
}Send Text
Send plain text messages with link preview (optional) to WhatsApp users for basic communication, notifications, and automated messaging.
POST
/
{instance}
/
send-text
cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chatId": "[email protected]",
"text": "Hi there!",
"reply_to": "string",
"link_preview": false,
"link_preview_high_quality": false
}
'import requests
url = "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text"
payload = {
"chatId": "[email protected]",
"text": "Hi there!",
"reply_to": "string",
"link_preview": False,
"link_preview_high_quality": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chatId: '[email protected]',
text: 'Hi there!',
reply_to: 'string',
link_preview: false,
link_preview_high_quality: false
})
};
fetch('https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chatId' => '[email protected]',
'text' => 'Hi there!',
'reply_to' => 'string',
'link_preview' => false,
'link_preview_high_quality' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text"
payload := strings.NewReader("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chatId\": \"[email protected]\",\n \"text\": \"Hi there!\",\n \"reply_to\": \"string\",\n \"link_preview\": false,\n \"link_preview_high_quality\": false\n}"
response = http.request(request)
puts response.read_body{
"key": {
"remoteJid": "[email protected]",
"fromMe": true,
"id": "3EB0CD3810439716606547"
},
"message": {
"extendedTextMessage": {
"text": "Hi there!"
}
},
"messageTimestamp": 1741359489,
"status": "PENDING"
}V2 Queued Response: All API requests in V2 are queued for improved reliability. You’ll receive an immediate response with a
queued_request_uuid that you can use to check the actual message status.Response Format
All requests return a queued response:{
"queued": true,
"message": "Processing your request...",
"queued_request_uuid": "a0816120-7e37-4e8b-8cf3-92deb2cdc133",
"queued_request_link": "https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/a0816120-7e37-4e8b-8cf3-92deb2cdc133"
}
queued_request_link or the Get Queued Request endpoint to check the actual message response once it’s processed.
More details on queued requests can be found in the Queued Requests Documentation.
Send links and simple texts to a WhatsApp
- Chat
- Group
- Recipient
We highly recommend using the
send-text-safe endpoint for regular messaging operations to maintain a more natural communication pattern, and keep your whatsapp number safe from being blocked.Sending link preview
If the text has a link - it generates a preview for that link. You can adjust the behaviour by settinglink_preview: true- to enable link previewlink_preview_high_quality: true- to enable high-quality link preview

Quick Demo
Learn how to use Hypersender whatsapp API to send a message using Postman: Demo Link
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
application/json
Example:
"application/json"
application/json
Example:
"application/json"
Path Parameters
Instance UUID copied from hypersender dashboard
Example:
"{{ instance_id }}"
Body
application/json