curl --request GET \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}', 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}/queued-requests/{queued_request_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyGet Queued Request
Check the status and response of a queued API request
curl --request GET \
--url https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}', 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}/queued-requests/{queued_request_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/whatsapp/v2/{instance}/queued-requests/{queued_request_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyUnderstanding Queued Requests
In V2 of the Hypersender WhatsApp API, all requests are processed asynchronously through a queue system. This provides improved reliability and performance. When you make any API request (send message, send image, etc.), you’ll receive an immediate response like this:{
"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"
}
Response Format
When you query a queued request, you’ll receive the full details including the original request and the response:{
"uuid": "a08358c2-b4d6-4cd6-a882-70e606e4b95f",
"request": {
"text": "Check this https://hypersender.com/",
"chatId": "[email protected]",
"session": "4-instance-2598",
"reply_to": null,
"linkPreview": false,
"linkPreviewHighQuality": false
},
"response_status": 201,
"response_body": {
"key": {
"id": "3EB0155CFDC2464F72FD75",
"fromMe": true,
"remoteJid": "[email protected]"
},
"status": "PENDING",
"message": {
"extendedTextMessage": {
"text": "Check this https://hypersender.com/"
}
},
"messageTimestamp": "1764859906"
},
"response_header": {
"date": ["Thu, 04 Dec 2025 14:51:46 GMT"],
"content-type": ["application/json"],
"cache-control": ["no-cache, private"]
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
uuid | string | Unique identifier for the queued request |
request | object | The original request payload you sent |
response_status | integer | HTTP status code of the processed request (e.g., 201 for success) |
response_body | object | The actual API response with message details |
response_header | object | Response headers from the processed request |
Response Body (Message Details)
Theresponse_body contains the WhatsApp message details:
| Field | Description |
|---|---|
key.id | Unique WhatsApp message ID |
key.fromMe | Whether the message was sent by you |
key.remoteJid | The recipient’s WhatsApp JID |
status | Message status (e.g., “PENDING”, “SENT”, “DELIVERED”) |
message | The message content |
messageTimestamp | Unix timestamp when the message was sent |
Response Status Codes
Check theresponse_status field to determine if the request was successful:
| Status | Description |
|---|---|
201 | Message sent successfully |
404 | Instance not found or recipient not on WhatsApp |
422 | Validation error (invalid chatId, missing fields, etc.) |
500 | Server error |
Example: Failed Request
If the request failed (e.g., invalid phone number), the response will look like:{
"uuid": "a08358c2-b4d6-4cd6-a882-70e606e4b95f",
"request": {
"text": "Hello!",
"chatId": "[email protected]"
},
"response_status": 422,
"response_body": {
"message": "The given data was invalid.",
"errors": {
"messages": ["The number you want to send the message to is not on whatsapp."],
"jid": "[email protected]",
"exists": false
},
"statusCode": 422
},
"response_header": {
"content-type": ["application/json"]
}
}
Polling Strategy
Example Polling Code (JavaScript)
async function waitForResult(queuedRequestLink, maxAttempts = 30) {
for (let i = 0; i < maxAttempts; i++) {
const response = await fetch(queuedRequestLink, {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN'
}
});
const data = await response.json();
// Check if we have a response_status (request completed)
if (data.response_status) {
if (data.response_status === 201) {
return data.response_body; // Success
} else {
throw new Error(data.response_body?.message || 'Request failed');
}
}
// Wait 1 second before next attempt
await new Promise(resolve => setTimeout(resolve, 1000));
}
throw new Error('Request timed out');
}
Example Polling Code (PHP)
function waitForResult($queuedRequestLink, $maxAttempts = 30) {
for ($i = 0; $i < $maxAttempts; $i++) {
$response = Http::withToken('YOUR_API_TOKEN')
->get($queuedRequestLink);
$data = $response->json();
// Check if we have a response_status (request completed)
if (isset($data['response_status'])) {
if ($data['response_status'] === 201) {
return $data['response_body']; // Success
} else {
throw new Exception($data['response_body']['message'] ?? 'Request failed');
}
}
// Wait 1 second before next attempt
sleep(1);
}
throw new Exception('Request timed out');
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
application/json
"application/json"
Path Parameters
Instance UUID copied from hypersender dashboard
"{{ instance_id }}"
The UUID of the queued request returned from any API call
"a0816120-7e37-4e8b-8cf3-92deb2cdc133"
Response
Queued request details
Response when checking the status of a queued request
UUID of the queued request
"a0816120-7e37-4e8b-8cf3-92deb2cdc133"
The original request details
Show child attributes
Show child attributes
HTTP status code of the processed request. Null while the request is still being processed.
200
The actual API response body once the request is processed. Contains the message details when completed, or error details when failed. Null while processing.
Show child attributes
Show child attributes
The response headers from the processed request. Null while processing.