Começando
A API Watts permite enviar e receber mensagens do WhatsApp programaticamente. Esta documentação fornece exemplos em múltiplas linguagens.
https://api.watts.api.br
Autenticação
Todas as requisições devem incluir seu token de API no header X-API-Key.
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/status" \
-H "X-API-Key: SEU_TOKEN_AQUI"
<?php
$apiToken = 'SEU_TOKEN_AQUI';
$instanceId = 'SUA_INSTANCIA';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.watts.api.br/instance/{$instanceId}/status");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $apiToken
]);
$response = curl_exec($ch);
?>
Instâncias
Criar Instância
Cria uma nova instância do WhatsApp.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| instanceId | string | Sim | ID único para a instância |
| name | string | Sim | Nome descritivo |
curl -X POST "https://api.watts.api.br/instance/create" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"instanceId": "inst_123",
"name": "Minha Instância"
}'
<?php
$data = [
'instanceId' => 'inst_' . time(),
'name' => 'Minha Instância'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/create');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
?>
Obter QR Code
Retorna o QR Code em base64.
Verificar Status
Verifica status da instância.
Desconectar
Desconecta a instância.
Deletar Instância
ATENÇÃO: Ação irreversível!
Perfil da Instância
Gerencie o perfil do WhatsApp da instância: foto, nome e recado.
Obter Perfil
Retorna o nome e a foto de perfil atual da instância.
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/profile" \
-H "X-API-Key: SEU_TOKEN"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/profile');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
$profile = $response['profile'];
echo "Nome: " . $profile['name'] . "\n";
echo "Foto: " . $profile['photoUrl'] . "\n";
echo "Phone: " . $profile['phone'] . "\n";
?>
{
"success": true,
"profile": {
"jid": "553199999999:5@s.whatsapp.net",
"phone": "553199999999",
"name": "Meu Atendimento",
"photoUrl": "https://pps.whatsapp.net/v/..."
}
}
Foto de Perfil
Alterar Foto
Envia a imagem via multipart/form-data no campo photo, ou via JSON com o campo image em base64.
Remover Foto
Remove a foto de perfil atual da instância.
# Alterar foto (multipart)
curl -X PUT "https://api.watts.api.br/instance/INSTANCE_ID/profile/photo" \
-H "X-API-Key: SEU_TOKEN" \
-F "photo=@/caminho/foto.jpg"
# Remover foto
curl -X DELETE "https://api.watts.api.br/instance/INSTANCE_ID/profile/photo" \
-H "X-API-Key: SEU_TOKEN"
<?php
// Alterar foto
$cfile = new CURLFile('/caminho/foto.jpg', 'image/jpeg');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/profile/photo');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, ['photo' => $cfile]);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
// Remover foto
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/profile/photo');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
Alterar Nome
Altera o nome de exibição da instância no WhatsApp.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Sim | Novo nome de exibição |
curl -X PUT "https://api.watts.api.br/instance/INSTANCE_ID/profile/name" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Meu Atendimento"}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/profile/name');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['name' => 'Meu Atendimento']));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
Mensagens
Enviar Mensagem de Texto
Envia mensagem de texto.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | string | Sim | Número com DDI |
| message | string | Sim | Texto da mensagem |
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/text" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"message": "Olá! Mensagem de teste"
}'
<?php
$data = [
'phone' => '5511999999999',
'message' => 'Olá! Mensagem de teste'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/text');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
?>
Responder Mensagem
Responde uma mensagem específica.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
| phone | string | Sim |
| message | string | Sim |
| quotedMessageId | string | Sim |
Editar Mensagem
Edita uma mensagem enviada (até 15 minutos).
Deletar Mensagem
Deleta uma mensagem específica.
Deletar Múltiplas Mensagens
Deleta múltiplas mensagens de uma vez.
Envio de Mídias
Todas as mídias usam o endpoint /send/media com diferentes mediaType.
Enviar Figurinha (Sticker)
Envia uma figurinha.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| phone | string | Número com DDI |
| mediaType | string | "sticker" |
| media | file | Arquivo PNG/WEBP |
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/media" \
-H "X-API-Key: SEU_TOKEN" \
-F "phone=5511999999999" \
-F "mediaType=sticker" \
-F "media=@/caminho/sticker.webp"
<?php
$cfile = new CURLFile('/caminho/sticker.webp', 'image/webp');
$postData = [
'phone' => '5511999999999',
'mediaType' => 'sticker',
'media' => $cfile
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/media');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
?>
Enviar Áudio
Envia arquivo de áudio (MP3, WAV, OGG).
| Parâmetro | Valor |
|---|---|
| mediaType | "audio" |
Enviar Arquivo/Documento
Envia imagens, vídeos, documentos.
• video: MP4, AVI, MOV, MKV
• document: PDF, DOC, XLS, etc.
<?php
// Auto-detecta tipo
$ext = strtolower(pathinfo($filePath, PATHINFO_EXTENSION));
if (in_array($ext, ['jpg', 'png', 'gif'])) {
$mediaType = 'image';
} elseif (in_array($ext, ['mp4', 'avi'])) {
$mediaType = 'video';
} else {
$mediaType = 'document';
}
$cfile = new CURLFile($filePath);
$postData = [
'phone' => '5511999999999',
'mediaType' => $mediaType,
'media' => $cfile,
'caption' => 'Legenda opcional'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/ID/send/media');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
?>
Enviar Localização
Envia uma localização com coordenadas, nome e endereço.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | string | Sim | Número com DDI |
| latitude | float | Sim | Latitude da localização |
| longitude | float | Sim | Longitude da localização |
| name | string | Não | Nome do local |
| address | string | Não | Endereço completo |
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/location" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"latitude": -19.9191,
"longitude": -43.9386,
"name": "Praça da Liberdade",
"address": "Praça da Liberdade, Belo Horizonte - MG"
}'
<?php
$data = [
'phone' => '5511999999999',
'latitude' => -19.9191,
'longitude' => -43.9386,
'name' => 'Praça da Liberdade',
'address' => 'Praça da Liberdade, Belo Horizonte - MG'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/location');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
{
"success": true,
"messageId": "3EB0123456789ABCDEF",
"timestamp": 1773839640
}
Enviar Reação
Envia uma reação (emoji) em uma mensagem. Para remover uma reação existente, envie emoji como string vazia "".
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | string | Sim | Número com DDI |
| messageId | string | Sim | ID da mensagem que receberá a reação |
| emoji | string | Sim | Emoji da reação. Use "" para remover |
# Adicionar reação
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/reaction" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"messageId": "3EB0123456789ABCDEF",
"emoji": "👍"
}'
# Remover reação
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/reaction" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"messageId": "3EB0123456789ABCDEF",
"emoji": ""
}'
<?php
// Adicionar reação
$data = [
'phone' => '5511999999999',
'messageId' => '3EB0123456789ABCDEF',
'emoji' => '👍'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/reaction');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
// Para remover, use emoji: ''
$data['emoji'] = '';
?>
{
"success": true,
"messageId": "3EB0123456789ABCDEF",
"emoji": "👍",
"action": "added"
}
Prévia de Link
Envia uma mensagem de texto contendo uma URL com prévia automática (título, descrição e imagem). A prévia pode ser gerada automaticamente a partir dos metadados Open Graph do site, ou totalmente customizada pelo usuário.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | string | Sim | Número com DDI |
| text | string | Sim | Texto da mensagem contendo a URL |
| thumbnail | string (base64) | Não | Imagem de capa em base64 (JPG, PNG, WEBP). Se não enviado, tenta gerar automaticamente a partir do site |
| title | string | Não | Título da prévia. Se não enviado, busca automaticamente no site |
| description | string | Não | Descrição da prévia. Se não enviado, busca automaticamente no site |
og:title, og:image, og:description). Sites como Google e Facebook bloqueiam scraping — nesses casos, use os parâmetros thumbnail, title e description para definir a prévia manualmente.
text: gera preview completo automaticamente via scraping•
thumbnail + title: usa tudo manual, sem scraping•
thumbnail sem title: usa thumb manual + busca title/description no site• Site bloqueia scraping: envia só o texto sem preview
# Preview automático
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/link-preview" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"text": "Confira nossa novidade: https://exemplo.com/produto"
}'
# Preview customizado (thumbnail + title + description)
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/send/link-preview" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"text": "Confira: https://exemplo.com/",
"thumbnail": "BASE64_DA_IMAGEM",
"title": "Meu Site",
"description": "A melhor plataforma do mercado"
}'
<?php
// Preview automático — gera a partir do site
$data = [
'phone' => '5511999999999',
'text' => 'Confira nossa novidade: https://exemplo.com/produto'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/link-preview');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
<?php
// Preview customizado com thumbnail local
$imagePath = '/caminho/para/imagem.jpg';
$thumbBase64 = base64_encode(file_get_contents($imagePath));
$data = [
'phone' => '5511999999999',
'text' => 'Confira: https://meusite.com.br/',
'thumbnail' => $thumbBase64,
'title' => 'Meu Site',
'description' => 'A melhor plataforma do mercado'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/send/link-preview');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
{
"success": true,
"messageId": "3EB0123456789ABCDEF",
"timestamp": 1773839640
}
Webhooks
Configure webhooks para receber notificações.
| Evento | Descrição |
|---|---|
| on_receive | Mensagem recebida |
| on_send | Mensagem enviada |
| on_connect | Instância conectada |
Grupos
Gerencie grupos do WhatsApp: crie, configure, adicione participantes e muito mais.
Listar Grupos
Retorna todos os grupos em que a instância participa. Os resultados são cacheados no banco — use ?force=true para buscar direto do WhatsApp.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| force | query string | Não | Se true, ignora o cache e busca do WhatsApp |
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/groups" \
-H "X-API-Key: SEU_TOKEN"
# Forçar atualização do cache:
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/groups?force=true" \
-H "X-API-Key: SEU_TOKEN"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/groups');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
foreach ($response['groups'] as $group) {
echo $group['name'] . ' - ' . $group['participantCount'] . " membros\n";
}
?>
Informações do Grupo
Retorna metadata completo de um grupo: nome, descrição, participantes, configurações e mais.
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/groups/120363xxxxxxx" \
-H "X-API-Key: SEU_TOKEN"
<?php
$groupId = '120363xxxxxxx'; // sem @g.us
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.watts.api.br/instance/INSTANCE_ID/groups/{$groupId}");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
$group = $response['group'];
echo "Nome: " . $group['name'] . "\n";
echo "Membros: " . $group['participantCount'] . "\n";
echo "Dono: " . $group['owner'] . "\n";
?>
Criar Grupo
Cria um novo grupo com os participantes informados.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Sim | Nome do grupo |
| participants | array | Não | Lista de números com DDI |
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/groups" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Meu Grupo",
"participants": ["5511999999999", "5511888888888"]
}'
<?php
$data = [
'name' => 'Meu Grupo',
'participants' => ['5511999999999', '5511888888888']
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/groups');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
echo "Grupo criado: " . $response['groupId'];
?>
Entrar via Link de Convite
Entra em um grupo usando o link de convite.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| inviteLink | string | Sim | Link completo ou apenas o código |
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/groups/join" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inviteLink": "https://chat.whatsapp.com/ABC123XYZ"
}'
<?php
$data = ['inviteLink' => 'https://chat.whatsapp.com/ABC123XYZ'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.watts.api.br/instance/INSTANCE_ID/groups/join');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: SEU_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
Sair do Grupo
Sai do grupo. Envie "delete": true no body para deletar o grupo (apenas se a instância for dona).
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| delete | boolean | Não | Se true, deleta o grupo (requer ser dono) |
# Apenas sair
curl -X DELETE "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/leave" \
-H "X-API-Key: SEU_TOKEN"
# Deletar o grupo (requer ser dono)
curl -X DELETE "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/leave" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"delete": true}'
<?php
$groupId = '120363xxxxxxx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.watts.api.br/instance/INSTANCE_ID/groups/{$groupId}/leave");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
?>
Link de Convite
Obter Link
Retorna o link de convite atual do grupo.
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/invite-link" \
-H "X-API-Key: SEU_TOKEN"
<?php
$groupId = '120363xxxxxxx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.watts.api.br/instance/INSTANCE_ID/groups/{$groupId}/invite-link");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: SEU_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
echo $response['inviteLink']; // https://chat.whatsapp.com/xxx
?>
Revogar e Gerar Novo Link
Invalida o link atual e gera um novo. O link antigo para de funcionar imediatamente.
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/invite-link/revoke" \
-H "X-API-Key: SEU_TOKEN"
Gerenciar Participantes
{ "participants": ["5511999...", "5511888..."] }
Adicionar
Remover
Promover a Admin
Rebaixar Admin
# Adicionar participantes
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/participants/add" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"participants": ["5511999999999", "5511888888888"]}'
# Promover a admin
curl -X POST "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/participants/promote" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"participants": ["5511999999999"]}'
<?php
function gerenciarParticipante($instanceId, $groupId, $acao, $participants, $token) {
// acao: add | remove | promote | demote
$method = ($acao === 'remove') ? 'DELETE' : 'POST';
$url = "https://api.watts.api.br/instance/{$instanceId}/groups/{$groupId}/participants/{$acao}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['participants' => $participants]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $token,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
return $response;
}
// Exemplos de uso:
gerenciarParticipante('INSTANCE_ID', 'GROUP_ID', 'add', ['5511999999999'], 'SEU_TOKEN');
gerenciarParticipante('INSTANCE_ID', 'GROUP_ID', 'remove', ['5511999999999'], 'SEU_TOKEN');
gerenciarParticipante('INSTANCE_ID', 'GROUP_ID', 'promote', ['5511999999999'], 'SEU_TOKEN');
gerenciarParticipante('INSTANCE_ID', 'GROUP_ID', 'demote', ['5511999999999'], 'SEU_TOKEN');
?>
Configurações do Grupo
Renomear
Body: { "name": "Novo Nome" }
Alterar Descrição
Body: { "description": "Nova descrição" }
Alterar / Remover Foto
Envie a imagem via multipart/form-data no campo photo, ou via JSON com o campo image em base64.
Remove a foto atual do grupo.
Permissões de Envio e Edição
Valor de setting |
Efeito |
|---|---|
| announcement | Só admins podem enviar mensagens |
| not_announcement | Todos podem enviar mensagens |
| locked | Só admins podem editar informações do grupo |
| unlocked | Todos podem editar informações do grupo |
Mensagens Temporárias (Ephemeral)
Valor de duration |
Efeito |
|---|---|
| 0 | Desativar mensagens temporárias |
| 86400 | Expirar em 1 dia |
| 604800 | Expirar em 7 dias |
| 7776000 | Expirar em 90 dias |
# Renomear grupo
curl -X PUT "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/name" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Novo Nome do Grupo"}'
# Modo somente admins enviam
curl -X PUT "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/settings" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"setting": "announcement"}'
# Mensagens que expiram em 7 dias
curl -X PUT "https://api.watts.api.br/instance/INSTANCE_ID/groups/GROUP_ID/ephemeral" \
-H "X-API-Key: SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"duration": 604800}'
<?php
function putGrupo($instanceId, $groupId, $endpoint, $data, $token) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.watts.api.br/instance/{$instanceId}/groups/{$groupId}/{$endpoint}");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $token,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
return $response;
}
// Exemplos:
putGrupo('INSTANCE_ID', 'GROUP_ID', 'name', ['name' => 'Novo Nome'], 'SEU_TOKEN');
putGrupo('INSTANCE_ID', 'GROUP_ID', 'description', ['description' => 'Nova desc'], 'SEU_TOKEN');
putGrupo('INSTANCE_ID', 'GROUP_ID', 'settings', ['setting' => 'announcement'], 'SEU_TOKEN');
putGrupo('INSTANCE_ID', 'GROUP_ID', 'ephemeral', ['duration' => 604800], 'SEU_TOKEN');
?>
Verificar Número no WhatsApp
Verifica se um número possui WhatsApp e retorna o LID associado.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | query string | Sim | Número com DDI (ex: 5511999999999) |
curl -X GET "https://api.watts.api.br/instance/INSTANCE_ID/check-number?phone=5511999999999" \
-H "X-API-Key: SEU_TOKEN"
<?php
$instanceId = 'SUA_INSTANCIA';
$apiToken = 'SEU_TOKEN';
$phone = '5511999999999';
$ch = curl_init("https://api.watts.api.br/instance/{$instanceId}/check-number?phone={$phone}");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: ' . $apiToken],
]);
$data = json_decode(curl_exec($ch), true);
$result = $data[0];
echo "Telefone : " . $result['phone'] . "\n";
echo "WhatsApp : " . ($result['exists'] ? 'SIM' : 'NÃO') . "\n";
echo "LID : " . ($result['lid'] ?? 'N/A') . "\n";
?>
[
{
"exists": true,
"phone": "5511999999999",
"lid": "172692699406453@lid"
}
]
Códigos de Erro
| Código | Descrição |
|---|---|
200 |
Sucesso |
400 |
Bad Request |
401 |
Não autorizado |
404 |
Não encontrado |
500 |
Erro no servidor |