Skip to main content
A Camada de API Evolution V2 do Pilot Status é uma ponte de compatibilidade transparente para aplicações construídas sobre a Evolution API V2. Alterar sua base URL para o endpoint da camada do Pilot Status é tudo o que é necessário para migrar sua infraestrutura — seus corpos de requisição, parsing de respostas, handlers de webhook e cabeçalhos de autenticação permanecem exatamente como estão.

Base URL

Atualize a variável de ambiente da sua base URL ou a configuração do seu cliente HTTP para o seguinte:
Cada caminho que você chama atualmente no seu servidor Evolution V2 é anexado a esta base URL sem qualquer modificação.

Autenticação

Passe sua chave de API do Pilot Status no cabeçalho apikey, exatamente como a Evolution V2 espera:
Você não precisa alterar nenhuma lógica de autenticação na sua aplicação — apenas o valor da chave de API precisa ser substituído pela sua chave do Pilot Status.

Operações suportadas

Cada operação abaixo é aceita no formato Evolution V2 e executada no seu número do Pilot Status. Em cada caminho, {instance} é o último segmento do caminho e resolve para o nome de exibição que você deu ao número no painel do Pilot Status. Operações de envio e de mensagem são balanceadas entre as instâncias conectadas do número (sendReaction é a exceção — não é balanceada). Qualquer caminho que não esteja neste catálogo retorna 404; caminhos globais (de servidor) retornam 403 — veja Bloqueado (global) abaixo.

Instância

Mensagem

Envie mensagens de todos os tipos por meio de um número conectado. Todo caminho termina com /{instance}, o nome de exibição do número (um parâmetro de caminho — nunca o coloque no corpo da requisição).
Envia uma mensagem de template aprovado do WhatsApp para um destinatário.
Envia uma mensagem de texto simples, opcionalmente com pré-visualização de link e menções.
Envia uma imagem, vídeo, documento ou arquivo de áudio por URL pública (base64 e upload de arquivo multipart também são suportados).
Envia um PTV (nota de vídeo circular) por URL pública (base64 e upload de arquivo multipart também são suportados).
Envia um áudio de voz/PTT do WhatsApp por URL pública (base64 e upload de arquivo multipart também são suportados).
Publica um status (story) como texto ou mídia por URL pública (upload de arquivo de mídia também é suportado).
Envia uma figurinha por URL pública (base64 e upload de arquivo multipart também são suportados).
Envia um marcador de localização geográfica com nome e endereço.
Envia um ou mais cartões de contato (vCards).
Reage a uma mensagem existente com um emoji.
Envia uma enquete com opções selecionáveis.
Envia uma mensagem de lista interativa com seções e linhas selecionáveis.
Envia uma mensagem de botões interativos. O type de cada botão é um entre reply, copy, url, call, pix.
Envia um carrossel de cartões, cada um com texto, uma miniatura opcional e seus próprios botões.

Chat

Gerencie conversas, mensagens, contatos, presença e status de bloqueio de um número conectado. Em todos os caminhos, {instance} é o nome de exibição do número (um parâmetro de caminho), nunca um campo do corpo.
Verifica se um ou mais números estão registrados no WhatsApp.
Marca uma ou mais mensagens como lidas (envia confirmações de leitura).
Arquiva ou desarquiva uma conversa.
Marca uma conversa como não lida.
Apaga uma mensagem para todos os participantes da conversa.
Baixa uma mensagem de mídia e a retorna como uma string base64.
Edita o texto de uma mensagem enviada anteriormente por este número.
Envia um indicador de presença (digitando, gravando, etc.) para uma conversa.
Bloqueia ou desbloqueia um contato.
Retorna a conversa correspondente ao JID remoto informado. Passe remoteJid como parâmetro de consulta obrigatório (ex.: ?remoteJid=5511999999999@s.whatsapp.net); não há corpo de requisição.Sem corpo de requisição.
Pesquisa os contatos armazenados, opcionalmente filtrados por uma cláusula where. Envie um corpo vazio para retornar todos os contatos.
Pesquisa as mensagens armazenadas, opcionalmente filtradas por uma cláusula where e limitadas por limit.
Pesquisa atualizações de status de entrega/leitura de mensagens, opcionalmente filtradas por uma cláusula where e limitadas por limit.
Retorna as conversas armazenadas, opcionalmente filtradas por uma cláusula where. Envie um corpo vazio para retornar todas as conversas.

