Usando a API da ZapMe
Introdução
Como mencionado em páginas anteriores, você pode consumir a API da ZapMe de duas maneiras: manualmente, por requisições HTTP, ou utilizando uma coleção do Postman. Clique aqui caso queira acessar a coleção do Postman.
Nesta página iremos demonstrar a você como consumir a API manualmente, utilizando requisições HTTP através da linguagem PHP, considerando o uso do pacote guzzlehttp/guzzle
, a biblioteca PHP mais famosa para requisições HTTP. Considere ler a documentação oficial do Guzzle para saber como utilizar a biblioteca.
TIP
Embora os exemplos abaixo sejam em PHP, você pode adaptar o código para qualquer outra linguagem de programação que suporte requisições HTTP, como Python, JavaScript, Ruby, entre outras.
Observações Importantes
Antes de começar, é importante que você saiba que:
- A API da ZapMe não possui "rate limite".
- Você deve se certificar de usar
HTTPS (https://)
nas requisições.
/status
Obtém um resumo geral da conta.
Requisição
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$response = $client->get('/status', [
'query' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$response = $client->post('/status', [
'json' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
Resposta
{
"status": true,
"result": "success",
"date": "2025-06-06 13:53:49",
"data": {
"service": {
"plan": "Plano Mensal",
"duedate": "2025-01-01",
"status": "active"
},
"auth": {
"status": true,
"authenticated_at": "2024-09-09 19:27:46",
"phone": "5511985850202"
}
}
}
/messages
Obtém a lista de mensagens enviadas.
Requisição
use GuzzleHttp\Client;
require __DIR__ . '/vendor/autoload.php';
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$response = $client->get('/messages', [
'query' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
'paginate' => true,
'quantity' => 1,
'page' => 1,
]
]);
$data = json_decode($response->getBody()->getContents(), true);
Observações
WARNING
Quando paginate
for false
, a API limita o retorno em 50 mensagens.
Resposta
{
"status": true,
"result": "success",
"date": "2025-06-06 14:00:21",
"data": [
{
"id": 1353,
"hash": "13022d3df08322edcf5b",
"message": "Mensagem de teste",
"phone": "5544988436253",
"status": "message_sent",
"created_at": "2025-04-01 08:00:03",
"updated_at": "2025-04-01 08:00:03",
"delivered_at": "2025-04-01 08:00:23"
}
]
}
/messages/{id}
Obtém os detalhes de uma mensagem enviada.
Requisição
use GuzzleHttp\Client;
require __DIR__ . '/vendor/autoload.php';
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$id = "142312";
$response = $client->get('/messages/'.$id, [
'query' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
Resposta
{
"status": true,
"result": "success",
"date": "2025-06-06 14:00:21",
"data": [
{
"id": "142312",
"hash": "13022d3df08322edcf5b",
"message": "Mensagem de teste",
"phone": "5544988436253",
"status": "message_sent",
"created_at": "2025-04-01 08:00:03",
"updated_at": "2025-04-01 08:00:03",
"delivered_at": "2025-04-01 08:00:23"
}
]
}
/messages/create
Envia uma nova mensagem.
Requisição
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$response = $client->get('/messages/create', [
'query' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
'phone' => 'TELEFONE_DESTINO',
'message' => 'MENSAGEM_A_SER_ENVIADA',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
$response = $client->post('/messages/create', [
'json' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
'phone' => 'TELEFONE_DESTINO',
'message' => 'MENSAGEM_A_SER_ENVIADA',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
Resposta
{
"status": true,
"result": "message_sent",
"date": "2025-06-06 14:04:06",
"data": "mensagem enviada"
}
Opcionalmente, você enviar anexar arquivos ao envio da mensagem:
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
// Exemplo usando POST
$response = $client->post('/messages/create', [
'json' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
'phone' => 'TELEFONE_DESTINO',
'message' => 'MENSAGEM_A_SER_ENVIADA',
'file_content' => base64_encode(file_get_contents('arquivo.pdf')),
'file_extension' => 'pdf',
]
]);
$data = json_decode($response->getBody()->getContents(), true);
WARNING
Os arquivos suportados são: pdf
, png
ou jpg
em formato base64
. Como o base64
de um arquivo pode ser uma string muito grande, é preferível que você utilize o método POST
para o envio de mensagens com anexo de arquivos.
Além disso, você pode usar um template de mensagem criado na ZapMe:
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.zapme.com.br/'
]);
// Exemplo usando POST
$response = $client->post('/messages/create', [
'json' => [
'api' => 'SUA_API',
'secret' => 'SUA_CHAVE_SECRETA',
'phone' => 'TELEFONE_DESTINO',
// 'message' => 'MENSAGEM_A_SER_ENVIADA',
'template' => "22312",
]
]);
$data = json_decode($response->getBody()->getContents(), true);
WARNING
Para usar um template no envio da mensagem, não envie o campo message
, mas sim template
com o ID do template criado na ZapMe. Caso o template possua arquivos, eles serão automaticamente anexados ao envio da mensagem.