Auch für Entwickler gebaut.
Plane Instagram-Stories, Posts und Reels aus deinem eigenen Code und lies ihre Ergebnisse aus. Nutze die REST API, den MCP-Server für KI-Assistenten und unsere Open-Source-Tools, alles mit einem API-Schlüssel.
Schnellstart
Erstelle einen API-Schlüssel auf der Seite „Entwickler“ in der App. Liste dann deine verbundenen Instagram-Konten auf. Dieser Aufruf funktioniert in jedem Tarif.
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"])Authentifizierung
Sende deinen Schlüssel bei jeder Anfrage im Header Authorization: Bearer sl_live_…. Der Header X-Storylink-Api-Key funktioniert auch.
- Free: Daten des aktuellen Monats lesen.
- Pro: deinen gesamten Verlauf lesen.
- Business: zusätzlich Inhalte erstellen und planen, mit einem Schlüssel, bei dem „Erstellen und Planen von Inhalten erlauben“ aktiviert ist. Das legst du beim Erstellen des Schlüssels fest und kannst es später nicht ändern.
Du kannst einen Schlüssel auf einen Workspace beschränken. Ein Schlüssel ohne Workspace liest alle Workspaces deines Kontos und schreibt in den ältesten.
POST /v1/stories, /v1/posts und /v1/reels akzeptieren einen Idempotency-Key-Header mit bis zu 255 Zeichen. 24 Stunden lang erhält eine Wiederholung mit gleichem Schlüssel und gleichem Body wieder die erste Antwort und erstellt nichts Neues.
Bewahre Schlüssel auf deinem Server auf. Lege nie einen Schlüssel in einen Browser oder eine mobile App. Wenn ein Schlüssel öffentlich wird, widerrufe ihn auf der Seite „Entwickler“.
Endpunkte
Die Basis-URL ist https://storylink.pro/api/v1. Anfragen und Antworten sind JSON.
Stories
- POST
/storiesPlanen - GET
/storiesAuflisten - GET
/stories/{id}Einzeln abrufen - PATCH
/stories/{id}Aktualisieren - DELETE
/stories/{id}Abbrechen - POST
/stories/{id}/retry-publishFehlgeschlagene Veröffentlichung wiederholen - GET
/stories/{id}/insightsInsights
Posts
- POST
/postsPlanen - GET
/postsAuflisten - GET
/posts/{id}Einzeln abrufen - PATCH
/posts/{id}Aktualisieren - DELETE
/posts/{id}Abbrechen - POST
/posts/{id}/retry-publishFehlgeschlagene Veröffentlichung wiederholen - GET
/posts/{id}/insightsInsights
Reels
- POST
/reelsPlanen - GET
/reelsAuflisten - GET
/reels/{id}Einzeln abrufen - PATCH
/reels/{id}Aktualisieren - DELETE
/reels/{id}Abbrechen - POST
/reels/{id}/retry-fb-cross-postFacebook-Crosspost wiederholen - GET
/reels/{id}/insightsInsights
Medien
- POST
/media/uploadsUpload erstellen
Verbindungen
- GET
/connectionsKonten auflisten - GET
/connections/{id}Ein Konto abrufen - GET
/connections/{id}/followersFollower-Verlauf
Die OpenAPI-Spezifikation enthält alle Anfrage- und Antwortschemas.
Fehler
Eine fehlgeschlagene Anfrage gibt ein error-Objekt mit code, message und docs_url zurück. Die docs_url verweist auf den Code in dieser Liste.
invalid_api_key- Der API-Schlüssel ist ungültig.
api_key_revoked- Der API-Schlüssel wurde widerrufen.
api_key_expired- Der API-Schlüssel ist abgelaufen.
plan_not_entitled- Dein Tarif umfasst diese Anfrage nicht. Schreibzugriffe brauchen Business, Daten von vor diesem Monat brauchen Pro.
rate_limited- Zu viele Anfragen. Warte so viele Sekunden, wie im Header Retry-After steht.
validation_failed- Ein Parameter fehlt oder ist ungültig. Das Feld param nennt ihn.
media_not_ready- Ein Medien-Upload ist noch nicht fertig.
connection_not_eligible- Die Verbindung kann das nicht. Ein Reel ohne Instagram-Verbindung kann zum Beispiel seinen Facebook-Crosspost nicht wiederholen.
not_found- Mit dieser ID gibt es nichts, oder dein Schlüssel kann es nicht sehen.
story_not_in_scheduled_state- Der Status der Story erlaubt das nicht. Du kannst nur eine geplante Story aktualisieren oder abbrechen und nur eine fehlgeschlagene wiederholen.
post_not_in_scheduled_state- Der Status des Posts erlaubt das nicht. Du kannst nur einen geplanten Post aktualisieren oder abbrechen und nur einen fehlgeschlagenen wiederholen.
reel_not_in_scheduled_state- Der Status des Reels erlaubt das nicht. Du kannst nur ein geplantes Reel aktualisieren oder abbrechen und nur ein fehlgeschlagenes wiederholen.
workspace_read_only- Das Instagram-Konto des Workspace ist getrennt. Lesen funktioniert weiter, Schreiben nicht. Verbinde das Konto in der App neu.
workspace_suspended- Storylink hat diesen Workspace gesperrt. Kontaktiere uns.
idempotency_key_reuse_with_different_body- Du hast diesen Idempotency-Key schon einmal mit einem anderen Body gesendet.
idempotency_request_in_progress- Eine Anfrage mit diesem Idempotency-Key läuft noch.
meta_api_error- Meta hat einen Fehler zurückgegeben. Details stehen im Feld message.
storage_cap_exceeded- Dein Medienspeicher ist voll.
internal_error- Bei uns ist etwas fehlgeschlagen. Versuche es noch einmal oder kontaktiere uns.
MCP-Server
Storylink betreibt einen Model Context Protocol-Server unter https://storylink.pro/mcp. Verbinde Claude oder einen anderen MCP-Client mit deinem API-Schlüssel. Frag dann nach Aufrufen, Reichweite und Antworten deiner Stories, über alle deine Konten.
Ein Schlüssel nur zum Lesen bekommt 15 Tools. Ein Schlüssel mit Schreibrechten bekommt 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_…" }
}
}
}Der Quellcode liegt in storylink-mcp. Für fertige Instagram-Berichte füge storylink-skills hinzu.
Frag dann zum Beispiel: „Warum sind meine Story-Aufrufe letzte Woche gesunken?“
Ratenlimits
- 60 Anfragen pro Minute je Schlüssel. Der MCP-Server nutzt dasselbe Limit.
- Über dem Limit gibt die API
429 rate_limitedmit einemRetry-After-Header zurück. - Hochgeladene Medien zählen zum Speicher deines Tarifs.
- Die Veröffentlichungslimits von Instagram gelten zusätzlich.
Open Source
Diese Projekte sind öffentlich unter github.com/storylinkpro, mit MIT-Lizenz. Issues und Pull Requests sind willkommen.
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 ist nicht mit Meta Platforms, Inc. verbunden.
Support
Du baust etwas?
Eröffne ein Issue auf GitHub oder schreib uns.