curl --request GET \
--url https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messagesconst options = {method: 'GET'};
fetch('https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"phone": "5511988887777",
"enabled": true,
"synced_at": "2026-09-16T12:00:05.000Z",
"messages": [
{
"momment": 1789560000000,
"message_id": "3EB0C767D26A8B1F2C9A",
"phone": "5511988887777",
"from_me": false,
"from_api": false,
"is_group": false,
"is_newsletter": false,
"is_edit": false,
"forwarded": false,
"broadcast": false,
"waiting_message": false,
"status": "RECEIVED",
"chat_name": "Maria",
"sender_name": "Maria",
"text": {
"message": "Oi, ainda tem o produto?"
}
},
{
"momment": 1789560060000,
"message_id": "3EB0A1B2C3D4E5F60718",
"phone": "5511988887777",
"from_me": true,
"from_api": false,
"is_group": false,
"is_newsletter": false,
"is_edit": false,
"forwarded": false,
"broadcast": false,
"waiting_message": false,
"status": "READ",
"text": {
"message": "Tem sim! Posso separar pra você."
}
}
]
}{
"error": {
"code": "instance_not_found",
"message": "Instance not found or invalid token"
}
}{
"error": {
"code": "subscription_required",
"message": "Active subscription required"
}
}{
"error": {
"code": "instance_not_connected",
"message": "Instance is not connected"
}
}{
"error": {
"code": "history_not_configured",
"message": "Chat history is not configured on this server"
}
}Mensagens recentes da conversa
Ao parear, o celular envia ao Wabox as conversas recentes com as últimas mensagens de cada uma; o Wabox guarda até 50 mensagens por conversa (as mais recentes) em object storage e as devolve aqui no mesmo formato do webhook received — sem envelope (type, event_id, instance_id). Mídia vem só com metadados (download_error = media not downloaded (history sync)), nunca é baixada no sync. Não é histórico completo: mensagens mais antigas que as sincronizadas pelo celular e conversas sem atividade recente podem não existir aqui (messages vazio, nunca 404). Depois do pareamento, o tráfego novo chega só pelos webhooks — esta rota não acompanha mensagens ao vivo. Não exige a instância conectada. Desligue com settings.history_enabled = false (apaga o que já foi guardado); logout e exclusão da instância também apagam.
curl --request GET \
--url https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messagesconst options = {method: 'GET'};
fetch('https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.wabox.me/instances/{instance_id}/token/{token}/chats/{phone}/messages"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"phone": "5511988887777",
"enabled": true,
"synced_at": "2026-09-16T12:00:05.000Z",
"messages": [
{
"momment": 1789560000000,
"message_id": "3EB0C767D26A8B1F2C9A",
"phone": "5511988887777",
"from_me": false,
"from_api": false,
"is_group": false,
"is_newsletter": false,
"is_edit": false,
"forwarded": false,
"broadcast": false,
"waiting_message": false,
"status": "RECEIVED",
"chat_name": "Maria",
"sender_name": "Maria",
"text": {
"message": "Oi, ainda tem o produto?"
}
},
{
"momment": 1789560060000,
"message_id": "3EB0A1B2C3D4E5F60718",
"phone": "5511988887777",
"from_me": true,
"from_api": false,
"is_group": false,
"is_newsletter": false,
"is_edit": false,
"forwarded": false,
"broadcast": false,
"waiting_message": false,
"status": "READ",
"text": {
"message": "Tem sim! Posso separar pra você."
}
}
]
}{
"error": {
"code": "instance_not_found",
"message": "Instance not found or invalid token"
}
}{
"error": {
"code": "subscription_required",
"message": "Active subscription required"
}
}{
"error": {
"code": "instance_not_connected",
"message": "Instance is not connected"
}
}{
"error": {
"code": "history_not_configured",
"message": "Chat history is not configured on this server"
}
}Path Parameters
Id da instância (dashboard › instância › Credenciais).
Token da instância. Trate como senha.
Telefone do contato ou id do grupo
"5511988887777"