Documentação

API Watts · https://api.watts.api.br

Começando

A API Watts permite enviar e receber mensagens do WhatsApp programaticamente. Esta documentação fornece exemplos em múltiplas linguagens.

Base URL
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

POST /instance/create

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

GET /instance/{instanceId}/qrcode

Retorna o QR Code em base64.

Verificar Status

GET /instance/{instanceId}/status

Verifica status da instância.

Desconectar

POST /instance/{instanceId}/logout

Desconecta a instância.

Deletar Instância

DELETE /instance/{instanceId}

ATENÇÃO: Ação irreversível!

Perfil da Instância

Gerencie o perfil do WhatsApp da instância: foto, nome e recado.

Obter Perfil

GET /instance/{instanceId}/profile

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";
?>
Exemplo de resposta
{
  "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

PUT /instance/{instanceId}/profile/photo

Envia a imagem via multipart/form-data no campo photo, ou via JSON com o campo image em base64.

Remover Foto

DELETE /instance/{instanceId}/profile/photo

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

PUT /instance/{instanceId}/profile/name

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

POST /instance/{instanceId}/send/text

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

POST /instance/{instanceId}/send/reply

Responde uma mensagem específica.

Parâmetro Tipo Obrigatório
phone string Sim
message string Sim
quotedMessageId string Sim

Editar Mensagem

PUT /instance/{instanceId}/message/edit

Edita uma mensagem enviada (até 15 minutos).

Deletar Mensagem

DELETE /instance/{instanceId}/message/{messageId}

Deleta uma mensagem específica.

Deletar Múltiplas Mensagens

DELETE /instance/{instanceId}/messages/bulk

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)

POST /instance/{instanceId}/send/media

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

POST /instance/{instanceId}/send/media

Envia arquivo de áudio (MP3, WAV, OGG).

Parâmetro Valor
mediaType "audio"

Enviar Arquivo/Documento

POST /instance/{instanceId}/send/media

Envia imagens, vídeos, documentos.

Tipos Suportados
• image: JPG, PNG, GIF, WEBP
• 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

POST /instance/{instanceId}/send/location

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);
?>
Exemplo de resposta
{
  "success": true,
  "messageId": "3EB0123456789ABCDEF",
  "timestamp": 1773839640
}

Enviar Reação

POST /instance/{instanceId}/send/reaction

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'] = '';
?>
Exemplo de resposta
{
  "success": true,
  "messageId": "3EB0123456789ABCDEF",
  "emoji": "👍",
  "action": "added"
}

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

GET /instance/{instanceId}/groups

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

GET /instance/{instanceId}/groups/{groupId}

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

POST /instance/{instanceId}/groups

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

POST /instance/{instanceId}/groups/join

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

DELETE /instance/{instanceId}/groups/{groupId}/leave

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

GET /instance/{instanceId}/groups/{groupId}/invite-link

Retorna o link de convite atual do grupo.

Revogar e Gerar Novo Link

POST /instance/{instanceId}/groups/{groupId}/invite-link/revoke

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

Todos os endpoints de participantes
Recebem o mesmo body: { "participants": ["5511999...", "5511888..."] }

Adicionar

POST /instance/{instanceId}/groups/{groupId}/participants/add

Remover

DELETE /instance/{instanceId}/groups/{groupId}/participants/remove

Promover a Admin

POST /instance/{instanceId}/groups/{groupId}/participants/promote

Rebaixar Admin

POST /instance/{instanceId}/groups/{groupId}/participants/demote
# 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

PUT /instance/{instanceId}/groups/{groupId}/name

Body: { "name": "Novo Nome" }

Alterar Descrição

PUT /instance/{instanceId}/groups/{groupId}/description

Body: { "description": "Nova descrição" }

Alterar / Remover Foto

PUT /instance/{instanceId}/groups/{groupId}/photo

Envie a imagem via multipart/form-data no campo photo, ou via JSON com o campo image em base64.

DELETE /instance/{instanceId}/groups/{groupId}/photo

Remove a foto atual do grupo.

Permissões de Envio e Edição

PUT /instance/{instanceId}/groups/{groupId}/settings
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)

PUT /instance/{instanceId}/groups/{groupId}/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

GET /instance/{instanceId}/check-number?phone={phone}

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)
Importante
Utilize essa API sempre que quiser verificar se um número possui WhatsApp, geralmente para validação de formulários. Não utilize essa API caso queira fazer uma verificação antes de enviar uma mensagem. A utilização desse método para esse fim pode gerar problemas, visto que a verificação ficaria duplicada. Esta API não foi desenvolvida para disseminação de spam para contatos que você não conhece — utilize com sabedoria!
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";
?>
Exemplo de resposta
[
  {
    "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