Guide

Comment automatiser les publications Instagram avec une API

L\'API Graph officielle d\'Instagram nécessite une revue d\'application Facebook, un compte Business lie a une Page Facebook et un flux OAuth multi-etapes. Upload-Post gere tout cela en coulisses. Un seul appel API, un seul endpoint, et votre Reel, photo ou carrousel est publie. Ce guide couvre tout ce dont vous avez besoin pour automatiser la publication sur Instagram avec des exemples de code concrets.

Pourquoi automatiser les publications Instagram via API

Si vous avez deja publie manuellement via l\'application Instagram, vous connaissez le processus : ouvrir l\'application, choisir un fichier, ecrire une legende, ajouter des hashtags, taguer des personnes, choisir une image de couverture, et enfin appuyer sur publier. Maintenant, multipliez cela par cinq publications par jour sur plusieurs comptes clients.

La page de la plateforme Instagram explique ce que Upload-Post supporte specifiquement pour Instagram. En resume : vous pouvez publier des Reels, des photos individuelles et des carrousels (publications multi-images) via un seul endpoint d'Social media API. Pas de revue d\'application Facebook, pas de renouvellement de tokens, pas de complexite de l\'API Graph.

Instagram allows up to\'a 50 uploads par 24 heures via l\'API, ce qui est largement suffisant pour la plupart des cas d\'utilisation. Si vous avez besoin de publier sur des plateformes supplementaires simultanement, decouvrez comment publier sur toutes les plateformes en une seule fois.

Post an Instagram Reel via API

Les Reels sont le format de contenu principal sur Instagram. Pour publier une video en tant que Reel, envoyez une requete POST a l\'endpoint d\'upload avec media_type defini sur REELS. Vous pouvez egalement controler comment le Reel apparait dans le flux en utilisant share_mode.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisation : Apikey votre-clé-api-ici" \
  -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"

Voici ce que fait chaque parametre specifique a Instagram :

  • media_type=REELS indique a Instagram de traiter ceci comme un Reel plutot qu\'une video de flux classique.
  • share_mode=FEED_AND_REELS publie a la fois dans l\'onglet Reels et dans le flux principal. Utilisez REELS_SEULEMENT pour ne pas l\'afficher dans la grille du flux.
  • audio_name definit le nom de la piste audio integree que les spectateurs voient sur le Reel.
  • cover_url fournit une image de couverture personnalisee. Sans cela, Instagram choisit une image de la video.

Un upload réussi renvoie l\'identifiant de la tâche et le statut de la plateforme :

{
  "success": true,
  "job_id": "job_reel_abc123",
  "platforms": {
    "instagram": {
      "status": "processing",
      "user": "mybrand"
    }
  }
}

Vous pouvez egalement definir share_to_feed=true ou share_to_feed=false comme alternative a share_mode. Les deux accomplissent la meme chose. Utilisez thumb_offset pour choisir une image specifique de la video comme miniature (valeur en millisecondes).

Post photos and carousels

Pour les photos individuelles ou les publications carrousel (multi-images), utilisez l\'endpoint /api/upload_photos. Telechargez plusieurs fichiers en utilisant le parametre photos[] pour creer un carrousel automatiquement.

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Autorisation : Apikey votre-clé-api-ici" \
  -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"

Lorsque vous envoyez plus d\'un fichier dans photos[], Instagram cree une publication carrousel. Les utilisateurs font defiler les images dans l\'ordre ou vous les avez telechargees. Un seul fichier cree une publication photo standard. Instagram supporte jusqu\'a 10 images par carrousel.

Vous pouvez utiliser instagram_title pour definir une legende specifique a Instagram lorsque vous publiez le meme contenu sur plusieurs plateformes a la fois. C\'est utile quand votre legende Instagram necessite des hashtags ou des mentions differents de ceux que vous utilisez sur d\'autres plateformes.

Publication automatique d\'un premier commentaire