Perfil

Leia e atualize o próprio perfil do número conectado (nome, status, foto), inspecione os perfis de outros usuários e gerencie as configurações de privacidade. Em todos os caminhos, {instance} é o nome de exibição do número — nunca o envie no corpo da requisição.
Obtém a URL da foto de perfil de um contato do WhatsApp.
Obtém o perfil do WhatsApp Business (categoria, descrição, e-mail, site) de um número.
Obtém o perfil completo (nome, status, foto, indicador de conta comercial) de um contato.
Atualiza o próprio nome de exibição do WhatsApp do número conectado.
Atualiza o próprio texto de “recado” / status do número conectado.
Atualiza a própria foto de perfil do número conectado a partir de uma URL ou imagem em base64.
Remove a própria foto de perfil do número conectado. Atinge o número identificado pelo parâmetro de caminho {instance}.Sem corpo de requisição.
Retorna as configurações de privacidade atuais do número conectado. Atinge o número identificado pelo parâmetro de caminho {instance}.Sem corpo de requisição.
Atualiza as configurações de privacidade do número conectado; todos os seis campos são obrigatórios.

Grupo

Crie e gerencie grupos do WhatsApp. Todo caminho termina com /{instance}, o nome de exibição do número, passado como parâmetro de caminho (nunca no corpo).
Cria um novo grupo do WhatsApp com um assunto e uma lista inicial de participantes.
Altera o nome/assunto de um grupo existente.
Define a foto de perfil do grupo a partir de uma URL de imagem.
Atualiza o texto da descrição do grupo.
Retorna os metadados de um único grupo. Passe o JID do grupo como parâmetro de consulta groupJid (ex.: ?groupJid=120363000000000000@g.us).Sem corpo de requisição.
Retorna todos os grupos aos quais o número pertence. O parâmetro de consulta obrigatório getParticipants ("true" ou "false") controla se a lista de participantes de cada grupo é incluída.Sem corpo de requisição.
Retorna a lista de participantes de um grupo. Passe o JID do grupo como parâmetro de consulta groupJid.Sem corpo de requisição.
Retorna o código/link de convite atual de um grupo. Passe o JID do grupo como parâmetro de consulta groupJid.Sem corpo de requisição.
Retorna as informações do grupo por trás de um código de convite. Passe o código como parâmetro de consulta inviteCode (ex.: ?inviteCode=F1EX5QZxO181L3TMVP31gY).Sem corpo de requisição.
Entra em um grupo usando um código de convite. Passe o código como parâmetro de consulta inviteCode.Sem corpo de requisição.
Envia o link de convite do grupo para um ou mais números de telefone.
Revoga o link de convite atual e gera um novo.
Adiciona, remove, promove ou rebaixa participantes do grupo.
Atualiza as permissões de mensagens e edição de um grupo.
Controla quem pode adicionar novos membros ao grupo.
Ativa ou desativa as mensagens temporárias do grupo.
Remove o número conectado do grupo. Passe o JID do grupo como parâmetro de consulta groupJid.Sem corpo de requisição.

Etiqueta (Label)

Gerencie as etiquetas de conversas do WhatsApp de um número conectado.
Retorna todas as etiquetas definidas no número identificado pelo parâmetro de caminho {instance} (o nome de exibição do número).Sem corpo de requisição.
Adiciona ou remove uma etiqueta em uma conversa do número identificado pelo parâmetro de caminho {instance}.

Template

