Ook voor ontwikkelaars.
Plan Instagram Stories, berichten en reels in vanuit je eigen code en lees de resultaten uit. Gebruik de REST API, de MCP-server voor AI-assistenten en onze opensourcetools, allemaal met één API-sleutel.
Snel starten
Maak een API-sleutel op de pagina Ontwikkelaars in de app. Vraag daarna je gekoppelde Instagram-accounts op. Deze call werkt bij elk abonnement.
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"])Authenticatie
Stuur je sleutel bij elk verzoek mee in de header Authorization: Bearer sl_live_…. De header X-Storylink-Api-Key werkt ook.
- Free: lees gegevens van de huidige maand.
- Pro: lees je volledige geschiedenis.
- Business: maak en plan ook content in, met een sleutel die “Content maken en inplannen toestaan” heeft. Je kiest dit bij het maken van de sleutel en kunt het later niet wijzigen.
Je kunt een sleutel beperken tot één workspace. Een sleutel zonder workspace leest alle workspaces in je account en schrijft naar de oudste.
POST /v1/stories, /v1/posts en /v1/reels accepteren een Idempotency-Key-header van maximaal 255 tekens. Een nieuwe poging met dezelfde sleutel en body krijgt 24 uur lang opnieuw het eerste antwoord en maakt niets nieuws aan.
Bewaar sleutels op je server. Zet een sleutel nooit in een browser of mobiele app. Is een sleutel uitgelekt? Trek hem in op de pagina Ontwikkelaars.
Endpoints
De basis-URL is https://storylink.pro/api/v1. Verzoeken en antwoorden zijn JSON.
Stories
- POST
/storiesInplannen - GET
/storiesOpvragen - GET
/stories/{id}Eén opvragen - PATCH
/stories/{id}Bijwerken - DELETE
/stories/{id}Annuleren - POST
/stories/{id}/retry-publishMislukte publicatie opnieuw proberen - GET
/stories/{id}/insightsStatistieken
Berichten
- POST
/postsInplannen - GET
/postsOpvragen - GET
/posts/{id}Eén opvragen - PATCH
/posts/{id}Bijwerken - DELETE
/posts/{id}Annuleren - POST
/posts/{id}/retry-publishMislukte publicatie opnieuw proberen - GET
/posts/{id}/insightsStatistieken
Reels
- POST
/reelsInplannen - GET
/reelsOpvragen - GET
/reels/{id}Eén opvragen - PATCH
/reels/{id}Bijwerken - DELETE
/reels/{id}Annuleren - POST
/reels/{id}/retry-fb-cross-postFacebook-crosspost opnieuw proberen - GET
/reels/{id}/insightsStatistieken
Media
- POST
/media/uploadsUpload aanmaken
Koppelingen
- GET
/connectionsAccounts opvragen - GET
/connections/{id}Eén account opvragen - GET
/connections/{id}/followersVolgersgeschiedenis
De OpenAPI-specificatie bevat alle schema’s voor verzoeken en antwoorden.
Fouten
Een mislukt verzoek geeft een error-object terug met een code, een message en een docs_url. De docs_url linkt naar de code in deze lijst.
invalid_api_key- De API-sleutel is niet geldig.
api_key_revoked- De API-sleutel is ingetrokken.
api_key_expired- De API-sleutel is verlopen.
plan_not_entitled- Je abonnement omvat dit verzoek niet. Schrijven vereist Business en gegevens van vóór deze maand vereisen Pro.
rate_limited- Te veel verzoeken. Wacht het aantal seconden uit de Retry-After-header.
validation_failed- Een parameter ontbreekt of is niet geldig. Het veld param noemt welke.
media_not_ready- Een media-upload is nog niet klaar.
connection_not_eligible- De koppeling kan dit niet. Een reel zonder Instagram-koppeling kan bijvoorbeeld zijn Facebook-crosspost niet opnieuw proberen.
not_found- Er bestaat niets met dit id, of je sleutel kan het niet zien.
story_not_in_scheduled_state- De status van de Story staat dit niet toe. Je kunt alleen een ingeplande Story bijwerken of annuleren, en alleen een mislukte opnieuw proberen.
post_not_in_scheduled_state- De status van het bericht staat dit niet toe. Je kunt alleen een ingepland bericht bijwerken of annuleren, en alleen een mislukt bericht opnieuw proberen.
reel_not_in_scheduled_state- De status van de reel staat dit niet toe. Je kunt alleen een ingeplande reel bijwerken of annuleren, en alleen een mislukte opnieuw proberen.
workspace_read_only- Het Instagram-account van de workspace is ontkoppeld. Lezen werkt nog, schrijven niet. Koppel het account opnieuw in de app.
workspace_suspended- Storylink heeft deze workspace opgeschort. Neem contact met ons op.
idempotency_key_reuse_with_different_body- Je hebt deze Idempotency-Key al eerder gestuurd, met een andere body.
idempotency_request_in_progress- Een verzoek met deze Idempotency-Key loopt nog.
meta_api_error- Meta gaf een fout terug. Het veld message bevat de details.
storage_cap_exceeded- Je mediaopslag is vol.
internal_error- Er ging iets mis aan onze kant. Probeer het opnieuw of neem contact met ons op.
MCP-server
Storylink draait een Model Context Protocol-server op https://storylink.pro/mcp. Koppel Claude of een andere MCP-client met je API-sleutel. Vraag daarna naar de weergaven, het bereik en de reacties van je Stories, voor al je accounts.
Een sleutel met alleen leesrechten krijgt 15 tools. Een sleutel die kan schrijven krijgt er 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_…" }
}
}
}De broncode staat in storylink-mcp. Voeg storylink-skills toe voor kant-en-klare Instagram-rapporten.
Vraag daarna bijvoorbeeld: “Waarom daalden de weergaven van mijn Stories vorige week?”
Rate limits
- 60 verzoeken per minuut per sleutel. De MCP-server gebruikt dezelfde limiet.
- Boven de limiet geeft de API
429 rate_limitedterug met eenRetry-After-header. - Media die je uploadt tellen mee voor de opslag van je abonnement.
- De publicatielimieten van Instagram zelf gelden ook.
Open source
Deze projecten staan openbaar op github.com/storylinkpro, onder de MIT-licentie. Issues en pull requests zijn welkom.
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 is niet gelieerd aan Meta Platforms, Inc.
Support
Ben je iets aan het bouwen?
Open een issue op GitHub of mail ons.