API de DM do Instagram: como enviar e automatizar DMs do Instagram

Não existe um produto chamado "API de DM do Instagram". Quando as pessoas pesquisam por isso, falam da parte de mensagens da Plataforma do Instagram da Meta: os endpoints que permitem a um app receber mensagens diretas do Instagram, respondê-las e enviar uma resposta privada a quem comentou em uma publicação. Ela fica sobre a Graph API, usa os mesmos tokens de acesso usados para publicar e comentar e vem com um conjunto de regras que decide a maior parte do que você pode construir.
Este guia é para desenvolvedores e profissionais de marketing técnico que querem enviar ou automatizar DMs do Instagram a partir do próprio código. Ele explica como a API é organizada, o que uma conta e um app precisam ter antes de a primeira mensagem sair, as regras de tempo e o que ela não faz, por mais que você peça. No final, há uma seção curta e honesta sobre quando vale usar uma camada como o Chat33 em vez de construir tudo por conta própria.
Para uma visão mais ampla da plataforma além das mensagens, leia primeiro nosso guia da Instagram Graph API.
O que a API de DM do Instagram realmente é
A Meta oferece as mensagens do Instagram por duas portas que levam, em grande parte, ao mesmo lugar:
- Instagram API com Login do Instagram. O dono da conta entra com o próprio Instagram. Nenhuma Página do Facebook está envolvida. As chamadas vão para
graph.instagram.com. - Mensagens do Instagram com Login do Facebook (documentada historicamente como a Messenger Platform for Instagram). Um usuário do Facebook que administra uma Página vinculada à conta do Instagram faz login, e o app trabalha com tokens de acesso da Página em
graph.facebook.com.
As duas dão os mesmos blocos principais: uma Send API para enviar mensagens a uma conversa, uma Conversations API para ler conversas e mensagens, webhooks que enviam novas mensagens e comentários ao seu servidor e respostas privadas a comentários. Os tipos de mensagem incluem texto, imagens e outras mídias, respostas rápidas, botões e templates genéricos (cartões no estilo de produto), dentro dos limites de cada tipo.
Qual porta usar depende, sobretudo, de quem são seus usuários. Criadores e pequenos negócios que vivem no Instagram costumam preferir o Login do Instagram, porque não exige Página nem configuração do Business Manager. Empresas que já operam tudo pelas ferramentas de negócios da Meta, ou que também querem o Facebook Messenger no mesmo app, costumam acabar no Login do Facebook.
Requisitos da conta
Antes de qualquer chamada à API importar, a própria conta do Instagram precisa estar qualificada:
- Ela precisa ser uma conta profissional, comercial ou de criador. Contas pessoais não têm suporte para mensagens. Mudar é grátis no app do Instagram, e nossa comparação entre conta comercial e de criador ajuda você a escolher.
- Com o Login do Facebook, ela precisa estar vinculada a uma Página do Facebook, e a pessoa que faz login precisa ter na Página uma função que permita gerenciar mensagens.
- O acesso às mensagens para ferramentas conectadas precisa estar permitido. O Instagram tem uma configuração nos controles de mensagens que permite que apps conectados acessem as mensagens. Se ela estiver desligada, seus webhooks ficam em silêncio e ninguém sabe por quê. Verifique isso primeiro ao depurar.
Permissões necessárias
Cada recurso corresponde a uma permissão que o dono da conta concede ao conectar seu app. Os nomes mudam entre os dois tipos de login.
| O que você quer fazer | Login do Instagram | Login do Facebook |
|---|---|---|
| Perfil básico e mídia | instagram_business_basic | instagram_basic, pages_show_list |
| Ler e enviar DMs | instagram_business_manage_messages | instagram_manage_messages, pages_manage_metadata |
| Ler comentários, responder, respostas privadas | instagram_business_manage_comments | instagram_manage_comments |
Apps com Login do Facebook muitas vezes também precisam de business_management, e a documentação de Respostas Privadas da Meta lista pages_messaging para esse recurso. A Meta renomeia e reagrupa permissões de tempos em tempos (os escopos do Login do Instagram substituíram nomes business_* mais antigos no fim de 2024 e no início de 2025), então trate esta tabela como ponto de partida e confira na referência de permissões atual em developers.facebook.com antes de enviar qualquer coisa.
Análise do App e Acesso Avançado
Cada permissão tem dois níveis de acesso. Com o Acesso Padrão, seu app só pode usar uma permissão em contas que tenham uma função no app: você, seus desenvolvedores e seus testadores. Isso basta para construir e testar tudo.
Para usar uma permissão na conta de qualquer outra pessoa, você precisa do Acesso Avançado, o que significa passar pela Análise do App para essa permissão. A análise pede um app funcionando, uma gravação de tela que mostre cada permissão sendo usada de ponta a ponta (em geral começando pelo login e pela conexão da conta) e uma explicação por escrito do motivo de você precisar dela. A verificação da empresa costuma ser exigida também.
Conte com demora. As análises podem voltar em dias ou se arrastar por semanas, e uma rejeição na primeira tentativa é comum. As causas habituais são uma gravação que pula etapas ou um caso de uso que o analista não consegue reproduzir. Até a aprovação, seu produto funciona para suas contas de teste e para mais ninguém.
Webhooks: como você fica sabendo de novas mensagens
A API funciona por eventos. Você não consulta novas DMs a cada instante. Você registra uma URL de webhook, verifica-a uma vez com um desafio que a Meta envia e se inscreve em campos como messages e comments (além de outros para postbacks, reações e eventos de visualização).
A partir daí, a Meta envia um POST ao seu endpoint a cada evento. Algumas coisas importam na prática:
- Verifique a assinatura de cada requisição com o segredo do seu app antes de confiar nela.
- Responda rápido com um 200 e faça o trabalho de verdade em uma fila. Endpoints lentos ou com falha são tentados de novo e, se isso continuar, podem ser desativados.
- Espere duplicatas e ecos. Suas próprias mensagens enviadas podem chegar como eventos de eco, e as novas tentativas podem enviar o mesmo evento duas vezes, então deduplique pelo ID da mensagem.
Os webhooks de comentários são a base da automação de comentário para DM: chega um comentário, seu código procura uma palavra-chave nele e envia uma resposta privada.
A janela de mensagens de 24 horas
Esta é a regra que molda todo o resto. Quando uma pessoa envia uma mensagem à sua conta, abre-se uma janela de 24 horas. Dentro dela, seu app pode enviar mensagens a essa pessoa, inclusive promocionais. Cada nova mensagem dela reinicia o relógio. Quando a janela fecha, mensagens padrão são recusadas até a pessoa escrever de novo.
Há uma exceção que vale conhecer: a tag HUMAN_AGENT. Ela permite que uma pessoa real da sua equipe responda até 7 dias depois da última mensagem do usuário, nos casos em que um humano realmente precisa de mais tempo. Não é um passe livre para a automação. Seu app precisa ter o recurso Human Agent aprovado pela Meta na Análise do App, e a mensagem precisa vir de fato de uma pessoa. Enviar acompanhamentos automáticos com a tag vai contra a política.
Nosso artigo sobre a janela de mensagens de 24 horas aprofunda o que abre e reinicia a janela e como planejar acompanhamentos que ainda chegam.
Respostas privadas a comentários
Uma resposta privada é uma DM enviada em resposta a um comentário. É assim que funciona uma publicação do tipo "comente GUIA e eu mando o link na DM", e ela tem regras próprias:
- Uma mensagem por comentário. Você tem exatamente uma resposta privada. A conversa só continua se a pessoa responder, e a resposta dela abre uma janela normal de 24 horas.
- Em até 7 dias do comentário, para publicações, reels e anúncios. Comentários em transmissões ao vivo só podem receber resposta privada enquanto a live está no ar.
- Ela vai apenas para quem comentou, referenciada pelo ID do comentário, não pelo ID do usuário.
Como você só tem uma chance, essa única mensagem precisa dar conta do recado. A maioria das boas automações de comentário para DM coloca uma pergunta nela, com um botão quando a conexão permite, para que a pessoa tenha um motivo fácil para responder e abrir a janela. Se você também quiser o lado público, uma resposta pública separada embaixo do comentário é permitida e mostra aos outros espectadores que as DMs estão sendo enviadas.
Comentário para DM do Instagram no Chat33Gatilhos de comentário por palavra-chave, respostas privadas, variações de resposta pública e automações de DM na API oficial do Instagram, configuradas em um editor visual.
Limites de taxa
A Meta publica limites por conta para mensagens, e eles mudam, então confira a página atual de limites de taxa antes de dimensionar qualquer coisa. No momento da escrita, os limites documentados para contas profissionais do Instagram incluem cerca de 300 chamadas por segundo à Send API para texto e links, cerca de 10 por segundo para áudio ou vídeo, 2 por segundo na Conversations API e 750 respostas privadas por hora para comentários em publicações e reels. A Send API também pode ser limitada quando mensagens demais vão para uma única conversa.
Para a maioria das contas esses números são folgados. Eles pesam em uma publicação viral com milhares de comentários com a palavra-chave em uma hora, que é justamente quando você quer uma fila que espaça as respostas privadas em vez de falhar em uma rajada.
O que a API não faz
Esta lista importa mais do que a lista de recursos, porque é onde mora o marketing enganoso:
- Sem DMs a frio. Você não pode enviar mensagem a quem nunca interagiu com a conta. Não existe endpoint para iniciar uma conversa com um usuário qualquer.
- Sem envio em massa fora da janela. Mandar uma mensagem a todos que escreveram para você no mês passado não é possível com mensagens padrão.
- Sem gatilho de novo seguidor. A API não avisa quando alguém segue você, então "enviar DM a cada novo seguidor" não pode ser construído sobre a API oficial.
- Sem contas pessoais e sem acesso à caixa de mensagens nem à lista de seguidores de outra pessoa.
- Sem seguir, curtir ou outras ações em nome da conta.
Se uma ferramenta promete qualquer uma dessas coisas, ela não usa a API oficial. Ela entra como você. Esse é o caminho mais rápido para uma conta restrita. Nosso guia das regras de automação trata da diferença com mais detalhes.
Construir por conta própria ou usar uma camada
Construir direto sobre a API da Meta é bem possível. O trabalho está menos na chamada da Send API e mais em tudo ao redor: um app da Meta, login e renovação de tokens, armazenamento criptografado dos tokens, um receptor de webhooks com verificação de assinatura e deduplicação, uma fila para os limites de taxa, controle da janela por conversa, Análise do App para cada permissão e acompanhar a desativação de versões da API. Para uma equipe que precisa de um comportamento muito personalizado, esse investimento pode valer a pena.
Se o que você quer de fato é automatizar DMs ou ligar as mensagens do Instagram ao seu próprio produto, uma camada que já passou pela análise leva você até lá mais rápido. O Chat33 é uma opção. Ele conecta contas do Instagram e do Facebook pela API oficial e oferece por cima uma API REST, um webhook de mensagens e um servidor MCP:
- API de Automações. Crie, atualize e ative automações de comentário para DM e de palavra-chave em DM como um grafo de nós. As mesmas automações abrem no editor visual.
- API de Mensagens. Liste conversas, leia mensagens e responda. Uma resposta fora da janela de 24 horas volta como um erro claro
window_closed. - API de Comentários. Liste os comentários de uma publicação e responda em público ou com a única resposta privada.
- Webhook de mensagens. Cada DM recebida é enviada à sua URL como um evento assinado
message.received, para que seu próprio bot possa respondê-la. - Servidor MCP. Permite que assistentes de IA, como o Claude, listem automações, leiam conversas e respondam, com login por OAuth. A configuração está na página do MCP.
As chamadas vão para https://chat33.io/api/v1 com uma chave de API no cabeçalho x-api-key. Responder a uma conversa fica assim:
curl -X POST https://chat33.io/api/v1/conversations/CONVERSATION_ID/reply \
-H "x-api-key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"message": "Thanks for reaching out! Here is the link you asked for."}'
E este é o formato do evento que seu servidor recebe quando alguém envia uma DM:
{
"event": "message.received",
"id": "evt_...",
"createdAt": "2026-10-15T09:30:00.000Z",
"data": {
"platform": "instagram",
"channel": { "id": "ch_...", "name": "yourbrand" },
"conversationId": "conv_...",
"message": { "id": "msg_...", "text": "price?", "attachments": [], "sentAt": "2026-10-15T09:30:00.000Z" },
"contact": { "id": "ct_...", "externalId": "...", "name": "Jane", "username": "jane", "optedOut": false },
"replyWindowEndsAt": "2026-10-16T09:30:00.000Z"
}
}
As mesmas regras da Meta continuam valendo por baixo: sem DMs a frio, uma resposta privada por comentário e respostas só dentro da janela. Uma camada tira a infraestrutura do caminho, não as regras da plataforma. Os escopos de mensagens e de comentários precisam ser ativados em cada chave de API, e a referência completa está na página para desenvolvedores e na especificação OpenAPI.
Se você está comparando ferramentas para isso, nosso guia de alternativas ao ManyChat tem uma lista de verificação específica sobre acesso à API.
Perguntas frequentes
Existe uma API oficial de DM do Instagram?
Sim, como parte da Plataforma do Instagram da Meta. Não é um produto separado: as mensagens são um conjunto de endpoints e webhooks disponível pela Instagram API com Login do Instagram, ou pelo Login do Facebook com uma Página vinculada. As duas exigem uma conta profissional do Instagram.
Posso enviar uma DM a qualquer usuário do Instagram pela API?
Não. A API só permite enviar mensagem a quem interagiu com a conta primeiro, por exemplo enviando uma DM, comentando (uma resposta privada) ou respondendo a um story. Não existe endpoint para abordagem a frio.
Preciso de uma Página do Facebook para usar a API de DM do Instagram?
Não com a Instagram API com Login do Instagram. Você precisa de uma se conectar pelo Login do Facebook, porque essa versão funciona pela Página vinculada à conta do Instagram.
Quanto tempo leva a Análise do App?
Não há resposta fixa. Alguns envios passam em dias, outros levam semanas, com uma ou duas rejeições no meio. Uma gravação completa que mostre o login inteiro e cada permissão em uso é o fator que você mais controla.
Posso usar a tag HUMAN_AGENT para acompanhamentos automáticos?
Não. A tag existe para que uma pessoa possa responder em até 7 dias após a última mensagem do usuário, e exige que a Meta aprove o recurso Human Agent para o seu app. Usá-la para mensagens automáticas ou promocionais viola a política.
A API consegue disparar uma DM quando alguém me segue?
Não. A API oficial não tem evento de seguir, então nenhuma ferramenta legítima consegue enviar DM automática a novos seguidores. Palavras-chave em comentários, palavras-chave em DMs e respostas a stories são os gatilhos que existem.
A API de DM do Instagram é grátis?
A Meta não cobra pelas chamadas à API. O custo é o tempo de engenharia para construir e manter a integração, mais a Análise do App. As ferramentas construídas por cima cobram pelo produto em volta da API, não pelo acesso aos endpoints da Meta.