Le parametre instagram_first_comment ajoute automatiquement un commentaire a votre publication juste apres sa mise en ligne. C\'est l\'une des strategies Instagram les plus populaires : garder votre legende propre et deplacer tous vos hashtags dans le premier commentaire.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisation : Apikey votre-clé-api-ici" \
  -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"

Pourquoi utiliser un premier commentaire au lieu de mettre les hashtags dans la legende ? L\'algorithme d\'Instagram traite les hashtags du premier commentaire de la même manière que les hashtags de la légende pour la découverte, mais votre légende reste plus propre. De nombreuses marques et créateurs préfèrent cette approche car elle garde la publication visuellement centrée sur le message plutôt que sur un mur de hashtags.

Utiliser les collaborateurs et les tags d\'utilisateurs.

Les publications Collab Instagram permettent a deux comptes de co-signer un seul contenu. La publication apparait sur les deux profils, et l\'engagement (likes, commentaires, partages) est partage. Utilisez le parametre collaborators pour inviter des collaborateurs.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisation : Apikey votre-clé-api-ici" \
  -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"
  • collaborators prend une liste de noms d\'utilisateurs Instagram separes par des virgules. Les utilisateurs invites recoivent une notification pour accepter la collaboration.
  • user_tags identifie les utilisateurs dans la publication elle-meme, similaire au fait de taguer des personnes sur une photo via l\'application.
  • location_id attache un lieu a la publication. Vous pouvez trouver les identifiants de lieux via la recherche de lieux Instagram ou l\'API Facebook Places.

Planifiez des publications Instagram

Ajoutez scheduled_date a n\'importe quelle requete d\'upload pour publier a une date future. La date doit etre au format ISO-8601, et vous pouvez optionnellement specifier un timezone.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisation : Apikey votre-clé-api-ici" \
  -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"

Vous pouvez egalement utiliser add_to_queue=true au lieu d\'une date specifique. Le systeme de file d\'attente choisit le prochain creneau horaire disponible en fonction de votre calendrier configure, ce qui est ideal pour le telechargement en lot de contenu sans choisir manuellement les heures. Consultez le guide complet de planification pour la configuration de la file d\'attente, la modification des publications planifiees et la gestion de votre calendrier de contenu.

Automatiser avec Python

Le SDK Python officiel facilite la creation de scripts d\'automatisation. Installez-le avec pip install upload-post puis utilisez UploadPostClient pour interagir avec l\'API. Pour un guide complet, consultez le guide d\'automatisation des publications sur les réseaux sociaux avec Python'automatisation Python.

Voici un script complet qui publie un Reel, telecharge un carrousel de photos et planifie du contenu pour la semaine :

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="Nouvelle présentation du produit",
    user="mybrand",
    platforms=["instagram"],
    media_type="REELS",
    share_mode="FEED_AND_REELS",
    instagram_first_comment="#newproduct #walkthrough #tech"
)
print(f"Reel téléchargé : {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="Trois angles, un produit.",
    user="mybrand",
    platforms=["instagram"],
    collaborators="partneraccount"
)
print(f"Carrousel téléchargé : {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']}")

Ce script planifie un Reel par jour a 10 h 00, heure de Madrid, pour une semaine entiere. Ajustez l'hour, le timezone et les chemins de fichiers pour correspondre a votre workflow. Pour les scenarios de telechargement en masse, vous pouvez lire les chemins des videos depuis un repertoire ou un fichier CSV et les parcourir de la meme maniere.

Automatisation sans code : n8n et Make.com

Si vous preferez les workflows visuels a l\'ecriture de code, n8n et Make.com fonctionnent tous les deux avec Upload-Post nativement.

n8n

