curl --request GET \
--url https://api.wizebot.com.br/v1/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.wizebot.com.br/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.wizebot.com.br/v1/conversations';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.wizebot.com.br/v1/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wizebot.com.br/v1/conversations",
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;
}{
"success": true,
"data": {
"items": [
{
"conversation_id": "7f3e1a24-5b6c-4d8e-9f01-2a3b4c5d6e7f",
"contact_id": "9c8b7a65-4321-4def-8abc-1234567890ab",
"channel": "whatsapp",
"channel_account_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "open",
"assigned": false,
"unread_count": 2,
"last_message_at": "2026-09-13T02:44:51.602Z",
"last_inbound_at": "2026-09-13T02:44:51.602Z"
}
],
"next_cursor": "eyJ0IjoiMjAyNi0wOS0xMyJ9"
},
"timestamp": "2026-09-13T03:20:00.000Z"
}{
"success": false,
"statusCode": 400,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "INVALID_PARAM",
"message": "limit must be an integer between 1 and 100.",
"details": {
"min": 1,
"max": 100
}
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}{
"success": false,
"statusCode": 401,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key."
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}{
"success": false,
"statusCode": 429,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "RATE_LIMITED",
"message": "Too many requests."
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}Listar conversas
Conversas por atividade recente — da mais recente para a mais antiga —, com paginação por cursor.
Os dois filtros de identidade
Ambos devolvem sempre uma lista, mesmo quando há um único resultado. Nunca um objeto solto. Um mesmo telefone pode estar em conversas de contas de canal diferentes — medimos até 11 no pior caso — e um recurso que às vezes devolve lista e às vezes devolve um item é armadilha de integração. Quem quer a mais recente lê o primeiro item de items.
Os dois não alcançam o mesmo conjunto, e a diferença importa:
channel_identifier | phone | |
|---|---|---|
| Precisão | praticamente unívoco | ambíguo: o mesmo número pode ser contatos diferentes em contas diferentes |
| Cobertura | não encontra contato sem vínculo de canal registrado | encontra |
Prefira channel_identifier quando souber o endereço nativo — ele é o identificador real do contato naquele canal. Mas saiba que ele depende de um vínculo que nem todo contato antigo tem: hoje, cerca de 5% das conversas ativas pertencem a contatos sem esse vínculo, e para elas só o filtro phone responde. Se você busca por identidade e não encontra uma conversa que sabe existir, tente por phone antes de concluir que ela não existe.
Isso afeta apenas os dois filtros de identidade. A listagem sem filtro de identidade, a leitura de mensagens e a resolução de anexo não dependem desse vínculo e devolvem tudo normalmente.
O que a resposta não traz
Não há contagem de mensagens da conversa. O contador que existe internamente está incorreto — ele só soma e nunca subtrai quando mensagens são removidas —, e publicar um número errado seria pior que não publicar nenhum. Para saber quantas mensagens uma conversa tem, pagine GET /v1/conversations/{id}/messages.
curl --request GET \
--url https://api.wizebot.com.br/v1/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.wizebot.com.br/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.wizebot.com.br/v1/conversations';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.wizebot.com.br/v1/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wizebot.com.br/v1/conversations",
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;
}{
"success": true,
"data": {
"items": [
{
"conversation_id": "7f3e1a24-5b6c-4d8e-9f01-2a3b4c5d6e7f",
"contact_id": "9c8b7a65-4321-4def-8abc-1234567890ab",
"channel": "whatsapp",
"channel_account_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "open",
"assigned": false,
"unread_count": 2,
"last_message_at": "2026-09-13T02:44:51.602Z",
"last_inbound_at": "2026-09-13T02:44:51.602Z"
}
],
"next_cursor": "eyJ0IjoiMjAyNi0wOS0xMyJ9"
},
"timestamp": "2026-09-13T03:20:00.000Z"
}{
"success": false,
"statusCode": 400,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "INVALID_PARAM",
"message": "limit must be an integer between 1 and 100.",
"details": {
"min": 1,
"max": 100
}
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}{
"success": false,
"statusCode": 401,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key."
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}{
"success": false,
"statusCode": 429,
"timestamp": "2026-09-13T03:20:00.000Z",
"path": "/api/v1/conversations",
"method": "GET",
"message": {
"error": "RATE_LIMITED",
"message": "Too many requests."
},
"errorId": "ERR-MTUD0DBO-KKRMP8"
}Authorizations
Chave de API no cabeçalho Authorization: Bearer SUA-CHAVE.
A API também aceita x-api-key: SUA-CHAVE e Authorization: ApiKey SUA-CHAVE — as três formas são equivalentes, inclusive para o limite de requisições.
A chave dá acesso total à conta e é de servidor para servidor: não a use em navegador ou aplicativo móvel.
Query Parameters
whatsapp, telegram, webchat.
Conta de canal, vinda de GET /v1/channels.
open, resolved, archived, all Com ou sem atendente responsável.
Endereço nativo do contato no canal.
Telefone. Ambíguo por construção — ver acima.
x <= 100next_cursor da página anterior.

