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:
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:
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.
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.
Adicione webhooks quando precisar de eventos
Receba mensagens e eventos do WhatsApp em tempo real: configure apenas os eventos que seu aplicativo utiliza.
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 →
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 →
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.
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.
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.
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.
Configure o método de entrega, as tentativas e a segurança, não apenas o destino dos eventos.
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.
Um único token de API para chamadas REST, módulos Make/n8n e ferramentas de agentes: conecte a Whapi a qualquer pilha de tecnologia.
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);
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 →
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 |
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.
canais de API ativos
requisições API por mês
Roberto K. / Desenvolvedor Web
Martin P. / Desenvolvedor
Oscar T. / CTO
Faturado mensalmente
Faturado anualmente
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)
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.