Pensé pour les développeurs aussi.
Programmez des stories, publications et reels Instagram depuis votre propre code, et consultez leurs résultats. Utilisez l’API REST, le serveur MCP pour assistants IA et nos outils open source, le tout avec une seule clé API.
Démarrage rapide
Créez une clé API sur la page « Développeurs » de l’app. Listez ensuite vos comptes Instagram connectés. Cet appel fonctionne avec toutes les offres.
curl https://storylink.pro/api/v1/connections \
-H "Authorization: Bearer sl_live_…"
# → 200 OK
# { "data": [{ "id": "cnx_…", "platform": "instagram", "username": "…", "status": "active" }] }const res = await fetch("https://storylink.pro/api/v1/connections", {
headers: { Authorization: `Bearer ${process.env.STORYLINK_API_KEY}` },
});
const { data } = await res.json();
// data[0].username, data[0].statusimport os, requests
r = requests.get(
"https://storylink.pro/api/v1/connections",
headers={"Authorization": f"Bearer {os.environ['STORYLINK_API_KEY']}"},
)
for c in r.json()["data"]:
print(c["username"], c["status"])Authentification
Envoyez votre clé à chaque requête dans l’en-tête Authorization: Bearer sl_live_…. L’en-tête X-Storylink-Api-Key fonctionne aussi.
- Free : lire les données du mois en cours.
- Pro : lire tout votre historique.
- Business : créer et programmer aussi du contenu, avec une clé où « Autoriser la création et la programmation de contenu » est activé. Vous le choisissez à la création de la clé, et vous ne pouvez pas le modifier ensuite.
Vous pouvez limiter une clé à un espace de travail. Une clé sans espace de travail lit tous les espaces de travail de votre compte, et écrit dans le plus ancien.
POST /v1/stories, /v1/posts et /v1/reels acceptent un en-tête Idempotency-Key de 255 caractères maximum. Pendant 24 heures, une nouvelle tentative avec la même clé et le même corps renvoie la première réponse et ne crée rien de nouveau.
Gardez les clés sur votre serveur. Ne mettez jamais une clé dans un navigateur ou une app mobile. Si une clé fuite, révoquez-la sur la page « Développeurs ».
Endpoints
L’URL de base est https://storylink.pro/api/v1. Les requêtes et les réponses sont en JSON.
Stories
- POST
/storiesProgrammer - GET
/storiesLister - GET
/stories/{id}Obtenir un élément - PATCH
/stories/{id}Modifier - DELETE
/stories/{id}Annuler - POST
/stories/{id}/retry-publishRelancer une publication échouée - GET
/stories/{id}/insightsStatistiques
Publications
- POST
/postsProgrammer - GET
/postsLister - GET
/posts/{id}Obtenir un élément - PATCH
/posts/{id}Modifier - DELETE
/posts/{id}Annuler - POST
/posts/{id}/retry-publishRelancer une publication échouée - GET
/posts/{id}/insightsStatistiques
Reels
- POST
/reelsProgrammer - GET
/reelsLister - GET
/reels/{id}Obtenir un élément - PATCH
/reels/{id}Modifier - DELETE
/reels/{id}Annuler - POST
/reels/{id}/retry-fb-cross-postRelancer la publication croisée sur Facebook - GET
/reels/{id}/insightsStatistiques
Médias
- POST
/media/uploadsCréer un envoi
Connexions
- GET
/connectionsLister les comptes - GET
/connections/{id}Obtenir un compte - GET
/connections/{id}/followersHistorique des abonnés
La spécification OpenAPI contient tous les schémas de requête et de réponse.
Erreurs
Une requête échouée renvoie un objet error avec un code, un message et une docs_url. La docs_url renvoie vers le code dans cette liste.
invalid_api_key- La clé API n’est pas valide.
api_key_revoked- La clé API a été révoquée.
api_key_expired- La clé API a expiré.
plan_not_entitled- Votre offre n’inclut pas cette requête. Les écritures nécessitent Business, et les données d’avant ce mois-ci nécessitent Pro.
rate_limited- Trop de requêtes. Attendez le nombre de secondes indiqué dans l’en-tête Retry-After.
validation_failed- Un paramètre est manquant ou invalide. Le champ param l’indique.
media_not_ready- Un envoi de média n’est pas encore terminé.
connection_not_eligible- La connexion ne permet pas cette action. Par exemple, un reel sans connexion Instagram ne peut pas relancer sa publication croisée sur Facebook.
not_found- Rien n’existe avec cet id, ou votre clé ne peut pas le voir.
story_not_in_scheduled_state- Le statut de la story ne le permet pas. Vous pouvez modifier ou annuler uniquement une story programmée, et relancer uniquement une story échouée.
post_not_in_scheduled_state- Le statut de la publication ne le permet pas. Vous pouvez modifier ou annuler uniquement une publication programmée, et relancer uniquement une publication échouée.
reel_not_in_scheduled_state- Le statut du reel ne le permet pas. Vous pouvez modifier ou annuler uniquement un reel programmé, et relancer uniquement un reel échoué.
workspace_read_only- Le compte Instagram de l’espace de travail est déconnecté. La lecture fonctionne toujours, mais pas l’écriture. Reconnectez le compte dans l’app.
workspace_suspended- Storylink a suspendu cet espace de travail. Contactez-nous.
idempotency_key_reuse_with_different_body- Vous avez déjà envoyé cette Idempotency-Key, avec un corps différent.
idempotency_request_in_progress- Une requête avec cette Idempotency-Key est toujours en cours.
meta_api_error- Meta a renvoyé une erreur. Le champ message contient les détails.
storage_cap_exceeded- Votre stockage de médias est plein.
internal_error- Un problème est survenu de notre côté. Réessayez, ou contactez-nous.
Serveur MCP
Storylink exécute un serveur Model Context Protocol à l’adresse https://storylink.pro/mcp. Connectez Claude ou un autre client MCP avec votre clé API. Posez ensuite des questions sur les vues, la portée et les réponses de vos stories, sur tous vos comptes.
Une clé en lecture seule donne accès à 15 outils. Une clé avec droit d’écriture donne accès à 28.
claude mcp add --transport http storylink https://storylink.pro/mcp \
--header "Authorization: Bearer sl_live_…"{
"mcpServers": {
"storylink": {
"command": "npx",
"args": ["-y", "storylink-mcp"],
"env": { "STORYLINK_API_KEY": "sl_live_…" }
}
}
}Le code source est dans storylink-mcp. Pour des rapports Instagram prêts à l’emploi, ajoutez storylink-skills.
Demandez ensuite, par exemple : « Pourquoi les vues de mes stories ont-elles baissé la semaine dernière ? »
Limites de débit
- 60 requêtes par minute pour chaque clé. Le serveur MCP utilise la même limite.
- Au-delà de la limite, l’API renvoie
429 rate_limitedavec un en-têteRetry-After. - Les médias que vous envoyez comptent dans le stockage de votre offre.
- Les limites de publication d’Instagram s’appliquent aussi.
Open source
Ces projets sont publics sur github.com/storylinkpro, sous licence MIT. Les issues et pull requests sont les bienvenues.
npx @storylinkpro/instagram-stories-api stories
import { createClient } from "@storylinkpro/instagram-stories-api";
const ig = createClient({
accessToken: process.env.INSTAGRAM_ACCESS_TOKEN,
igUserId: process.env.INSTAGRAM_USER_ID,
});
for (const story of await ig.stories()) {
const { views, reach, replies } = await ig.storyInsights(story.id);
}Storylink n’est pas affilié à Meta Platforms, Inc.
Support
Vous développez quelque chose ?
Ouvrez une issue sur GitHub, ou écrivez-nous.