n8n est un outil d\'automatisation de workflows open source. Vous pouvez utiliser le noeud HTTP Request pour appeler l\'API Upload-Post. We have a n8n template for Instagram Reels ready to\'emploi qui lit les fichiers video depuis Google Drive, ajoute les legendes depuis un Google Sheet et les publie automatiquement en tant que Reels. Parcourez tous les templates n8n disponibles pour plus de configurations.

Make.com

Make.com (anciennement Integromat) utilise une approche basee sur des scenarios. Ajoutez un module HTTP, configurez-le avec l\'endpoint Upload-Post et votre cle API, et connectez-le a n\'importe quel declencheur : nouvelle ligne dans Google Sheets, nouveau fichier dans Dropbox, un minuteur programme, etc. Le resultat est le meme que l\'ecriture de code, mais avec une interface glisser-deposer.

Les deux outils supportent les parametres de planification (scheduled_date, add_to_queue), vous pouvez donc construire un calendrier de contenu Instagram complet sans toucher a un terminal.

Exigences de contenu Instagram

Upload-Post adapte automatiquement votre contenu lorsque c\'est possible (en utilisant l'API FFmpeg integree), mais il est utile de savoir ce qu\'Instagram attend pour optimiser la qualite.

Format Spécification Détails
Vidéo (Reels) Taille maximale du fichier 1 Go
Formats MP4, MOV
Ratio d\'aspect 9:16 recommande, 1:1 et 4:5 supportes
Durée 3 secondes a 15 minutes
Résolution 1080x1920 recommandee
Photo Taille maximale du fichier 8 Mo
Formats JPEG, PNG
Ratio d\'aspect 1:1, 4:5, 1.91:1
Dimensions maximales 1440x1440 (carre), 1080x1350 (portrait)
Carrousel Images maximales 10 par publication
Média mixte Les photos et vidéos peuvent être combinées

Questions fréquemment posées

Cela fonctionne-t-il avec les comptes personnels Instagram ?

Non. L\'API d\'Instagram ne supporte que les comptes Business et Creator. Les comptes personnels ne sont accessibles via aucune API officielle. La bonne nouvelle est que passer à un compte Business ou Creator est gratuit et prend environ 30 secondes dans les paramètres de l\'application Instagram. Vous devez le connecter a une Page Facebook, ce que Upload-Post gere lors du processus de liaison de compte.

Can I publish Instagram Stories via API?

L\'API officielle d\'Instagram ne supporte pas la publication de Stories. C\'est une limitation imposee par Meta, pas par Upload-Post. Les Stories ne peuvent etre creees que via l\'application Instagram elle-meme. Si le support des Stories devient disponible via l\'API a l\'avenir, Upload-Post l\'ajoutera.

Les publications automatisées vont-elles faire shadowban de mon compte ?

Non. Upload-Post utilise l\'API officielle de publication de contenu d\'Instagram (la meme API que Hootsuite, Buffer et tous les autres outils autorises utilisent). Vos publications passent par le pipeline officiel d\'Instagram, il n\'y a donc aucun risque de shadowban ou de penalites de compte. C\'est fondamentalement different de l\'automatisation de navigateur ou des bots non officiels, qui eux violent les conditions d\'utilisation d\'Instagram. Si vous utilisez actuellement un outil comme Hootsuite ou Later, Upload-Post est une alternative orientée développeurs qui utilise le même accès officiel.

Y a-t-il une offre gratuite ?

Oui. Chaque compte Upload-Post inclut 10 téléchargements gratuits par mois sans carte de crédit requise. C\'est suffisant pour tester l\'API, validez votre workflow et confirmez que tout fonctionne avant de souscrire à un plan payant. Consultez le calendrier des événements réseaux sociaux pour planifier vos premières publications autour des événements à venir.

Commencez à automatiser vos publications Instagram dès aujourd\'hui\'hui

Un seul appel API. Reels, photos, carrousels, premiers commentaires, collaborateurs et planification. Tout est gere pour vous.

Aucune carte de crédit requise. 10 téléchargements gratuits inclus.