Gerencie templates de mensagem do WhatsApp (HSMs) para um número conectado. Em todos os caminhos, {instance} é o nome de exibição do número.
Cria um novo template de mensagem para a instância.
Atualiza um template existente identificado pelo seu ID de template da Meta.
Exclui um template pelo nome (opcionalmente delimitado pelo seu ID de HSM).
Retorna todos os templates registrados para a instância. O nome de exibição da instância é obtido a partir do caminho.Sem corpo de requisição.

Configurações e Proxy

Configure as opções de comportamento por número e o proxy de saída para a instância conectada.
Define as opções de comportamento da instância indicada no parâmetro de caminho {instance}.
Retorna as configurações atuais da instância indicada no parâmetro de caminho {instance}.Sem corpo de requisição.
Define o proxy de saída da instância indicada no parâmetro de caminho {instance}.
Retorna a configuração de proxy atual da instância indicada no parâmetro de caminho {instance}.Sem corpo de requisição.

Chamada e Business

Ofereça uma chamada no WhatsApp e leia o catálogo de produtos e as coleções de um número business conectado.
Oferece uma chamada de voz ou vídeo a um número destinatário por uma duração de toque limitada.
Busca o catálogo de produtos de um número business do WhatsApp.
Busca as coleções do catálogo de um número business do WhatsApp.

Integrações / chatbots

Cada integração de chatbot — evolutionBot, typebot, openai, dify, flowise, n8n e evoai — expõe o mesmo conjunto de endpoints (substitua {name} pelo nome da integração): Extras específicos por integração:

Brokers de eventos

Cada broker — webhook, websocket, rabbitmq, nats, pusher, sqs e kafka — expõe set/find (substitua {name} pelo nome do broker):

Armazenamento (S3)

Recupere as mídias armazenadas no bucket S3/MinIO do número conectado ({instance} é o nome de exibição do número).
Retorna os registros de mídia armazenados para a instância, opcionalmente filtrados pelos campos informados.
Resolve um registro de mídia pelo id e retorna uma URL de download pré-assinada temporária junto com os metadados da mídia.

Bloqueado (global)

Caminhos globais (de servidor) não fazem parte da camada de migração e sempre retornam 403. Isso inclui: GET / (raiz), POST /verify-creds, GET /manager, GET /metrics, GET /assets/*, POST /instance/create e GET /instance/fetchInstances. Provisione e gerencie seus números pelo painel do Pilot Status ou pela API nativa. Qualquer caminho não listado neste catálogo retorna 404.

Eventos

A camada encaminha os eventos recebidos para o webhook que você configurou para o número, no formato nativo da própria Evolution API V2 (nomes de eventos em minúsculas, separados por ponto): Além disso, o Pilot Status pode entregar seus próprios eventos normalizados junto com os nativos: os eventos do ciclo de vida de chamada call.ringing, call.connected, call.ended e call.missed, além dos eventos de ciclo de vida do número number.created, number.connected, number.disconnected e number.removed.

Exemplo: enviar texto via camada Evolution V2

A requisição abaixo é uma chamada padrão de envio de texto da Evolution V2 roteada através da camada do Pilot Status. Observe que o corpo da requisição usa o formato da Evolution V2 sem alterações.
Substitua MyInstance pelo nome de exibição que você atribuiu ao seu número no painel do Pilot Status.

Mapeamento de nome de instância

Na Evolution V2, cada instância representa uma conexão do WhatsApp identificada por um nome. O Pilot Status usa a mesma convenção — o nome da instância no caminho da sua URL mapeia para o nome de exibição que você atribuiu ao seu número ao conectá-lo através do painel do Pilot Status. Por exemplo, se você nomeou seu número como SupportLine no painel, suas requisições devem usar:
Se você tiver múltiplos números, cada um tem seu próprio nome de exibição e se comporta como uma instância separada — consistente com a forma como a Evolution V2 gerencia múltiplas instâncias.
Para novos projetos, considere usar a API nativa do Pilot Status — ela oferece acesso completo a todos os recursos, incluindo integração oficial com a Meta e análises avançadas.
Para orientações gerais de migração e uma visão geral de todos os provedores suportados, veja a visão geral da API Layer.