API DM di Instagram: come inviare e automatizzare i DM di Instagram

Non esiste un prodotto chiamato "l’API DM di Instagram". Quando le persone la cercano, intendono la parte di messaggistica della Instagram Platform di Meta: gli endpoint che permettono a un’app di ricevere i messaggi diretti di Instagram, rispondere e mandare una risposta privata a chi ha commentato un post. Si appoggia alla Graph API, usa gli stessi token di accesso della pubblicazione e dei commenti e viene con una serie di regole che decidono la maggior parte di ciò che puoi costruire.
Questa guida è per sviluppatori e marketer tecnici che vogliono inviare o automatizzare i DM di Instagram dal proprio codice. Spiega come è fatta l’API, di cosa hanno bisogno un account e un’app prima che parta il primo messaggio, le regole sui tempi e le cose che non farà in nessun caso, comunque tu glielo chieda. Alla fine c’è una breve sezione onesta su quando ha senso usare un livello come Chat33 invece di costruire tutto da soli.
Per un giro più ampio della piattaforma oltre la messaggistica, leggi prima la nostra guida all’API Graph di Instagram.
Cos’è davvero l’API DM di Instagram
Meta espone la messaggistica di Instagram attraverso due porte che portano quasi allo stesso posto:
- Instagram API con Instagram Login. Il proprietario dell’account accede con Instagram stesso. Non c’entra nessuna Pagina Facebook. Le chiamate vanno a
graph.instagram.com. - Messaggistica di Instagram tramite Facebook Login (storicamente documentata come Messenger Platform per Instagram). Un utente Facebook che gestisce una Pagina collegata all’account Instagram accede e l’app lavora con i token di accesso della Pagina su
graph.facebook.com.
Entrambe danno gli stessi elementi di base: una Send API per inviare messaggi in una conversazione, una Conversations API per leggere thread e messaggi, webhook che mandano al tuo server i nuovi messaggi e i commenti, e le risposte private ai commenti. I tipi di messaggio comprendono testo, immagini e altri media, risposte rapide, pulsanti e modelli generici (schede in stile prodotto), entro i limiti di ciascun tipo.
Quale porta usare dipende soprattutto da chi sono i tuoi utenti. I creator e le piccole attività che vivono su Instagram di solito preferiscono Instagram Login, perché non serve configurare né una Pagina né un Business Manager. Le aziende che gestiscono già tutto con gli strumenti business di Meta, o che vogliono anche Facebook Messenger nella stessa app, spesso finiscono su Facebook Login.
Requisiti dell’account
Prima che una qualsiasi chiamata API conti, l’account Instagram stesso deve essere idoneo:
- Deve essere un account professionale, business o creator. Gli account personali non sono supportati per la messaggistica. Il passaggio è gratuito nell’app di Instagram e il nostro confronto tra account business e creator ti aiuta a scegliere.
- Con Facebook Login, deve essere collegato a una Pagina Facebook, e chi accede deve avere sulla Pagina un ruolo che permetta di gestire i messaggi.
- L’accesso ai messaggi per gli strumenti collegati deve essere consentito. Instagram ha un’impostazione nei controlli dei messaggi che permette alle app collegate di accedere ai messaggi. Se è disattivata, i tuoi webhook restano muti e nessuno capisce perché. Controllala per prima quando fai debug.
I permessi che ti servono
Ogni funzione corrisponde a un permesso che il proprietario dell’account concede quando collega la tua app. I nomi sono diversi tra i due tipi di login.
| Cosa vuoi fare | Instagram Login | Facebook Login |
|---|---|---|
| Profilo e media di base | instagram_business_basic | instagram_basic, pages_show_list |
| Leggere e inviare DM | instagram_business_manage_messages | instagram_manage_messages, pages_manage_metadata |
| Leggere i commenti, rispondere, risposte private | instagram_business_manage_comments | instagram_manage_comments |
Le app con Facebook Login spesso hanno bisogno anche di business_management, e la documentazione di Meta sulle risposte private elenca pages_messaging per quella funzione. Meta rinomina e raggruppa di nuovo i permessi di tanto in tanto (gli ambiti di Instagram Login hanno sostituito i vecchi nomi business_* alla fine del 2024 e all’inizio del 2025), quindi considera questa tabella un punto di partenza e confermala con il riferimento aggiornato dei permessi su developers.facebook.com prima di inviare qualsiasi cosa.
App Review e Advanced Access
Ogni permesso ha due livelli di accesso. Con lo Standard Access, la tua app può usare un permesso solo sugli account che hanno un ruolo nell’app: tu, i tuoi sviluppatori e i tuoi tester. Basta per costruire e provare tutto.
Per usare un permesso sull’account di chiunque altro serve l’Advanced Access, cioè superare l’App Review per quel permesso. La revisione chiede un’app funzionante, un video dello schermo che mostri ogni permesso usato dall’inizio alla fine (di solito partendo dal login e dal collegamento dell’account) e una spiegazione scritta del perché ti serve. Di solito serve anche la verifica dell’azienda.
Metti in conto che richieda tempo. Le revisioni possono tornare in pochi giorni o trascinarsi per settimane, e un rifiuto al primo tentativo è comune. Le cause abituali sono un video che salta dei passaggi o un caso d’uso che il revisore non riesce a riprodurre. Finché non passa, il tuo prodotto funziona per i tuoi account di prova e per nessun altro.
Webhook: come vieni a sapere dei nuovi messaggi
L’API è guidata dagli eventi. Non si interrogano i nuovi DM a intervalli. Registri l’URL di un webhook, lo verifichi una volta con una sfida che Meta invia e ti iscrivi a campi come messages e comments (più altri per postback, reazioni ed eventi di visualizzazione).
Da quel momento, Meta manda un POST al tuo endpoint per ogni evento. Alcune cose contano nella pratica:
- Verifica la firma di ogni richiesta con il segreto della tua app prima di fidartene.
- Rispondi in fretta con un 200 e metti il lavoro vero in coda. Gli endpoint lenti o che falliscono vengono riprovati e, se continua, possono essere disattivati.
- Aspettati duplicati ed echi. I tuoi messaggi in uscita possono arrivare come eventi echo e i nuovi tentativi possono mandare due volte lo stesso evento, quindi elimina i duplicati in base all’id del messaggio.
I webhook dei commenti sono la base dell’automazione da commento a DM: arriva un commento, il tuo codice cerca una parola chiave e invia una risposta privata.
La finestra di messaggistica di 24 ore
È la regola che dà forma a tutto il resto. Quando una persona scrive al tuo account, si apre una finestra di 24 ore. Al suo interno, la tua app può mandarle messaggi, anche promozionali. Ogni nuovo messaggio da parte sua fa ripartire il timer. Quando si chiude, i messaggi standard vengono rifiutati finché non scrive di nuovo.
C’è un’eccezione da conoscere: il tag HUMAN_AGENT. Permette a una persona vera del tuo team di rispondere fino a 7 giorni dopo l’ultimo messaggio dell’utente, per i casi in cui un essere umano ha davvero bisogno di più tempo. Non è un lasciapassare per l’automazione. La tua app ha bisogno che la funzione Human Agent sia approvata da Meta tramite App Review e il messaggio deve arrivare davvero da una persona. Mandare follow-up automatici con il tag va contro la policy.
Il nostro articolo sulla finestra di messaggistica di 24 ore approfondisce cosa apre e azzera la finestra e come pianificare follow-up che arrivano comunque.
Risposte private ai commenti
Una risposta privata è un DM inviato in risposta a un commento. È il meccanismo di un post "commenta GUIDA e ti mando il link in DM" e ha regole sue:
- Un messaggio per commento. Hai esattamente una risposta privata. La conversazione continua solo se la persona risponde, e la sua risposta apre una normale finestra di 24 ore.
- Entro 7 giorni dal commento per post, reel e inserzioni. I commenti sulle dirette possono ricevere una risposta privata solo mentre la diretta è in corso.
- Va solo a chi ha commentato, indicato con l’id del commento, non con il suo id utente.
Poiché hai un solo tentativo, quell’unico messaggio deve fare tutto il lavoro. La maggior parte delle buone automazioni da commento a DM ci mette una domanda, con un pulsante dove la connessione lo consente, così la persona ha un motivo facile per rispondere e aprire la finestra. Se vuoi anche il lato pubblico, una risposta pubblica separata sotto il commento è consentita e mostra agli altri spettatori che i DM stanno partendo.
Commento a DM su Instagram in Chat33Trigger con parola chiave nei commenti, risposte private, varianti di risposta pubblica e automazioni DM sull’API ufficiale di Instagram, configurate in un editor visivo.
Limiti di frequenza
Meta pubblica limiti per account sulla messaggistica e cambiano, quindi controlla la pagina aggiornata sui limiti di frequenza prima di dimensionare qualsiasi cosa. Al momento della scrittura, i limiti documentati per gli account professionali di Instagram comprendono circa 300 chiamate alla Send API al secondo per testo e link, circa 10 al secondo per audio o video, 2 al secondo sulla Conversations API e 750 risposte private all’ora per i commenti su post e reel. La Send API può anche essere rallentata quando troppi messaggi vanno a un singolo thread.
Per la maggior parte degli account questi numeri sono generosi. Dove pesano è su un post virale con migliaia di commenti con parola chiave in un’ora, ed è proprio allora che vuoi una coda che distribuisca le risposte private invece di fallire in un’ondata.
Cosa l’API non può fare
Questo elenco conta più dell’elenco delle funzioni, perché è dove vive il marketing ingannevole:
- Niente DM a freddo. Non puoi scrivere a chi non ha mai interagito con l’account. Non esiste un endpoint per iniziare una conversazione con un utente qualsiasi.
- Niente invii di massa fuori dalla finestra. Mandare un messaggio a tutti quelli che ti hanno scritto il mese scorso non è possibile con i messaggi standard.
- Nessun trigger per i nuovi follower. L’API non ti dice quando qualcuno ti segue, quindi "manda un DM a ogni nuovo follower" non si può costruire con l’API ufficiale.
- Niente account personali e nessun accesso ai messaggi o all’elenco dei follower di qualcun altro.
- Niente seguire, mettere mi piace o altre azioni a nome dell’account.
Se uno strumento promette una di queste cose, non usa l’API ufficiale. Accede come te, ed è la via più rapida verso un account limitato. La nostra guida alle regole dell’automazione approfondisce la differenza.
Costruirla da soli o usare un livello
Costruire direttamente sull’API di Meta è fattibilissimo. Il lavoro sta meno nella chiamata alla Send API in sé e più in tutto ciò che c’è intorno: un’app Meta, login e rinnovo dei token, archiviazione cifrata dei token, un ricevitore di webhook con controllo delle firme e eliminazione dei duplicati, una coda per i limiti di frequenza, il tracciamento della finestra per conversazione, l’App Review per ogni permesso e stare dietro al ritiro delle versioni dell’API. Per un team che ha bisogno di un comportamento molto personalizzato, quell’investimento può valere la pena.
Se quello che vuoi davvero è automatizzare i DM o portare i messaggi di Instagram nel tuo prodotto, un livello che ha già superato la revisione ti ci porta più in fretta. Chat33 è un’opzione. Collega gli account Instagram e Facebook tramite l’API ufficiale ed espone sopra un’API REST, un webhook dei messaggi e un server MCP:
- API delle automazioni. Crea, aggiorna e attiva automazioni da commento a DM e con parola chiave nei DM come grafo di nodi. Le stesse automazioni si aprono nell’editor visivo.
- API dei messaggi. Elenca le conversazioni, leggi i messaggi e rispondi. Una risposta fuori dalla finestra di 24 ore torna come un chiaro errore
window_closed. - API dei commenti. Elenca i commenti di un post e rispondi in pubblico o con l’unica risposta privata.
- Webhook dei messaggi. Ogni DM in arrivo viene inviato al tuo URL come evento
message.receivedfirmato, così il tuo bot può rispondere. - Server MCP. Permette ad assistenti AI come Claude di elencare le automazioni, leggere le conversazioni e rispondere, con accesso OAuth. La configurazione è nella pagina MCP.
Le chiamate vanno a https://chat33.io/api/v1 con una chiave API nell’header x-api-key. Rispondere a una conversazione si fa così:
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": "Grazie per averci scritto. Ecco il link che hai chiesto."}'
E questa è la forma dell’evento che il tuo server riceve quando qualcuno manda 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": "prezzo?", "attachments": [], "sentAt": "2026-10-15T09:30:00.000Z" },
"contact": { "id": "ct_...", "externalId": "...", "name": "Giulia", "username": "giulia", "optedOut": false },
"replyWindowEndsAt": "2026-10-16T09:30:00.000Z"
}
}
Sotto valgono comunque le stesse regole di Meta: niente DM a freddo, una risposta privata per commento e risposte solo dentro la finestra. Un livello toglie l’infrastruttura, non le regole della piattaforma. Gli ambiti per messaggi e commenti si attivano a scelta su ogni chiave API e il riferimento completo è nella pagina per sviluppatori e nella specifica OpenAPI.
Se stai confrontando strumenti per questo, la nostra guida alle alternative a ManyChat ha una checklist specifica per l’accesso API.
Domande frequenti
Esiste un’API DM ufficiale di Instagram?
Sì, fa parte della Instagram Platform di Meta. Non è un prodotto separato: la messaggistica è un insieme di endpoint e webhook disponibili tramite l’Instagram API con Instagram Login, o tramite Facebook Login con una Pagina collegata. In entrambi i casi serve un account Instagram professionale.
Posso mandare un DM a un qualsiasi utente di Instagram tramite l’API?
No. L’API ti permette di scrivere solo a chi ha prima interagito con l’account, per esempio mandando un DM, commentando (una risposta privata) o rispondendo a una storia. Non esiste un endpoint per i contatti a freddo.
Mi serve una Pagina Facebook per usare l’API DM di Instagram?
Non con l’Instagram API con Instagram Login. Ti serve se colleghi tramite Facebook Login, perché quella versione passa dalla Pagina collegata all’account Instagram.
Quanto dura l’App Review?
Non c’è una risposta fissa. Alcune richieste passano in pochi giorni, altre richiedono settimane con uno o due rifiuti nel mezzo. Un video completo che mostri l’intero login e ogni permesso in uso è il singolo fattore più importante che controlli tu.
Posso usare il tag HUMAN_AGENT per follow-up automatici?
No. Il tag esiste perché una persona possa rispondere entro 7 giorni dall’ultimo messaggio dell’utente e richiede che Meta approvi la funzione Human Agent per la tua app. Usarlo per messaggi automatici o promozionali viola la policy.
L’API può avviare un DM quando qualcuno mi segue?
No. L’API ufficiale non ha un evento di follow, quindi nessuno strumento legittimo può mandare DM ai nuovi follower in automatico. Parole chiave nei commenti, parole chiave nei DM e risposte alle storie sono i trigger che esistono.
L’API DM di Instagram è gratuita?
Meta non fa pagare le chiamate API. Il costo è il tempo di sviluppo per costruire e mantenere l’integrazione, più l’App Review. Gli strumenti costruiti sopra fanno pagare il prodotto intorno all’API, non l’accesso agli endpoint di Meta.