API DM Instagram : comment envoyer et automatiser des DM Instagram

Il n’existe pas de produit appelé « l’API DM Instagram ». Quand on la cherche, on parle en réalité de la partie messagerie de la plateforme Instagram de Meta : les endpoints qui permettent à une app de recevoir les messages privés Instagram, d’y répondre et d’envoyer une réponse privée à une personne qui a commenté une publication. Elle repose sur la Graph API, utilise les mêmes jetons d’accès que pour publier et pour les commentaires, et s’accompagne de règles qui déterminent l’essentiel de ce que vous pouvez construire.
Ce guide s’adresse aux développeurs et aux profils marketing techniques qui veulent envoyer ou automatiser des DM Instagram depuis leur propre code. Il explique comment l’API est conçue, ce qu’il faut côté compte et côté app avant le premier message, les règles de délai, et ce qu’elle refusera quoi que vous fassiez. À la fin, une courte section honnête indique quand il vaut mieux passer par une couche comme Chat33 plutôt que de tout construire soi-même.
Pour un tour plus large de la plateforme au-delà de la messagerie, lisez d’abord notre guide de la Graph API d’Instagram.
Ce qu’est vraiment l’API DM Instagram
Meta expose la messagerie Instagram par deux portes qui mènent presque au même endroit :
- Instagram API with Instagram Login. Le propriétaire du compte se connecte avec Instagram lui-même. Aucune Page Facebook n’est impliquée. Les appels vont vers
graph.instagram.com. - La messagerie Instagram via Facebook Login (documentée historiquement sous le nom de Messenger Platform for Instagram). Une personne sur Facebook qui gère une Page liée au compte Instagram se connecte, et l’app travaille avec des jetons d’accès de Page sur
graph.facebook.com.
Les deux donnent les mêmes briques : une Send API pour poster des messages dans une conversation, une Conversations API pour lire les fils et les messages, des webhooks qui envoient à votre serveur les nouveaux messages et commentaires, et les réponses privées aux commentaires. Les types de messages comprennent le texte, les images et autres médias, les réponses rapides, les boutons et les modèles génériques (cartes de type produit), dans les limites propres à chaque type.
Le choix de la porte dépend surtout de vos utilisateurs. Les créateurs et les petites entreprises qui vivent sur Instagram préfèrent en général Instagram Login, car il n’y a ni Page ni Business Manager à configurer. Les entreprises qui gèrent déjà tout avec les outils Meta Business, ou qui veulent aussi Facebook Messenger dans la même app, se retrouvent souvent sur Facebook Login.
Conditions côté compte
Avant que le moindre appel compte, le compte Instagram doit lui-même être éligible :
- Ce doit être un compte professionnel, de type entreprise ou créateur. Les comptes personnels ne sont pas pris en charge pour la messagerie. Le changement est gratuit dans l’app Instagram, et notre comparatif compte entreprise ou créateur vous aide à choisir.
- Avec Facebook Login, il doit être lié à une Page Facebook, et la personne qui se connecte doit avoir sur cette Page un rôle lui permettant de gérer les messages.
- L’accès aux messages pour les outils connectés doit être autorisé. Instagram propose un réglage dans les contrôles des messages qui permet aux apps connectées d’accéder aux messages. S’il est désactivé, vos webhooks restent muets et personne ne sait pourquoi. C’est la première chose à vérifier en cas de problème.
Les autorisations nécessaires
Chaque fonction correspond à une autorisation que le propriétaire du compte accorde quand il connecte votre app. Les noms diffèrent selon le type de connexion.
| Ce que vous voulez faire | Instagram Login | Facebook Login |
|---|---|---|
| Profil de base et médias | instagram_business_basic | instagram_basic, pages_show_list |
| Lire et envoyer des DM | instagram_business_manage_messages | instagram_manage_messages, pages_manage_metadata |
| Lire les commentaires, y répondre, réponses privées | instagram_business_manage_comments | instagram_manage_comments |
Les apps Facebook Login ont souvent aussi besoin de business_management, et la documentation des Private Replies de Meta cite pages_messaging pour cette fonction. Meta renomme et regroupe les autorisations de temps en temps (les scopes Instagram Login ont remplacé les anciens noms business_* fin 2024 et début 2025) : considérez donc ce tableau comme un point de départ et vérifiez-le dans la référence des autorisations sur developers.facebook.com avant de soumettre quoi que ce soit.
App Review et Advanced Access
Chaque autorisation existe en deux niveaux d’accès. Avec le Standard Access, votre app ne peut utiliser une autorisation que sur les comptes qui ont un rôle dans l’app : vous, vos développeurs et vos testeurs. Cela suffit pour construire et tester l’ensemble.
Pour utiliser une autorisation sur le compte de quelqu’un d’autre, il faut l’Advanced Access, ce qui implique de passer l’App Review pour cette autorisation. La revue demande une app qui fonctionne, une vidéo d’écran montrant chaque autorisation utilisée de bout en bout (en général depuis la connexion jusqu’au raccordement du compte) et une explication écrite de votre besoin. La vérification d’entreprise est en général exigée aussi.
Prévoyez du temps. Le résultat de la revue peut arriver en quelques jours ou se faire attendre plusieurs semaines, et un refus dès la première tentative est courant. Les causes habituelles sont une vidéo qui saute des étapes ou un cas d’usage que l’examinateur ne parvient pas à reproduire. Tant que la revue n’est pas passée, votre produit fonctionne pour vos comptes de test et pour personne d’autre.
Webhooks : comment vous apprenez l’arrivée d’un message
L’API fonctionne par événements. Vous n’interrogez pas l’API pour trouver de nouveaux DM. Vous enregistrez l’URL d’un webhook, vous la validez une fois avec un défi envoyé par Meta, et vous vous abonnez à des champs comme messages et comments (et d’autres pour les postbacks, les réactions et les accusés de lecture).
Ensuite, Meta envoie un POST à votre endpoint pour chaque événement. Quelques points comptent en pratique :
- Vérifiez la signature de chaque requête avec le secret de votre app avant de lui faire confiance.
- Répondez vite par un 200 et faites le vrai travail dans une file d’attente. Les endpoints lents ou en échec sont relancés et, si cela continue, peuvent être désactivés.
- Attendez-vous aux doublons et aux échos. Vos propres messages sortants peuvent revenir sous forme d’événements d’écho, et les relances peuvent envoyer deux fois le même événement : dédoublonnez avec l’identifiant du message.
Les webhooks de commentaires sont la base de l’automatisation commentaire vers DM : un commentaire arrive, votre code y cherche un mot-clé et envoie une réponse privée.
La fenêtre de messagerie de 24 heures
C’est la règle qui façonne tout le reste. Quand une personne écrit à votre compte, une fenêtre de 24 heures s’ouvre. Pendant cette fenêtre, votre app peut lui envoyer des messages, y compris promotionnels. Chaque nouveau message de la personne remet le compteur à zéro. Une fois la fenêtre fermée, les messages standard sont refusés jusqu’à ce qu’elle écrive de nouveau.
Il existe une exception à connaître : le tag HUMAN_AGENT. Il permet à une vraie personne de votre équipe de répondre jusqu’à 7 jours après le dernier message de l’utilisateur, quand un humain a vraiment besoin de plus de temps. Ce n’est pas un laissez-passer pour l’automatisation. Votre app doit avoir la fonction Human Agent approuvée par Meta via l’App Review, et le message doit réellement venir d’un humain. Envoyer des relances automatiques avec ce tag va à l’encontre de la politique de Meta.
Notre article sur la fenêtre de messagerie de 24 heures détaille ce qui ouvre et réinitialise la fenêtre et comment planifier des relances qui arrivent quand même.
Réponses privées aux commentaires
Une réponse privée est un DM envoyé en réaction à un commentaire. C’est ainsi que fonctionne une publication « commentez GUIDE et je vous envoie le lien en DM », et elle a ses propres règles :
- Un seul message par commentaire. Vous n’avez droit qu’à une réponse privée. La conversation ne continue que si la personne répond, et sa réponse ouvre une fenêtre normale de 24 heures.
- Dans les 7 jours suivant le commentaire pour les publications, les reels et les publicités. Les commentaires sur un live ne peuvent recevoir une réponse privée que pendant le direct.
- Elle part vers l’auteur du commentaire uniquement, désigné par l’identifiant du commentaire, et non par son identifiant d’utilisateur.
Comme vous n’avez qu’un essai, ce message unique doit faire tout le travail. La plupart des bonnes automatisations commentaire vers DM y mettent une question, avec un bouton quand la connexion le permet, pour que la personne ait une raison facile de répondre et d’ouvrir la fenêtre. Si vous voulez aussi le côté public, une réponse publique distincte sous le commentaire est autorisée et montre aux autres lecteurs que des DM partent.
Commentaire vers DM Instagram avec Chat33Déclencheurs par mot-clé dans les commentaires, réponses privées, variantes de réponse publique et automatisations de DM sur l’API officielle d’Instagram, configurés dans un éditeur visuel.
Limites de débit
Meta publie des limites par compte pour la messagerie, et elles changent : consultez la page actuelle sur les limites de débit avant de dimensionner quoi que ce soit. À la date de rédaction, les limites documentées pour les comptes professionnels Instagram comprennent environ 300 appels Send API par seconde pour le texte et les liens, environ 10 par seconde pour l’audio ou la vidéo, 2 par seconde sur la Conversations API, et 750 réponses privées par heure pour les commentaires sur les publications et les reels. La Send API peut aussi être bridée quand trop de messages partent vers un même fil.
Pour la plupart des comptes, ces chiffres sont généreux. Là où ils pincent, c’est avec une publication virale et des milliers de commentaires avec mot-clé en une heure, justement le moment où vous voulez une file d’attente qui étale les réponses privées au lieu d’échouer en rafale.
Ce que l’API ne peut pas faire
Cette liste compte plus que celle des fonctions, car c’est là que se loge le marketing trompeur :
- Pas de DM à froid. Vous ne pouvez pas écrire à quelqu’un qui n’a jamais interagi avec le compte. Il n’existe aucun endpoint pour démarrer une conversation avec un utilisateur quelconque.
- Pas d’envoi en masse hors de la fenêtre. Diffuser un message à toutes les personnes qui vous ont écrit le mois dernier est impossible avec les messages standard.
- Pas de déclencheur nouvel abonné. L’API ne vous dit pas quand quelqu’un vous suit : « envoyer un DM à chaque nouvel abonné » est donc impossible avec l’API officielle.
- Pas de comptes personnels et aucun accès à la boîte de messages ou à la liste d’abonnés d’un autre compte.
- Impossible de s’abonner, de liker ou de faire d’autres actions au nom du compte.
Si un outil promet l’une de ces choses, il n’utilise pas l’API officielle. Il se connecte à votre place, ce qui est le chemin le plus rapide vers un compte restreint. Notre guide des règles d’automatisation détaille la différence.
Construire soi-même ou passer par une couche
Construire directement sur l’API de Meta est tout à fait faisable. Le travail se trouve moins dans l’appel à la Send API que dans tout ce qui l’entoure : une app Meta, la connexion et le renouvellement des jetons, un stockage chiffré des jetons, un récepteur de webhooks avec vérification de signature et dédoublonnage, une file d’attente pour les limites de débit, le suivi de la fenêtre par conversation, l’App Review pour chaque autorisation, et le suivi des retraits de versions de l’API. Pour une équipe qui a besoin de comportements très spécifiques, cet investissement peut valoir la peine.
Si ce que vous voulez vraiment, c’est automatiser des DM ou brancher les messages Instagram à votre propre produit, une couche qui a déjà passé la revue vous y amène plus vite. Chat33 en est une. Elle connecte les comptes Instagram et Facebook via l’API officielle et expose par-dessus une API REST, un webhook de messages et un serveur MCP :
- Flows API. Créez, modifiez et activez des automatisations commentaire vers DM et DM par mot-clé sous forme de graphe de nœuds. Les mêmes automatisations s’ouvrent dans l’éditeur visuel.
- Inbox API. Listez les conversations, lisez les messages et répondez. Une réponse hors de la fenêtre de 24 heures renvoie une erreur claire
window_closed. - Comments API. Listez les commentaires d’une publication et répondez publiquement ou avec l’unique réponse privée.
- Webhook de messages. Chaque DM reçu est envoyé à votre URL sous forme d’événement
message.receivedsigné, pour que votre propre bot puisse y répondre. - Serveur MCP. Permet à des assistants IA comme Claude de lister les automatisations, lire les conversations et répondre, avec connexion OAuth. La configuration se trouve sur la page MCP.
Les appels vont vers https://chat33.io/api/v1 avec une clé d’API dans l’en-tête x-api-key. Répondre à une conversation ressemble à ceci :
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."}'
Et voici la forme de l’événement que reçoit votre serveur quand quelqu’un envoie un 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"
}
}
Les mêmes règles de Meta s’appliquent toujours : pas de DM à froid, une seule réponse privée par commentaire, et des réponses uniquement dans la fenêtre. Une couche supprime la tuyauterie, pas les règles de la plateforme. Les scopes de messagerie et de commentaires sont à activer clé par clé, et la référence complète se trouve sur la page développeurs et dans la spécification OpenAPI.
Si vous comparez des outils pour cela, notre guide des alternatives à ManyChat propose une liste de contrôle sur l’accès à l’API en particulier.
Questions fréquentes
Existe-t-il une API DM Instagram officielle ?
Oui, au sein de la plateforme Instagram de Meta. Ce n’est pas un produit à part : la messagerie est un ensemble d’endpoints et de webhooks accessibles via l’Instagram API with Instagram Login, ou via Facebook Login avec une Page liée. Les deux exigent un compte Instagram professionnel.
Puis-je envoyer un DM à n’importe quel utilisateur d’Instagram via l’API ?
Non. L’API ne permet d’écrire qu’aux personnes qui ont d’abord interagi avec le compte, par exemple en envoyant un DM, en commentant (une réponse privée) ou en répondant à une story. Il n’existe aucun endpoint pour la prospection à froid.
Faut-il une Page Facebook pour utiliser l’API DM Instagram ?
Pas avec l’Instagram API with Instagram Login. Il en faut une si vous passez par Facebook Login, car cette version fonctionne via la Page liée au compte Instagram.
Combien de temps dure l’App Review ?
Il n’y a pas de réponse fixe. Certaines soumissions passent en quelques jours, d’autres prennent des semaines avec un refus ou deux entre-temps. Une vidéo complète qui montre toute la connexion et chaque autorisation en usage est le principal facteur que vous maîtrisez.
Puis-je utiliser le tag HUMAN_AGENT pour des relances automatiques ?
Non. Le tag existe pour qu’un humain puisse répondre dans les 7 jours suivant le dernier message de l’utilisateur, et il exige que Meta approuve la fonction Human Agent pour votre app. L’utiliser pour des messages automatiques ou promotionnels enfreint la politique.
L’API peut-elle déclencher un DM quand quelqu’un me suit ?
Non. L’API officielle ne signale pas qu’un compte vous suit : aucun outil légitime ne peut donc envoyer de DM automatiquement aux nouveaux abonnés. Les mots-clés en commentaire, les mots-clés en DM et les réponses aux stories sont les déclencheurs qui existent.
L’API DM Instagram est-elle gratuite ?
Meta ne facture pas les appels à l’API. Le coût, c’est le temps d’ingénierie pour construire et maintenir l’intégration, plus l’App Review. Les outils bâtis par-dessus facturent le produit autour de l’API, pas l’accès aux endpoints de Meta.