API Instagram en 2026 : l'API Graph après Basic Display, prix, limites et exemple Python
Oui, Instagram a une API, mais seulement pour les comptes professionnels : la Basic Display API, qui lisait les comptes personnels, a cessé de fonctionner le 4 décembre 2024. Il reste l'Instagram Graph API, via Instagram Login ou Facebook Login. Meta n'annonce aucun tarif. Les limites : 100 posts publiés et 4 800 appels par impression, les deux sur 24 heures. Vérifié le 24 septembre 2026.
Instagram a-t-il une API ?
Jusqu'en 2024, il y en avait deux. La Basic Display API, lancée en 2019, était « conçue pour les usages grand public de particuliers ayant un compte personnel », selon les mots de Meta : elle lisait les infos de profil et les médias. La Graph API servait les comptes business.
Le 4 septembre 2024, Meta a annoncé la fin de Basic Display : à partir du 4 décembre 2024, « toutes les requêtes à l'Instagram Basic Display API échoueront ». Le même article orientait les développeurs vers deux configurations : l'API Instagram avec Instagram Login, qui venait de sortir, et l'API Instagram avec Facebook Login.
Les deux correspondent à ce qu'on appelle aujourd'hui l'Instagram Graph API, et les deux exigent un compte professionnel, entreprise ou créateur. Il n'existe plus d'API officielle pour les comptes personnels.
Instagram Graph API : Instagram Login ou Facebook Login
Le choix de la connexion détermine ce que tu peux construire. D'après la vue d'ensemble de l'Instagram Platform de Meta, lue le 24 septembre 2026 :
| Instagram Login | Facebook Login | |
|---|---|---|
| Hôte | graph.instagram.com |
graph.facebook.com |
| Page Facebook obligatoire | Non | Oui, lié au compte |
| Token | Jeton utilisateur Instagram | Jeton Facebook User ou Page |
| Publication de contenu | Oui | Oui |
| Modération des commentaires | Oui | Oui |
| La messagerie | Oui | Via la Messenger Platform |
| Statistiques et mentions | Oui | Oui |
| Recherche par hashtag | Non | Oui |
| Identification de produits | Non | Oui |
| Publicités en partenariat | Non | Oui |
| Autorisations de publication | instagram_business_basic, instagram_business_content_publish |
instagram_basic, instagram_content_publish, pages_read_engagement |
Prends Instagram Login quand tu travailles sur le contenu du compte lui-même : publication, commentaires, DM, statistiques. Il n'a besoin d'aucune Page Facebook, et c'est la configuration qu'utilise PlugKit. Meta résume sa limite en une ligne : « Cette configuration de l'API ne donne accès ni aux publicités ni à l'identification. » Prends Facebook Login quand tu as besoin de la recherche par hashtag, de l'identification de produits, des publicités en partenariat ou des « métadonnées et statistiques de base sur d'autres comptes Instagram Business et Creator ».
Niveaux d'accès, App Review et jetons
Ton app Meta doit être de type Business. Ensuite, deux niveaux d'accès :
- Le Standard Access, le niveau par défaut, « est destiné aux apps qui ne seront utilisées que par des personnes ayant un rôle dessus, pendant le développement de l'app, ou pour tester ton app. » Tes propres comptes entrent dans ce cas. Pas d'App Review.
- L'Advanced Access est obligatoire « si ton app sert des comptes professionnels Instagram que tu ne possèdes pas ou ne gères pas ». Il demande l'App Review et la Business Verification.
Un jeton courte durée tient une heure ; un jeton longue durée tient 60 jours et peut être renouvelé avant son expiration. Pour un premier test, l'App Dashboard en génère un : Instagram, API setup with Instagram business login, puis Generate token à côté de ton compte.
Un piège passe facilement inaperçu. GET /me?fields=user_id,username renvoie deux ID. id est propre à l'app ; user_id est l'ID du compte professionnel Instagram, celui qu'attendent tous les endpoints de publication.
Tarifs de l'API Instagram
Meta n'affiche aucun prix pour l'API Instagram. Aucune des pages que j'ai lues le 24 septembre 2026 (la vue d'ensemble, la publication de contenu, la limitation du débit et les statistiques) ne parle de frais. Ce n'est pas vrai partout : X facture chaque appel, et PlugKit le répercute à prix coûtant, 0,005 $ pour lire un post et 0,015 $ pour en publier un, d'après sa documentation de facturation.
Sur Instagram, tu paies plutôt en travail :
| Coût | Construire sur la Graph API | Passer par PlugKit |
|---|---|---|
| Frais par appel | Aucun indiqué par Meta | Aucun pour Instagram ; X est la seule plateforme facturée à l'appel |
| Abonnement | 0 $ | 29 $ par mois pour 5 comptes, 97 $ pour 30 |
| Comptes des autres | App Review et Business Verification | Ils se connectent via le lien OAuth de PlugKit |
| Renouvellement du token | Ton code, avant le 60e jour | PlugKit stocke un jeton longue durée |
| File d'attente, nouvelles tentatives, webhooks | Ton code | Inclus |
Limites de débit de l'API Instagram
| Limite | Valeur | Source Meta |
|---|---|---|
| Appels à la plateforme, hors messagerie | 4 800 × impressions par 24 h | Limites de débit |
| Posts publiés via l'API | 100 par période glissante de 24 h dans le guide, quota_total à 50 sur la page de référence |
Publication de contenu |
| API Conversations | 2 appels par seconde et par compte | Limitation du débit |
| Send API | 100 appels par seconde pour le texte, les liens, les réactions et les stickers ; 10 pour l'audio ou la vidéo | Limitation du débit |
| Réponses privées | 750 appels par heure sur les commentaires de posts et de reels ; 100 par seconde sur les commentaires en Live | Limitation du débit |
| Conteneur non publié | Expire au bout de 24 h | Publication de contenu |
Ici, les impressions désignent « le nombre de fois où un contenu du compte professionnel Instagram de l'utilisateur de l'app est apparu sur l'écran d'une personne au cours des dernières 24 heures ». Un nouveau compte avec peu de portée obtient un petit budget d'appels. Chaque réponse contient un en-tête X-Business-Use-Case-Usage : lis-le au lieu de deviner.
Les deux quotas de posts se contredisent. Avant un gros lot, appelle GET /<IG_ID>/content_publishing_limit?fields=quota_usage,config et fie-toi à ce qu'il renvoie pour ton compte. Les autres réseaux sont dans mon tableau des limites de débit.
Exemple Python pour l'API Instagram
Ce script publie une photo avec Instagram Login. Il te faut Python 3, requests, un token longue durée dans IG_TOKEN et un JPEG sur une URL publique, car Meta va chercher le fichier lui-même.
import os
import time
import requests
GRAPH = "https://graph.instagram.com/v25.0"
HEADERS = {"Authorization": f"Bearer {os.environ['IG_TOKEN']}"}
def call(method, path, params=None, body=None):
r = requests.request(method, f"{GRAPH}/{path}", headers=HEADERS,
params=params, json=body, timeout=30)
data = r.json()
if "error" in data:
raise RuntimeError(f"{r.status_code}: {data['error']['message']}")
return data
# The professional account ID is user_id, not id
ig_id = call("GET", "me", {"fields": "user_id,username"})["user_id"]
# 1. Container: a public JPEG plus the caption
container = call("POST", f"{ig_id}/media", body={
"image_url": "https://example.com/launch.jpg",
"caption": "Launch day. Link in bio.",
})["id"]
# 2. Wait for FINISHED: Meta suggests once a minute, 5 minutes max
for _ in range(5):
status = call("GET", container, {"fields": "status_code"})["status_code"]
if status == "FINISHED":
break
if status in ("ERROR", "EXPIRED"):
raise RuntimeError(f"container {container}: {status}")
time.sleep(60)
else:
raise RuntimeError("container not ready after 5 minutes")
# 3. Publish
media_id = call("POST", f"{ig_id}/media_publish",
body={"creation_id": container})["id"]
print("published", media_id)
# 4. What is left of the 24-hour quota
print(call("GET", f"{ig_id}/content_publishing_limit",
{"fields": "quota_usage,config"})["data"][0])
Lancé le 24 septembre 2026 avec un jeton volontairement invalide, le script s'arrête dès le premier appel :
RuntimeError: 401: Invalid OAuth access token - Cannot parse access token
Le corps brut derrière contient "type":"OAuthException","code":190. Avec un token valide sur un compte professionnel, le script affiche l'ID du nouveau média, puis ta consommation de quota.
API Instagram Reels
Un reel, ce sont les trois mêmes appels avec un autre conteneur :
container = call("POST", f"{ig_id}/media", body={
"media_type": "REELS",
"video_url": "https://example.com/clip.mp4",
"caption": "New reel",
"share_to_feed": True,
})["id"]
Une vidéo peut prendre plus de temps à traiter qu'une photo : c'est à ça que sert la boucle d'interrogation de 5 minutes. Le conteneur accepte aussi cover_url, thumb_offset, audio_name, collaborators et trial_params, ainsi que upload_type pour les uploads avec reprise, que le guide de Meta envoie vers un autre hôte, rupload.facebook.com. Les specs, d'après la référence media de Meta :
| Reel | Vidéo de story | Image du feed | |
|---|---|---|---|
| Format | MP4 ou MOV | MP4 ou MOV | JPEG uniquement |
| Durée | 3 s à 15 min | Jusqu'à 60 s | |
| Taille maximale du fichier | 300 Mo | 100 Mo | 8 Mo |
| Codecs | H.264 ou HEVC, AAC jusqu'à 48 kHz | Même famille que les reels | |
| Fréquence d'images | 23 à 60 fps | ||
| Ratio | 0,01:1 à 10:1, 9:16 recommandé | 4:5 à 1,91:1 |
Les stories utilisent media_type=STORIES. Les carrousels acceptent jusqu'à 10 images ou vidéos sous forme de conteneurs enfants, puis un conteneur CAROUSEL que tu publies.
Construire sur la Graph API, ou s'y brancher
Construis dessus si tu as une seule app, tes propres comptes, et un besoin comme la recherche par hashtag ou les données sur d'autres entreprises, que seul Facebook Login couvre. Le Python ci-dessus couvre l'essentiel de la partie publication.
Branche-toi dessus quand Instagram est un réseau parmi d'autres, quand un agent fait le travail, ou quand tu préfères ne pas gérer toi-même le renouvellement des jetons, les files d'attente et l'App Review. PlugKit tourne sur Instagram Login : sa documentation couvre la publication d'images, de vidéos, de reels avec le mode essai et de stories, les DM, les commentaires et les statistiques, à côté de LinkedIn, X, TikTok, YouTube, Facebook, WhatsApp et Telegram. La programmation est traitée dans comment automatiser ses posts Instagram. Pour les agents, le serveur MCP l'expose sous forme de 103 outils :
claude mcp add -t http plugkit https://api.plugkit.co/mcp
C'est 29 $ par mois pour 5 comptes connectés, sans engagement, avec 7 jours d'essai gratuit. Là où ce n'est pas la bonne réponse : sa documentation ne mentionne ni recherche par hashtag ni données sur d'autres comptes, donc un outil de veille doit partir sur Facebook Login. Plus de détails sur la page serveur MCP Instagram, dans mon guide des API de réseaux sociaux et sur le hub API.
FAQ
L'API Instagram est-elle gratuite ?
Meta n'affiche aucun prix : aucune des pages de l'Instagram Platform que j'ai lues le 24 septembre 2026 ne parle de frais. Tu paies autrement : un budget d'appels lié à tes impressions, l'App Review et la Business Verification si tu gères les comptes d'autres personnes, et le code que tu maintiens.
Puis-je utiliser l'API Instagram avec un compte personnel ?
Non. Les deux configurations actuelles exigent un compte professionnel ou créateur, et la Basic Display API, celle prévue pour les comptes personnels, ne répond plus depuis le 4 décembre 2024. Passer en compte professionnel dans les réglages de l'app est le seul moyen d'y accéder.
Qu'est-ce qui a remplacé l'Instagram Basic Display API ?
L'API Instagram avec Instagram Login, lancée en 2024 et utilisable sans Page Facebook, et l'API Instagram avec Facebook Login. Les deux ne servent que les comptes professionnels.
Combien de posts puis-je publier par jour avec l'API Instagram ?
Le guide de publication de Meta indique 100 posts publiés via l'API sur 24 heures glissantes, un carrousel comptant pour un. La page de référence de l'endpoint content_publishing_limit indique encore 50. Interroge cet endpoint pour ton compte avant de prévoir ton volume.
Faut-il passer l'App Review pour l'Instagram Graph API ?
Pas pour tes propres comptes : le Standard Access couvre les apps utilisées par des personnes qui y ont un rôle. L'Advanced Access, qui demande l'App Review et la Business Verification, devient obligatoire dès que ton app sert des comptes professionnels que tu ne possèdes pas ou ne gères pas.
Un plug pour chaque plateforme que ton agent touche
29 $ par mois pour 5 comptes connectés, résiliable à tout moment. Toutes les fonctionnalités dans tous les forfaits.
Récupère ta clé API →