Base URL
Atualize a variável de ambiente da sua base URL ou a configuração do seu cliente HTTP para o seguinte:Autenticação
Passe sua chave de API do Pilot Status no cabeçalhoapikey, exatamente como a Evolution V2 espera:
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).
POST /message/sendTemplate/{instance} — Enviar template
POST /message/sendTemplate/{instance} — Enviar template
POST /message/sendText/{instance} — Enviar texto
POST /message/sendText/{instance} — Enviar texto
POST /message/sendMedia/{instance} — Enviar mídia
POST /message/sendMedia/{instance} — Enviar mídia
POST /message/sendPtv/{instance} — Enviar nota de vídeo
POST /message/sendPtv/{instance} — Enviar nota de vídeo
POST /message/sendWhatsAppAudio/{instance} — Enviar áudio de voz
POST /message/sendWhatsAppAudio/{instance} — Enviar áudio de voz
POST /message/sendStatus/{instance} — Enviar status
POST /message/sendStatus/{instance} — Enviar status
POST /message/sendSticker/{instance} — Enviar figurinha
POST /message/sendSticker/{instance} — Enviar figurinha
POST /message/sendLocation/{instance} — Enviar localização
POST /message/sendLocation/{instance} — Enviar localização
POST /message/sendContact/{instance} — Enviar contato
POST /message/sendContact/{instance} — Enviar contato
POST /message/sendReaction/{instance} — Enviar reação
POST /message/sendReaction/{instance} — Enviar reação
POST /message/sendPoll/{instance} — Enviar enquete
POST /message/sendPoll/{instance} — Enviar enquete
POST /message/sendList/{instance} — Enviar lista
POST /message/sendList/{instance} — Enviar lista
POST /message/sendCarousel/{instance} — Enviar carrossel
POST /message/sendCarousel/{instance} — Enviar carrossel
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.
POST /chat/whatsappNumbers/{instance} — Verificar números de WhatsApp
POST /chat/whatsappNumbers/{instance} — Verificar números de WhatsApp
POST /chat/markMessageAsRead/{instance} — Marcar mensagens como lidas
POST /chat/markMessageAsRead/{instance} — Marcar mensagens como lidas
POST /chat/archiveChat/{instance} — Arquivar ou desarquivar conversa
POST /chat/archiveChat/{instance} — Arquivar ou desarquivar conversa
POST /chat/markChatUnread/{instance} — Marcar conversa como não lida
POST /chat/markChatUnread/{instance} — Marcar conversa como não lida
DELETE /chat/deleteMessageForEveryone/{instance} — Apagar mensagem para todos
DELETE /chat/deleteMessageForEveryone/{instance} — Apagar mensagem para todos
POST /chat/getBase64FromMediaMessage/{instance} — Obter mídia como base64
POST /chat/getBase64FromMediaMessage/{instance} — Obter mídia como base64
POST /chat/updateMessage/{instance} — Editar mensagem enviada
POST /chat/updateMessage/{instance} — Editar mensagem enviada
POST /chat/sendPresence/{instance} — Enviar atualização de presença
POST /chat/sendPresence/{instance} — Enviar atualização de presença
POST /chat/updateBlockStatus/{instance} — Bloquear ou desbloquear contato
POST /chat/updateBlockStatus/{instance} — Bloquear ou desbloquear contato
GET /chat/findChatByRemoteJid/{instance} — Buscar conversa por JID
GET /chat/findChatByRemoteJid/{instance} — Buscar conversa por JID
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.POST /chat/findContacts/{instance} — Buscar contatos
POST /chat/findContacts/{instance} — Buscar contatos
where. Envie um corpo vazio para retornar todos os contatos.POST /chat/findMessages/{instance} — Buscar mensagens
POST /chat/findMessages/{instance} — Buscar mensagens
where e limitadas por limit.POST /chat/findStatusMessage/{instance} — Buscar status de mensagens
POST /chat/findStatusMessage/{instance} — Buscar status de mensagens
where e limitadas por limit.POST /chat/findChats/{instance} — Buscar conversas
POST /chat/findChats/{instance} — Buscar conversas
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.
POST /chat/fetchProfilePictureUrl/{instance} — Obter URL da foto de perfil
POST /chat/fetchProfilePictureUrl/{instance} — Obter URL da foto de perfil
POST /chat/fetchBusinessProfile/{instance} — Obter perfil comercial
POST /chat/fetchBusinessProfile/{instance} — Obter perfil comercial
POST /chat/fetchProfile/{instance} — Obter perfil do contato
POST /chat/fetchProfile/{instance} — Obter perfil do contato
POST /chat/updateProfileName/{instance} — Atualizar o próprio nome de exibição
POST /chat/updateProfileName/{instance} — Atualizar o próprio nome de exibição
POST /chat/updateProfileStatus/{instance} — Atualizar o próprio texto de status
POST /chat/updateProfileStatus/{instance} — Atualizar o próprio texto de status
POST /chat/updateProfilePicture/{instance} — Atualizar a própria foto de perfil
POST /chat/updateProfilePicture/{instance} — Atualizar a própria foto de perfil
DELETE /chat/removeProfilePicture/{instance} — Remover a própria foto de perfil
DELETE /chat/removeProfilePicture/{instance} — Remover a própria foto de perfil
{instance}.Sem corpo de requisição.GET /chat/fetchPrivacySettings/{instance} — Obter configurações de privacidade
GET /chat/fetchPrivacySettings/{instance} — Obter configurações de privacidade
{instance}.Sem corpo de requisição.POST /chat/updatePrivacySettings/{instance} — Atualizar configurações de privacidade
POST /chat/updatePrivacySettings/{instance} — Atualizar configurações de privacidade
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).
POST /group/create/{instance} — Criar grupo
POST /group/create/{instance} — Criar grupo
POST /group/updateGroupSubject/{instance} — Atualizar assunto
POST /group/updateGroupSubject/{instance} — Atualizar assunto
POST /group/updateGroupPicture/{instance} — Atualizar foto
POST /group/updateGroupPicture/{instance} — Atualizar foto
POST /group/updateGroupDescription/{instance} — Atualizar descrição
POST /group/updateGroupDescription/{instance} — Atualizar descrição
GET /group/findGroupInfos/{instance} — Obter informações do grupo
GET /group/findGroupInfos/{instance} — Obter informações do grupo
groupJid (ex.: ?groupJid=120363000000000000@g.us).Sem corpo de requisição.GET /group/fetchAllGroups/{instance} — Listar todos os grupos
GET /group/fetchAllGroups/{instance} — Listar todos os grupos
getParticipants ("true" ou "false") controla se a lista de participantes de cada grupo é incluída.Sem corpo de requisição.GET /group/participants/{instance} — Listar participantes
GET /group/participants/{instance} — Listar participantes
groupJid.Sem corpo de requisição.GET /group/inviteCode/{instance} — Obter código de convite
GET /group/inviteCode/{instance} — Obter código de convite
groupJid.Sem corpo de requisição.GET /group/inviteInfo/{instance} — Obter informações do convite
GET /group/inviteInfo/{instance} — Obter informações do convite
inviteCode (ex.: ?inviteCode=F1EX5QZxO181L3TMVP31gY).Sem corpo de requisição.GET /group/acceptInviteCode/{instance} — Aceitar convite
GET /group/acceptInviteCode/{instance} — Aceitar convite
inviteCode.Sem corpo de requisição.POST /group/sendInvite/{instance} — Enviar convite
POST /group/sendInvite/{instance} — Enviar convite
POST /group/revokeInviteCode/{instance} — Revogar convite
POST /group/revokeInviteCode/{instance} — Revogar convite
POST /group/updateParticipant/{instance} — Atualizar participantes
POST /group/updateParticipant/{instance} — Atualizar participantes
POST /group/updateSetting/{instance} — Atualizar configuração
POST /group/updateSetting/{instance} — Atualizar configuração
POST /group/updateMemberAddMode/{instance} — Atualizar modo de adição de membros
POST /group/updateMemberAddMode/{instance} — Atualizar modo de adição de membros
POST /group/toggleEphemeral/{instance} — Alternar mensagens temporárias
POST /group/toggleEphemeral/{instance} — Alternar mensagens temporárias
DELETE /group/leaveGroup/{instance} — Sair do grupo
DELETE /group/leaveGroup/{instance} — Sair do grupo
groupJid.Sem corpo de requisição.Etiqueta (Label)
Gerencie as etiquetas de conversas do WhatsApp de um número conectado.GET /label/findLabels/{instance} — Listar etiquetas
GET /label/findLabels/{instance} — Listar etiquetas
{instance} (o nome de exibição do número).Sem corpo de requisição.POST /label/handleLabel/{instance} — Adicionar ou remover etiqueta
POST /label/handleLabel/{instance} — Adicionar ou remover etiqueta
{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.
POST /template/create/{instance} — Criar template
POST /template/create/{instance} — Criar template
POST /template/edit/{instance} — Editar template
POST /template/edit/{instance} — Editar template
DELETE /template/delete/{instance} — Excluir template
DELETE /template/delete/{instance} — Excluir template
GET /template/find/{instance} — Listar templates
GET /template/find/{instance} — Listar templates
Configurações e Proxy
Configure as opções de comportamento por número e o proxy de saída para a instância conectada.POST /settings/set/{instance} — Atualizar configurações
POST /settings/set/{instance} — Atualizar configurações
{instance}.GET /settings/find/{instance} — Ler configurações
GET /settings/find/{instance} — Ler configurações
{instance}.Sem corpo de requisição.POST /proxy/set/{instance} — Configurar proxy
POST /proxy/set/{instance} — Configurar proxy
{instance}.GET /proxy/find/{instance} — Ler proxy
GET /proxy/find/{instance} — Ler proxy
{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.POST /call/offer/{instance} — Oferecer uma chamada
POST /call/offer/{instance} — Oferecer uma chamada
POST /business/getCatalog/{instance} — Buscar catálogo de produtos
POST /business/getCatalog/{instance} — Buscar catálogo de produtos
POST /business/getCollections/{instance} — Buscar coleções
POST /business/getCollections/{instance} — Buscar coleções
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):
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).
POST /s3/getMedia/{instance} — Listar mídias armazenadas
POST /s3/getMedia/{instance} — Listar mídias armazenadas
POST /s3/getMediaUrl/{instance} — Obter URL de mídia pré-assinada
POST /s3/getMediaUrl/{instance} — Obter URL de mídia pré-assinada
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):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.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 comoSupportLine no painel, suas requisições devem usar: