Wow! Redução de 65% no preço para clientes brasileiros! Registre-se agora
Capacidades da WhatsApp API

Tudo o que você pode automatizar no WhatsApp

Uma única REST API para cada superfície de automação do WhatsApp: endpoints JSON, eventos em tempo real e documentação completa.

Ir para uma seção:

3.300+ clientes 5.500+ canais ativos

Documentação da API

Whapi REST API: JSON requests, webhooks, and developer docs
Balão decorativo
Sem migração de número: use qualquer conta do WhatsApp que você já tenha.

Comece em 3 passos simples

Icon

Vincule seu número via código QR

Conecte qualquer WhatsApp pessoal ou Business, assim como no WhatsApp Web. Comece no sandbox gratuito para conectar e testar.

Icon

Envie sua primeira solicitação de API

Use seu token no sandbox, curl ou Postman. Uma única REST API para mensagens, grupos, canais e muito mais.

Icon

Adicione webhooks quando precisar de eventos

Receba mensagens e eventos do WhatsApp em tempo real: configure apenas os eventos que seu aplicativo utiliza.

WhatsApp API Grouping Messages and Management

Automatize Grupos e Comunidades

Automatize os grupos do WhatsApp a partir do seu backend: publique mensagens, leia chats de grupo, adicione ou remova participantes e gerencie administradores sem abrir o aplicativo. Exporte os números de telefone dos membros para sincronizar com seu CRM e dimensione o onboarding de seus usuários. Quando um único grupo for pequeno para você, gerencie Comunidades com subgrupos vinculados usando a mesma REST API para ambos. Guia de Groups API →

Publique mensagens de texto, mídia ou interativas em grupos e leia os chats recebidos, incluindo grupos de anúncios.

Adicione ou remova participantes, altere administradores, crie links de convite e exporte os numbers dos membros.

Gerencie Comunidades com subgrupos vinculados. Envie anúncios, modere subgrupos, gerencie eventos e organize os membros de forma programática.

Monitore a entrada de membros, novas mensagens e outras alterações nos grupos através de webhooks.

Canais do WhatsApp via API

Crie e gerencie Canais do WhatsApp a partir do seu backend: publique mensagens, atribua administradores e leia reações sem abrir o aplicativo. Publique de forma cruzada notícias, notas de lançamento e alertas de ofertas a partir do seu site, Telegram ou CRM. As publicações em canais não possuem tarifas por mensagem. Visão geral da Channel API →

Publique textos, fotos, vídeos, enquetes, testes e perguntas de forma programada ou a partir de outra fonte de dados.

Abra novos canais e atribua administradores a partir da API, sem a necessidade de configurar cada um manualmente no aplicativo.

Leia as publicações e as reações para poder sincronizá-las com um site ou um painel de controle.
WhatsApp Channel API
WhatsApp API messaging, catalog, and media

Mensagens e Comércio Eletrônico

Engaje seus clientes com mensagens diretas ilimitadas e ferramentas integradas de comércio eletrônico. Envie arquivos de mídia, botões interativos e catálogos de produtos diretamente no chat, sem tarifas por mensagem e sem necessidade de pré-aprovação de modelos. Crie chatbots inteligentes, sincronize pedidos com seu CRM e gerencie todo o funil de vendas em uma única API.

Exiba produtos e categorias no chat, sincronize carrinhos de compras e reaja aos pedidos que os clientes realizam no WhatsApp.

Envie texto, documentos, mensagens de voz, localização, cartões de contato, stickers, botões e links com visualização prévia, com a opção de incluir cabeçalhos e rodapés.

Reações com emojis, respostas citadas, confirmações de leitura e indicadores de digitação ou gravação de áudio.

Integre mensagens, chats, contatos e detalhes de numbers em seu CRM. Exporte catálogos, produtos e pedidos.
Experimente grátis

Status e Histórias (Stories)

Atraia seu público com atualizações automatizadas de Status do WhatsApp (Stories). Publique imagens, vídeos ou texto com fundos coloridos personalizados de forma programática. Desbloqueie um canal de marketing poderoso que está ausente na maioria das APIs oficiais do WhatsApp.

Envie imagens, vídeos ou texto para o Status, incluindo publicações de apenas texto com fundos coloridos e fontes personalizadas. Alcance qualquer número de destinatários que escolher.

Acompanhe as visualizações de suas publicações de Status e obtenha as histórias de seus contatos de forma programática para análises e fluxos de engajamento.
Experimente grátis
WhatsApp Status and Stories API

Também pode automatizar

Ferramentas utilitárias integradas em uma API clara e amigável para desenvolvedores: comece rapidamente com qualquer ação. Automatize chamadas de voz, enquetes, verificação de numbers e etiquetas de chat, tudo incluído na sua assinatura e sem taxas adicionais.

