cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text-safe \
--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-safe"
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-safe', 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-safe",
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-safe"
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-safe")
.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-safe")
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 Safe
Safely send a WhatsApp text message with human-like pacing, typing simulation, and optional rich link previews to reduce block risk.
POST
/
{instance}
/
send-text-safe
cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/send-text-safe \
--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-safe"
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-safe', 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-safe",
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-safe"
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-safe")
.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-safe")
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 Text Message Safe
The Send Text Safe endpoint functions similarly to the standard send-text endpoint but with enhanced safety features designed specifically to protect your WhatsApp number from being blocked or flagged for suspicious activity.- WhatsApp has strict policies against automated messaging, and using the standard send-text endpoint too frequently can lead to your number being flagged or blocked.
- This endpoint is designed to mimic human behavior more closely, making it less likely for WhatsApp to detect automated activity.
It:
- Automatically calculates the appropriate delay between messages based on text length, by adding a few seconds for thinking/reviewing before sending
- Simulates typing behavior in WhatsApp before sending the message
- Significantly reduces the risk of your WhatsApp number being blocked due to automated messaging patterns
- Reduces the risk of being flagged for automated behavior
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

You can still send messages directly with
send-text endpoint, but we highly recommend using this endpoint for regular messaging operations to maintain a more natural communication pattern, and keep your whatsapp number safe from being blocked.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