Evolution V2
Find message statuses
Searches message delivery/read status updates, optionally filtered by a where clause and limited by limit.
POST
/
chat
/
findStatusMessage
/
{instance}
Find message statuses
curl --request POST \
--url https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"where": {
"remoteJid": "5511999999999@s.whatsapp.net",
"status": "READ"
},
"where.status": "<string>",
"limit": 20
}
'import requests
url = "https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}"
payload = {
"where": {
"remoteJid": "5511999999999@s.whatsapp.net",
"status": "READ"
},
"where.status": "<string>",
"limit": 20
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
where: {remoteJid: '5511999999999@s.whatsapp.net', status: 'READ'},
'where.status': '<string>',
limit: 20
})
};
fetch('https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}', 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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}",
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([
'where' => [
'remoteJid' => '5511999999999@s.whatsapp.net',
'status' => 'READ'
],
'where.status' => '<string>',
'limit' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}"
payload := strings.NewReader("{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body[
{
"id": "clzupd0011223344556677889",
"keyId": "3EB0C767D26A1D8A0F1B",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": true,
"participant": null,
"pollUpdates": null,
"status": "DELIVERY_ACK",
"messageId": "clzmsg0012233445566778899",
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"id": "clzupd0022334455667788990",
"keyId": "3EB0C767D26A1D8A0F1B",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": true,
"participant": null,
"pollUpdates": null,
"status": "READ",
"messageId": "clzmsg0012233445566778899",
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
]{
"status": 400,
"error": "Bad Request",
"message": "Invalid payload"
}Authorizations
Your Pilot Status API key (ps_...). Evolution GO also accepts Authorization: Bearer <key>.
Path Parameters
The number's display name in the Pilot Status dashboard.
Body
application/json
Response
Success — provider-native response body.
MessageUpdate record id (cuid).
Message key id the status refers to.
Chat JID of the message.
Whether the message was sent by this account.
Status value, e.g. PENDING, SERVER_ACK, DELIVERY_ACK, READ, DELETED.
Related Message record id.
Owning instance id.
Group participant JID, when applicable.
Poll vote updates payload, when applicable.
Was this page helpful?
⌘I
Find message statuses
curl --request POST \
--url https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"where": {
"remoteJid": "5511999999999@s.whatsapp.net",
"status": "READ"
},
"where.status": "<string>",
"limit": 20
}
'import requests
url = "https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}"
payload = {
"where": {
"remoteJid": "5511999999999@s.whatsapp.net",
"status": "READ"
},
"where.status": "<string>",
"limit": 20
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
where: {remoteJid: '5511999999999@s.whatsapp.net', status: 'READ'},
'where.status': '<string>',
limit: 20
})
};
fetch('https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}', 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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}",
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([
'where' => [
'remoteJid' => '5511999999999@s.whatsapp.net',
'status' => 'READ'
],
'where.status' => '<string>',
'limit' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}"
payload := strings.NewReader("{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
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://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/api/layer/evolution-v2/chat/findStatusMessage/{instance}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"where\": {\n \"remoteJid\": \"5511999999999@s.whatsapp.net\",\n \"status\": \"READ\"\n },\n \"where.status\": \"<string>\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body[
{
"id": "clzupd0011223344556677889",
"keyId": "3EB0C767D26A1D8A0F1B",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": true,
"participant": null,
"pollUpdates": null,
"status": "DELIVERY_ACK",
"messageId": "clzmsg0012233445566778899",
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"id": "clzupd0022334455667788990",
"keyId": "3EB0C767D26A1D8A0F1B",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": true,
"participant": null,
"pollUpdates": null,
"status": "READ",
"messageId": "clzmsg0012233445566778899",
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
]{
"status": 400,
"error": "Bad Request",
"message": "Invalid payload"
}