Eventos de chamadas

Inicie chamadas em grupo, dispare chamadas de saída, rejeite chamadas recebidas e receba eventos de chamadas em webhooks: perdidas, atendidas e chamando.

Enquetes

Crie enquetes em chats e grupos e reaja quando as pessoas votarem.

Verificação de numbers

Verifique se um número de telefone possui uma conta ativa do WhatsApp antes de enviar mensagens.

Etiquetas comerciais

Marque chats a partir da API: ideal para etapas de CRM e filas de suporte técnico.

WhatsApp webhooks and real-time events

Capacidades avançadas de Webhooks

Receba eventos do WhatsApp em seu servidor em tempo real: novas mensagens, alterações em grupos, publicações em canais e pedidos. Conecte múltiplas URLs para distribuir a carga de trabalho entre diferentes serviços e assine apenas os eventos que você precisa. Se o seu servidor cair, reentregamos automaticamente. Documentação de Webhooks →

Escolha apenas os tipos de eventos que seu aplicativo precisa.

  • Mensagens e status: mensagens novas, editadas ou excluídas e status de entrega.
  • Chats e usuários: novos chats e atualizações de perfis de usuário.
  • Grupos e contatos: novos grupos, entrada de membros e alterações em contatos.
  • Canais e comunidades: publicações, reações e atualizações de membros.
  • Pedidos e produtos: novos pedidos, carrinhos abandonados e alterações em produtos.

Configure o método de entrega, as tentativas e a segurança, não apenas o destino dos eventos.

  • Métodos HTTP: POST, PUT, PATCH ou DELETE por tipo de evento.
  • Tentativas: reenvio automático com retrocesso exponencial se o seu endpoint estiver fora do ar.
  • Cabeçalho de autenticação: adicione um token secreto para que apenas o seu servidor aceite eventos.
  • Múltiplas URLs: direcione diferentes tipos de eventos para diferentes serviços.

Segurança e saúde do número

Proteja seus numbers com ferramentas de segurança proativas e infraestrutura dedicada. O sistema antispam baseado em IA do WhatsApp é agressivo: os bloqueios temporários e permanentes são comuns e dependem de como você utiliza o número (envios em massa, prospecção fria e como os destinatários reagem). Não prometemos risco zero: oferecemos ferramentas para escalar com mais segurança, como proxies regionais isolados, um módulo de aquecimento integrado e um Medidor de Segurança de Atividade em tempo real.

Cada canal recebe um proxy regional dedicado e uma porta de conexão exclusiva. Se uma conta tiver problemas, as outras permanecem isoladas.

O módulo de aquecimento simula conversas naturais entre numbers em segundo plano, para que o número tenha um histórico de uso antes de realizar envios em massa. Incluído no preço da API — saiba mais sobre o aquecimento.

Uma pontuação diária da atividade do número, baseada no volume de envios e chats recentes. Use-o antes de escalar ou faça uma pausa quando o medidor de risco estiver alto.
Experimente grátis
WhatsApp number safety and channel isolation
WhatsApp API integrations and connectors

Integrações e conectores

Um único token de API para chamadas REST, módulos Make/n8n e ferramentas de agentes: conecte a Whapi a qualquer pilha de tecnologia.

Documentação, Postman e exemplos prontos para usar. Um único token, entrada e saída em JSON. Documentação da API →

Módulos nativos para Make.com e n8n. Zapier, IFTTT e Pabbly Connect funcionam por meio de solicitações HTTP padrão e webhooks. Google Sheets e DialogFlow também estão disponíveis.

Forneça ferramentas do WhatsApp ao Cursor, Claude Desktop ou agentes personalizados por meio do WhatsApp MCP: envie mensagens, liste chats, configure webhooks e busque IDs de chat. Ou carregue o AI Agent Skill para que o agente utilize a API corretamente desde o início.

