Perché automatizzare i post su Instagram via API
Se hai mai pubblicato manualmente attraverso l'app Instagram, conosci la procedura: apri l'app, scegli un file, scrivi una didascalia, aggiungi gli hashtag, tagga le persone, scegli un'immagine di copertina e infine premi pubblica. Ora moltiplica tutto questo per cinque post al giorno su più account di clienti.
La pagina della piattaforma Instagram spiega cosa supporta Upload-Post specificamente per Instagram. In breve: puoi pubblicare Reels, singole foto, caroselli (post con più immagini) e Storie attraverso un unico endpoint di API per social media. Nessuna revisione dell'app Facebook, nessun rinnovo dei token, nessuna complessità della Graph API.
Upload-Post consente fino a 50 post su Instagram per account nell'arco di 24 ore mobili, più che sufficienti per la maggior parte dei casi d'uso. Se devi pubblicare contemporaneamente su altre piattaforme, scopri come pubblicare su tutte le piattaforme in una volta.
Pubblicare un Reel su Instagram via API
I Reels sono il formato di contenuto principale su Instagram. Per pubblicare un video come Reel, invia una richiesta POST all'endpoint di upload con media_type impostato su REELS. Puoi anche controllare come il Reel appare nel feed usando share_mode.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Behind the scenes of our new product launch" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "share_mode=FEED_AND_REELS" \
-F "audio_name=Original Audio" \
-F "cover_url=https://example.com/cover.jpg" Ecco cosa fa ciascun parametro specifico di Instagram:
media_type=REELSindica a Instagram di trattare il contenuto come un Reel piuttosto che un video normale nel feed.share_mode=FEED_AND_REELSpubblica sia nella scheda Reels che nel feed principale. UsaREELS_ONLYper tenerlo fuori dalla griglia del feed.audio_nameimposta il nome della traccia audio incorporata che gli spettatori vedono sul Reel.cover_urlfornisce un'immagine di copertina personalizzata. Senza di essa, Instagram sceglie un fotogramma dal video.
Un upload riuscito restituisce l'ID del job e lo stato della piattaforma:
{
"success": true,
"job_id": "job_reel_abc123",
"platforms": {
"instagram": {
"status": "processing",
"user": "mybrand"
}
}
}
Puoi anche impostare share_to_feed=true o share_to_feed=false come alternativa a share_mode. Entrambi ottengono lo stesso risultato. Usa thumb_offset per scegliere un fotogramma specifico del video come miniatura (valore in millisecondi).
Pubblicare foto e caroselli
Per singole foto o post carosello (multi-immagine), usa l'endpoint /api/upload_photos. Carica più file usando il parametro photos[] per creare automaticamente un carosello.
curl -X POST https://api.upload-post.com/api/upload_photos \
-H "Authorization: Apikey your-api-key-here" \
-F "photos[][email protected]" \
-F "photos[][email protected]" \
-F "photos[][email protected]" \
-F "user=mybrand" \
-F "title=Our top 3 product picks this month" \
-F "platform[]=instagram" \
-F "instagram_first_comment=#productpicks #trending #shopnow"
Quando invii più di un file in photos[], Instagram crea un post carosello. Gli utenti scorrono le immagini nell'ordine in cui le hai caricate. Un singolo file crea un post fotografico standard. Instagram supporta fino a 10 immagini per carosello.
Puoi usare instagram_title per impostare una didascalia specifica per Instagram quando pubblichi lo stesso contenuto su più piattaforme contemporaneamente. È utile quando la tua didascalia Instagram ha bisogno di hashtag o menzioni diversi da quelli usati su altre piattaforme.
Pubblicare in automatico il primo commento
Il parametro instagram_first_comment aggiunge automaticamente un commento al tuo post subito dopo la pubblicazione. È una delle strategie più usate su Instagram: mantieni la didascalia pulita e sposti tutti gli hashtag nel primo commento.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Quick tutorial: how to use our app" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "instagram_first_comment=#tutorial #howto #apptips #tech #productdemo" Perché usare un primo commento invece di mettere gli hashtag nella didascalia? L'algoritmo di Instagram tratta gli hashtag nel primo commento allo stesso modo di quelli nella didascalia per la scopribilità, ma la tua didascalia appare più pulita. Molti brand e creator preferiscono questo approccio perché mantiene il post visivamente focalizzato sul messaggio piuttosto che su un muro di hashtag.
Usare collaboratori e tag utente
I post Collab di Instagram permettono a due account di co-creare un singolo contenuto. Il post appare su entrambi i profili, e l'engagement (like, commenti, condivisioni) è condiviso. Usa il parametro collaborators per invitare collaboratori.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Excited to announce our partnership with @partneraccount" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "collaborators=partneraccount,otheraccount" \
-F "user_tags=partneraccount,photographer_jane" \
-F "location_id=123456789" collaboratorsaccetta una lista separata da virgole di nomi utente Instagram. Gli utenti invitati ricevono una notifica per accettare la collaborazione.user_tagstagga gli utenti nel post stesso, in modo simile al tagging delle persone in una foto attraverso l'app.location_idassocia una posizione al post. Puoi trovare gli ID delle posizioni attraverso la ricerca posizioni di Instagram o l'API Facebook Places.
Programmare i post su Instagram
Aggiungi scheduled_date a qualsiasi richiesta di upload per pubblicare in un momento futuro. La data deve essere in formato ISO-8601, e puoi opzionalmente specificare un timezone.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Good morning! New content dropping today." \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "scheduled_date=2025-09-15T09:00:00Z" \
-F "timezone=America/New_York"
Puoi anche usare add_to_queue=true invece di una data specifica. Il sistema di coda sceglie il prossimo slot temporale disponibile in base al tuo programma configurato, ideale per caricare contenuti in batch senza scegliere manualmente gli orari. Consulta la guida completa alla programmazione per la configurazione della coda, la modifica dei post programmati e la gestione del tuo calendario dei contenuti.
Automatizzare con Python
L'SDK Python ufficiale rende semplice costruire script di automazione. Installalo con pip install upload-post e poi usa UploadPostClient per interagire con l'API. Per una guida completa, consulta la guida all'automazione con Python.
Ecco uno script completo che pubblica un Reel, carica un carosello fotografico e programma contenuti per la settimana:
from upload_post import UploadPostClient
from datetime import datetime, timedelta
client = UploadPostClient(api_key="your-api-key-here")
# 1. Post a Reel immediately
reel_response = client.upload_video(
video_path="/path/to/reel.mp4",
title="Guida al nuovo prodotto",
user="mybrand",
platforms=["instagram"],
media_type="REELS",
share_mode="FEED_AND_REELS",
instagram_first_comment="#newproduct #walkthrough #tech"
)
print(f"Reel caricato: {reel_response['job_id']}")
# 2. Post a carousel of photos
carousel_response = client.upload_photos(
photo_paths=[
"/path/to/photo1.jpg",
"/path/to/photo2.jpg",
"/path/to/photo3.jpg"
],
title="Tre angoli, un prodotto.",
user="mybrand",
platforms=["instagram"],
collaborators="partneraccount"
)
print(f"Carosello caricato: {carousel_response['job_id']}")
# 3. Schedule Reels for the next 7 days
videos = [
"monday.mp4", "tuesday.mp4", "wednesday.mp4",
"thursday.mp4", "friday.mp4", "saturday.mp4", "sunday.mp4"
]
for i, video in enumerate(videos):
publish_date = (datetime.now() + timedelta(days=i + 1)).replace(
hour=10, minute=0, second=0, microsecond=0
)
response = client.upload_video(
video_path=f"/path/to/{video}",
title=f"Day {i + 1} of our launch week series",
user="mybrand",
platforms=["instagram"],
media_type="REELS",
scheduled_date=publish_date.isoformat(),
timezone="Europe/Madrid"
)
print(f"Scheduled {video} for {publish_date}: {response['job_id']}")
Questo script programma un Reel al giorno alle 10:00 ora di Madrid per un'intera settimana. Regola l'hour, il timezone e i percorsi dei file in base al tuo flusso di lavoro. Per scenari di caricamento in blocco, puoi leggere i percorsi dei video da una directory o un file CSV e scorrerli allo stesso modo.
Automazione no-code: n8n e Make.com
Se preferisci flussi di lavoro visuali alla scrittura di codice, sia n8n che Make.com funzionano con Upload-Post senza configurazioni aggiuntive.
n8n
n8n è uno strumento di automazione dei flussi di lavoro open-source. Puoi usare il nodo HTTP Request per chiamare l'API di Upload-Post. Abbiamo un template n8n per Instagram Reels pronto all'uso che legge i file video da Google Drive, aggiunge le didascalie da un Google Sheet e li pubblica automaticamente come Reels. Sfoglia tutti i template n8n disponibili per altre configurazioni.
Make.com
Make.com (precedentemente Integromat) utilizza un approccio basato su scenari. Aggiungi un modulo HTTP, configuralo con l'endpoint di Upload-Post e la tua chiave API, e collegalo a qualsiasi trigger: nuova riga in Google Sheets, nuovo file in Dropbox, un timer programmato e così via. Il risultato è lo stesso della scrittura di codice, ma con un'interfaccia drag-and-drop.
Entrambi gli strumenti supportano i parametri di programmazione (scheduled_date, add_to_queue), così puoi costruire un calendario dei contenuti Instagram completo senza toccare un terminale.
Requisiti dei contenuti Instagram
Upload-Post adatta automaticamente i tuoi contenuti dove possibile (usando l'API FFmpeg integrata), ma è utile sapere cosa si aspetta Instagram per ottimizzare la qualità.
| Formato | Specifica | Dettagli |
|---|---|---|
| Video (Reels) | Dimensione massima file | 1 GB |
| Formati | MP4, MOV | |
| Rapporto d'aspetto | 9:16 consigliato, 1:1 e 4:5 supportati | |
| Durata | Da 3 secondi a 15 minuti | |
| Risoluzione | 1080x1920 consigliata | |
| Foto | Dimensione massima file | 8 MB |
| Formati | JPEG, PNG | |
| Rapporto d'aspetto | 1:1, 4:5, 1.91:1 | |
| Dimensioni massime | 1440x1440 (quadrato), 1080x1350 (verticale) | |
| Carosello | Immagini massime | 10 per post |
| Contenuti misti | Foto e video possono essere combinati |
Domande frequenti
Funziona con gli account Instagram personali?
No. L'API di Instagram supporta solo gli account Business e Creator. Agli account personali non si può accedere con nessuna API ufficiale. La buona notizia è che passare a un account Business o Creator è gratuito e richiede circa 30 secondi nelle impostazioni dell'app Instagram. Upload-Post si collega tramite Instagram Login, quindi non serve una Pagina Facebook collegata.
Posso pubblicare Storie di Instagram via API?
Sì. Invia media_type=STORIES con platform[]=instagram all'endpoint dei video (/api/upload) o a quello delle foto (/api/upload_photos). Le Storie ignorano la didascalia e non possono avere un tag di luogo, e il formato verticale 9:16 è quello che rende meglio.
I post automatizzati possono far finire il mio account in shadowban?
Upload-Post pubblica tramite la Content Publishing API ufficiale di Instagram, la stessa strada usata dagli altri strumenti di programmazione autorizzati, quindi i tuoi post non vengono segnalati come automazione come succede con i bot che pilotano il browser. Quello che Instagram mostra alle persone dipende comunque dal contenuto. Upload-Post limita inoltre ogni account a 50 post nell'arco di 24 ore mobili, per restare ben dentro i limiti di pubblicazione di Instagram. Se oggi usi uno strumento come Hootsuite o Later, Upload-Post è un'alternativa pensata per gli sviluppatori che usa lo stesso accesso ufficiale.
Esiste un piano gratuito?
Sì. Ogni account Upload-Post include 10 upload gratuiti al mese, senza carta di credito. Bastano per provare l'API, verificare il tuo flusso di lavoro e controllare che tutto funzioni prima di passare a un piano a pagamento. Consulta il calendario delle ricorrenze per i social per pianificare i primi post intorno ai prossimi eventi, oppure dividi un banner in riquadri con lo strumento per dividere un'immagine per il feed di Instagram e programmali nell'ordine giusto.