cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chatId": "[email protected]",
"text": "Check this out! https://hypersender.com/",
"reply_to": "string",
"high_quality": true,
"preview_title": "Hypersender is awesome",
"preview_description": "Check this out, this is a custom link preview!",
"preview_url": "https://hypersender.com/",
"preview_image_url": "https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg"
}
'import requests
url = "https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview"
payload = {
"chatId": "[email protected]",
"text": "Check this out! https://hypersender.com/",
"reply_to": "string",
"high_quality": True,
"preview_title": "Hypersender is awesome",
"preview_description": "Check this out, this is a custom link preview!",
"preview_url": "https://hypersender.com/",
"preview_image_url": "https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg"
}
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: 'Check this out! https://hypersender.com/',
reply_to: 'string',
high_quality: true,
preview_title: 'Hypersender is awesome',
preview_description: 'Check this out, this is a custom link preview!',
preview_url: 'https://hypersender.com/',
preview_image_url: 'https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg'
})
};
fetch('https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview', 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/v1/{instance}/send-link-custom-preview",
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' => 'Check this out! https://hypersender.com/',
'reply_to' => 'string',
'high_quality' => true,
'preview_title' => 'Hypersender is awesome',
'preview_description' => 'Check this out, this is a custom link preview!',
'preview_url' => 'https://hypersender.com/',
'preview_image_url' => 'https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg'
]),
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/v1/{instance}/send-link-custom-preview"
payload := strings.NewReader("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\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/v1/{instance}/send-link-custom-preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview")
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\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\n}"
response = http.request(request)
puts response.read_body{
"key": {
"remoteJid": "[email protected]",
"fromMe": true,
"id": "3EB091A456D98511123FEA"
},
"message": {
"extendedTextMessage": {
"text": "Check this out! https://hypersender.com/",
"matchedText": "https://hypersender.com/",
"description": "Check this out, this is a custom link preview!",
"title": "Hypersender is awesome",
"previewType": "NONE",
"jpegThumbnail": "/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAARACADASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAUDBAECBv/EACwQAAECBQIEBAcAAAAAAAAAAAECAwAEBREhBjESEzVBYYGDsTI0UXJ0srP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAXEQEBAQEAAAAAAAAAAAAAAAAAARIC/9oADAMBAAIRAxEAPwBi2HEqaUEXTY54hEEjVF1MOrTLqa5V0pJVnfe0Y1CX6fLS77E206gLIIbTw2NsE2ORviI9OzQmWVNKfQ282LhAbCisdzDehI3VU3kVBEutlTbjgt8YORkeREQ1GvKp86gusp5YBTw8YVfxt4WitW5GWS4h+cfcUt10qBKSjt9ADsIpT7NOm5d0tVdgu9kKSc22AO/naDRzDjUHRXPuT7wr0v8ANzH459xBBGSdDqFK9b+cclpjrvpPfoYIIoa//9k=",
"thumbnailDirectPath": "/o1/v/t24/f2/m232/AQMNFP0XcTmGZckNL1WI6_-o4AAzaPTlTtqRat-YC7SlRrlpV8e_0fmUj7xBK5kS_9m4B-3wgG8wJ-aitI6TQqAXSTHEUhH5u4m1QCxRmw?ccb=9-4&oh=01_Q5Aa2gFW4du4I6OfD9Y_djyP1KIukQnFQRfu8YEfQJ6ydbY8JQ&oe=68F20A99&_nc_sid=e6ed6c",
"thumbnailSha256": "KccP5I7AxrmcoUeD868qd0ISDFf6TYUTtw6dJS/Sdjk=",
"thumbnailEncSha256": "Vveij+Avc8amAa2u6AtPSZG/07FzjJfDtMJqmYt/g4A=",
"mediaKey": "Tp1eSebY/WJr+mZmzWmbRAj4WXyEmGsvSKZySAw9Kj8=",
"mediaKeyTimestamp": 1758105918,
"thumbnailHeight": 649,
"thumbnailWidth": 1200
}
},
"messageTimestamp": "1758105918,",
"status": "PENDING"
}{
"message": "Resource not found."
}{
"message": "The given data was invalid.",
"errors": {},
"statusCode": 422
}{
"message": "Internal Server Error"
}Send Link Custom Preview
Send a WhatsApp message with a link preview to enhance engagement and provide context to your recipients.
POST
/
{instance}
/
send-link-custom-preview
cURL
curl --request POST \
--url https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chatId": "[email protected]",
"text": "Check this out! https://hypersender.com/",
"reply_to": "string",
"high_quality": true,
"preview_title": "Hypersender is awesome",
"preview_description": "Check this out, this is a custom link preview!",
"preview_url": "https://hypersender.com/",
"preview_image_url": "https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg"
}
'import requests
url = "https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview"
payload = {
"chatId": "[email protected]",
"text": "Check this out! https://hypersender.com/",
"reply_to": "string",
"high_quality": True,
"preview_title": "Hypersender is awesome",
"preview_description": "Check this out, this is a custom link preview!",
"preview_url": "https://hypersender.com/",
"preview_image_url": "https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg"
}
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: 'Check this out! https://hypersender.com/',
reply_to: 'string',
high_quality: true,
preview_title: 'Hypersender is awesome',
preview_description: 'Check this out, this is a custom link preview!',
preview_url: 'https://hypersender.com/',
preview_image_url: 'https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg'
})
};
fetch('https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview', 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/v1/{instance}/send-link-custom-preview",
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' => 'Check this out! https://hypersender.com/',
'reply_to' => 'string',
'high_quality' => true,
'preview_title' => 'Hypersender is awesome',
'preview_description' => 'Check this out, this is a custom link preview!',
'preview_url' => 'https://hypersender.com/',
'preview_image_url' => 'https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg'
]),
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/v1/{instance}/send-link-custom-preview"
payload := strings.NewReader("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\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/v1/{instance}/send-link-custom-preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chatId\": \"[email protected]\",\n \"text\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v1/{instance}/send-link-custom-preview")
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\": \"Check this out! https://hypersender.com/\",\n \"reply_to\": \"string\",\n \"high_quality\": true,\n \"preview_title\": \"Hypersender is awesome\",\n \"preview_description\": \"Check this out, this is a custom link preview!\",\n \"preview_url\": \"https://hypersender.com/\",\n \"preview_image_url\": \"https://m.media-amazon.com/images/M/MV5BMjRhYjdkOGMtZDY5Zi00OWEwLTlkOWEtYz.jpg\"\n}"
response = http.request(request)
puts response.read_body{
"key": {
"remoteJid": "[email protected]",
"fromMe": true,
"id": "3EB091A456D98511123FEA"
},
"message": {
"extendedTextMessage": {
"text": "Check this out! https://hypersender.com/",
"matchedText": "https://hypersender.com/",
"description": "Check this out, this is a custom link preview!",
"title": "Hypersender is awesome",
"previewType": "NONE",
"jpegThumbnail": "/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAARACADASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAUDBAECBv/EACwQAAECBQIEBAcAAAAAAAAAAAECAwAEBREhBjESEzVBYYGDsTI0UXJ0srP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAXEQEBAQEAAAAAAAAAAAAAAAAAARIC/9oADAMBAAIRAxEAPwBi2HEqaUEXTY54hEEjVF1MOrTLqa5V0pJVnfe0Y1CX6fLS77E206gLIIbTw2NsE2ORviI9OzQmWVNKfQ282LhAbCisdzDehI3VU3kVBEutlTbjgt8YORkeREQ1GvKp86gusp5YBTw8YVfxt4WitW5GWS4h+cfcUt10qBKSjt9ADsIpT7NOm5d0tVdgu9kKSc22AO/naDRzDjUHRXPuT7wr0v8ANzH459xBBGSdDqFK9b+cclpjrvpPfoYIIoa//9k=",
"thumbnailDirectPath": "/o1/v/t24/f2/m232/AQMNFP0XcTmGZckNL1WI6_-o4AAzaPTlTtqRat-YC7SlRrlpV8e_0fmUj7xBK5kS_9m4B-3wgG8wJ-aitI6TQqAXSTHEUhH5u4m1QCxRmw?ccb=9-4&oh=01_Q5Aa2gFW4du4I6OfD9Y_djyP1KIukQnFQRfu8YEfQJ6ydbY8JQ&oe=68F20A99&_nc_sid=e6ed6c",
"thumbnailSha256": "KccP5I7AxrmcoUeD868qd0ISDFf6TYUTtw6dJS/Sdjk=",
"thumbnailEncSha256": "Vveij+Avc8amAa2u6AtPSZG/07FzjJfDtMJqmYt/g4A=",
"mediaKey": "Tp1eSebY/WJr+mZmzWmbRAj4WXyEmGsvSKZySAw9Kj8=",
"mediaKeyTimestamp": 1758105918,
"thumbnailHeight": 649,
"thumbnailWidth": 1200
}
},
"messageTimestamp": "1758105918,",
"status": "PENDING"
}{
"message": "Resource not found."
}{
"message": "The given data was invalid.",
"errors": {},
"statusCode": 422
}{
"message": "Internal Server Error"
}This feature is only available for subscribed accounts.
send-text or send-text-safe you can send auto-generated link previews.
You can send custom link preview in two ways:
Provide a URL for the image.

WhatsApp requires the text to contain the preview URL anywhere in the text.Example:
"text": "Check this out! https://hypersender.com/"Please note that the URL must be publicly accessible and not require any authentication or special headers to access the file.
Send the image it self as a file upload.

By specifying the
high_quality parameter as true, you can get a higher quality image.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Instance UUID copied from hypersender dashboard
Example:
"{{ instance_id }}"
Body
application/json
Contact number - learn what is chatId
Example:
text should contain the url to send
title of the link preview
description of the link preview
must be a valid URL
URL of the image to be used in the link preview - (only if preview_image_file is not provided)
file of the image to be used in the link preview - (only if preview_image_url is not provided)
reply to message id
high quality for the image
⌘I