Integre a API em qualquer linguagem de programação, é fácil!

                                            
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "15056482143",
  "body": "Hello, world!"
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  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([
    'to' => '15056482143',
    'body' => 'Hello, world!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "15056482143",
    "body": "Hello, world!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '15056482143', body: 'Hello, world!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"to":"15056482143","body":"Hello, world!"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{"to":"15056482143","body":"Hello, world!"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "[email protected]",
  "body": "Hello, group!"
}
'
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  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([
    'to' => '[email protected]',
    'body' => 'Hello, group!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "[email protected]",
    "body": "Hello, group!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '[email protected]', body: 'Hello, group!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/chats?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/chats?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/chats?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/chats?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/chats?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/chats?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/messages/list?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/list?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/list?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/list?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/list?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/list?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/groups' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/groups",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/groups"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/groups';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request POST \
     --url https://gate.whapi.cloud/contacts \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "force_check": false,
  "contacts": [
    "919984351847",
    "61371989950"
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts",
  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([
    'force_check' => false,
    'contacts' => ['919984351847', '61371989950']
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts"

payload = {
    "force_check": False,
    "contacts": ["919984351847", "61371989950"]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts';
const payload = {
  force_check: false,
  contacts: ['919984351847', '61371989950'],
};

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"force_check":false,"contacts":["919984351847","61371989950"]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{"force_check":false,"contacts":["919984351847","61371989950"]}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url https://gate.whapi.cloud/contacts/ids/118876465958956%40lid \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts/ids/118876465958956%40lid';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request PATCH \
     --url 'https://gate.whapi.cloud/settings' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "callback_backoff_delay_ms": 3000,
  "max_callback_backoff_delay_ms": 900000,
  "callback_persist": true,
  "webhooks": [
    {
      "headers": {
        "myKey": "secret-key"
      },
      "mode": "body",
      "events": [
        {
          "type": "messages",
          "method": "post"
        },
        {
          "type": "statuses",
          "method": "post"
        },
        {
          "type": "groups",
          "method": "patch"
        }
      ],
      "url": ""
    }
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/settings",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => json_encode([
    'callback_backoff_delay_ms' => 3000,
    'max_callback_backoff_delay_ms' => 900000,
    'callback_persist' => true,
    'webhooks' => [
        [
                'headers' => ['myKey' => 'secret-key'],
                'mode' => 'body',
                'events' => [
                                ['type' => 'messages', 'method' => 'post'],
                                ['type' => 'statuses', 'method' => 'post'],
                                ['type' => 'groups', 'method' => 'patch']
                ],
                'url' => ''
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/settings"

payload = {
    "callback_backoff_delay_ms": 3000,
    "max_callback_backoff_delay_ms": 900000,
    "callback_persist": True,
    "webhooks": [
        {
            "headers": {"myKey": "secret-key"},
            "mode": "body",
            "events": [
                {"type": "messages", "method": "post"},
                {"type": "statuses", "method": "post"},
                {"type": "groups", "method": "patch"}
            ],
            "url": ""
        }
    ]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/settings';
const payload = {
  callback_backoff_delay_ms: 3000,
  max_callback_backoff_delay_ms: 900000,
  callback_persist: true,
  webhooks: [
    {
      headers: { myKey: 'secret-key' },
      mode: 'body',
      events: [
        { type: 'messages', method: 'post' },
        { type: 'statuses', method: 'post' },
        { type: 'groups', method: 'patch' },
      ],
      url: '',
    },
  ],
};

const response = await fetch(url, {
  method: 'PATCH',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/settings")
  .patch(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/settings");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", false);
var response = await client.PatchAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        

Use nossos guias com código-fonte para um início fácil

Guias passo a passo com código para copiar e colar para Python, PHP, Node.js e Java, além de bots de código aberto, verificadores e modelos de automação no GitHub. Faça um fork de um repositório e lance mais rápido. Explore mais de 20 repositórios no GitHub →

Meta Cloud API vs Whapi.Cloud API — o que você recebe

Os mesmos critérios de decisão que em nosso guia completo: modelo de custos, onboarding, escopo de recursos e compensações operacionais entre a Cloud API da Meta e a Whapi.Cloud.

Meta Cloud API Whapi.Cloud API
Preços e onboarding
Modelo de custo de saída Tarifas por mensagem (categoria + mercado) Assinatura fixa, sem tarifas da Meta
Previsibilidade de preços Variável (limites, leilões) Custo mensal previsível
Velocidade de onboarding Verificação de múltiplas etapas e modelos Escaneamento QR: minutos para a primeira mensagem
Modelos de mensagens Necessário para a maioria das mensagens de saída Não necessário: envie qualquer tipo de mensagem para qualquer pessoa
Recursos e acesso
Grupos do WhatsApp Limitado: 8 membros, enterprise Grupos de API completos (1024–2048)
Canais e status Não disponível Acesso completo à API
Verificação de existência de número Não disponível Disponível
Aplicativo de telefone + API no mesmo número Coexistência limitada Multidispositivo, o aplicativo continua utilizável
Recursos nativos (catálogos, carrinhos) Mensagens básicas apenas Grupos, canais, status, catálogos
Risco e operações
Restriciones de categoria comercial Filtros de categoria da Meta Use qualquer número que você já tenha
Moderação de mensagens Pré/pós-moderação da Meta Sem pré-moderação
Perfil de banimento / restrição Restrições de múltiplas etapas Bloqueios temporários, frequentemente recuperáveis
Ferramentas de aquecimento e segurança Não disponível Aquecimento + Medidor de Segurança
API de VoIP / chamadas Telefonia em nuvem da Meta Mensagens REST apenas

Guia de comparação completo →

Escolhido por desenvolvedores

Confiado por mais de 3.300 desenvolvedores e equipes SaaS

Desenvolvedores no mundo inteiro utilizam o Whapi.Cloud para criar automações, bots, integrações com CRM, ferramentas de envio em massa e fluxos avançados de WhatsApp. Nossa infraestrutura processa milhões de requisições API com alta estabilidade — e esse número cresce a cada mês.

Ícone de recurso

5,5K+

canais de API ativos

Ícone de recurso

21M+

requisições API por mês

“Tudo é simples, intuitivo e fácil de navegar. A documentação é clara e todas as informações estão bem à mão. Trabalho excelente.”

Roberto K. / Desenvolvedor Web

“Conectamos o WhatsApp aos nossos fluxos usando o n8n em apenas alguns minutos. Sem código, sem complicações — funcionou de primeira.”

Martin P. / Desenvolvedor

“O Whapi.Cloud se tornou uma parte essencial da nossa comunicação com clientes. Automatizamos atualizações de produtos, notificações de pedidos e mensagens de suporte — tudo sem templates nem aprovações da Meta.”

Oscar T. / CTO

Balão decorativo
Capacidades da WhatsApp API

Perguntas Frequentes

A Whapi.Cloud cobre mensagens (texto, mídia, catálogos, reações), grupos e comunidades, canais do WhatsApp, status, contatos e chats, webhooks para eventos em tempo real e integrações com ferramentas de automação. Cada seção desta página se alinha às capacidades da API que você pode chamar via HTTPS.
Não. Você pode começar sem um fluxo de aprovação externo ou biblioteca de modelos de mensagens. Vincule seu número do WhatsApp a um canal e envie mensagens de conversação por meio da API imediatamente.
Sim. Vincule seu número atual via código QR ou código de emparelhamento em Dispositivos Vinculados do WhatsApp. Não há migração de número e você pode alterar o número vinculado mais tarde, se necessário.
Sim. Crie e gerencie grupos, adicione ou remova participantes, envie mensagens de grupo, trabalhe com comunidades e automatize os canais do WhatsApp: publicação, gerenciamento de administradores e leitura de dados de canais são suportados por meio da API.
Configure uma URL de webhook HTTPS em seu canal. Quando ocorrem eventos (novas mensagens, status de entrega, alterações no grupo e mais), a Whapi.Cloud envia uma carga útil POST para o seu endpoint para que seu aplicativo reaja instantaneamente sem consultas contínuas.
Sim. Use conectores nativos para Make.com e n8n, ou chame a API REST a partir de qualquer linguagem ou plataforma. Zapier, IFTTT e ferramentas semelhantes funcionam por meio de solicitações HTTP padrão e webhooks.
Sim. O plano Sandbox permite vincular um número e testar os principais métodos da API com cotas diárias e mensais. Atualize quando precisar de volume de produção sem os limites estritos do sandbox.
A Whapi.Cloud usa um preço mensal fixo por canal conectado (número), não por mensagem ou por conversa. As solicitações de API não são medidas separadamente nos planos pagos.
Qualquer automação pode acarretar um risco de restrições do WhatsApp se os padrões de envio parecerem spam. O risco depende do volume, do ritmo, da reputação do número e da qualidade da mensagem. Fornecemos ferramentas de aquecimento, orientação de segurança e suporte para revisar casos quando ocorrem problemas.
Whapi.Cloud - Comece de graça!

WhatsApp API Preços

Faturado mensalmente

Faturado anualmente

Developer Sandbox

Grátis para desenvolvimento

Funcionalidade completa da API para testes e desenvolvimento, com limites de uso aplicados

  • Até 5 conversas ativas por mês

  • Até 150 mensagens por dia

  • Até 30 verificações de números do WhatsApp por dia

  • Até 1.000 requisições de API por mês

  • Atividade periódica obrigatória

  • Suporte padrão (não prioritário)

Comece o teste gratuito
Developer Premium

R$ 49 / por mês

R$ 140
65% de desconto

Um serviço estável e confiável para cargas de trabalho em produção, com suporte prioritário

  • Mensagens e mídia ilimitadas

  • Acesso completo a Grupos, Canais e Webhooks

  • Sem cobrança por mensagem

  • Suporte ao vivo prioritário e tratamento de incidentes mais rápido

  • Módulo automático de aquecimento de número

  • Ferramentas integradas e integrações de automação

  • Adequado para fluxos de trabalho de produção estáveis e de longo prazo

Preço por número do WhatsApp. Descontos para vários números.

Selecionado: 1

1

Preço por número

Comece o teste gratuito
Teste de
5 dias