בנוי גם בשביל מפתחים.
תזמנו סטוריז, פוסטים וריילס של Instagram מהקוד שלכם, וקראו את התוצאות שלהם. השתמשו ב-REST API, בשרת ה-MCP לעוזרי AI ובכלי הקוד הפתוח שלנו, הכול עם מפתח API אחד.
התחלה מהירה
צרו מפתח API בעמוד מפתחים באפליקציה. אחר כך הציגו את חשבונות Instagram המחוברים שלכם. הקריאה הזו עובדת בכל התוכניות.
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"])אימות
שלחו את המפתח בכל בקשה בכותרת Authorization: Bearer sl_live_…. גם הכותרת X-Storylink-Api-Key עובדת.
- Free: קריאת נתונים מהחודש הנוכחי.
- Pro: קריאת כל ההיסטוריה.
- Business: גם יצירה ותזמון של תוכן, עם מפתח שמסומן בו “לאפשר יצירה ותזמון של תוכן”. בוחרים את זה ביצירת המפתח, ואי אפשר לשנות את זה אחר כך.
אפשר להגביל מפתח לסביבת עבודה אחת. מפתח בלי סביבת עבודה קורא מכל סביבות העבודה בחשבון, וכותב לוותיקה ביותר.
POST /v1/stories, /v1/posts ו-/v1/reels מקבלים כותרת Idempotency-Key של עד 255 תווים. במשך 24 שעות, ניסיון חוזר עם אותו מפתח ואותו גוף מקבל שוב את התגובה הראשונה, ולא יוצר שום דבר חדש.
שמרו מפתחות בשרת. לעולם אל תשימו מפתח בדפדפן או באפליקציית מובייל. אם מפתח דלף, בטלו אותו בעמוד מפתחים.
נקודות קצה
כתובת הבסיס היא https://storylink.pro/api/v1. הבקשות והתגובות הן JSON.
סטוריז
- POST
/storiesתזמון - GET
/storiesרשימה - GET
/stories/{id}קבלת פריט - PATCH
/stories/{id}עדכון - DELETE
/stories/{id}ביטול - POST
/stories/{id}/retry-publishניסיון חוזר לפרסום שנכשל - GET
/stories/{id}/insightsתובנות
פוסטים
- POST
/postsתזמון - GET
/postsרשימה - GET
/posts/{id}קבלת פריט - PATCH
/posts/{id}עדכון - DELETE
/posts/{id}ביטול - POST
/posts/{id}/retry-publishניסיון חוזר לפרסום שנכשל - GET
/posts/{id}/insightsתובנות
ריילס
- POST
/reelsתזמון - GET
/reelsרשימה - GET
/reels/{id}קבלת פריט - PATCH
/reels/{id}עדכון - DELETE
/reels/{id}ביטול - POST
/reels/{id}/retry-fb-cross-postניסיון חוזר לפרסום המקביל ב-Facebook - GET
/reels/{id}/insightsתובנות
מדיה
- POST
/media/uploadsיצירת העלאה
חיבורים
- GET
/connectionsרשימת חשבונות - GET
/connections/{id}קבלת חשבון - GET
/connections/{id}/followersהיסטוריית עוקבים
במפרט OpenAPI יש את כל הסכמות של הבקשות והתגובות.
שגיאות
בקשה שנכשלה מחזירה אובייקט error עם code, message ו-docs_url. ה-docs_url מקשר לקוד ברשימה הזו.
invalid_api_key- מפתח ה-API לא תקין.
api_key_revoked- מפתח ה-API בוטל.
api_key_expired- תוקף מפתח ה-API פג.
plan_not_entitled- התוכנית שלכם לא כוללת את הבקשה הזו. כתיבה דורשת Business, ונתונים מלפני החודש הזה דורשים Pro.
rate_limited- יותר מדי בקשות. המתינו את מספר השניות שבכותרת Retry-After.
validation_failed- פרמטר חסר או לא תקין. השדה param מציין אותו.
media_not_ready- העלאת מדיה עדיין לא הסתיימה.
connection_not_eligible- החיבור לא יכול לעשות את זה. לדוגמה, ריל בלי חיבור Instagram לא יכול לנסות שוב את הפרסום המקביל ב-Facebook.
not_found- אין פריט עם המזהה הזה, או שהמפתח שלכם לא רואה אותו.
story_not_in_scheduled_state- הסטטוס של הסטורי לא מאפשר את זה. אפשר לעדכן או לבטל רק סטורי מתוזמן, ולנסות שוב רק סטורי שנכשל.
post_not_in_scheduled_state- הסטטוס של הפוסט לא מאפשר את זה. אפשר לעדכן או לבטל רק פוסט מתוזמן, ולנסות שוב רק פוסט שנכשל.
reel_not_in_scheduled_state- הסטטוס של הריל לא מאפשר את זה. אפשר לעדכן או לבטל רק ריל מתוזמן, ולנסות שוב רק ריל שנכשל.
workspace_read_only- חשבון Instagram של סביבת העבודה מנותק. קריאה עדיין עובדת, אבל כתיבה לא. חברו מחדש את החשבון באפליקציה.
workspace_suspended- Storylink השעתה את סביבת העבודה הזו. צרו איתנו קשר.
idempotency_key_reuse_with_different_body- כבר שלחתם את ה-Idempotency-Key הזה, עם גוף אחר.
idempotency_request_in_progress- בקשה עם ה-Idempotency-Key הזה עדיין רצה.
meta_api_error- Meta החזירה שגיאה. הפרטים בשדה message.
storage_cap_exceeded- נפח האחסון למדיה שלכם מלא.
internal_error- משהו נכשל אצלנו. נסו שוב, או צרו איתנו קשר.
שרת MCP
Storylink מפעילה שרת Model Context Protocol בכתובת https://storylink.pro/mcp. חברו את Claude או לקוח MCP אחר עם מפתח ה-API שלכם. אחר כך שאלו על הצפיות, החשיפה והתגובות של הסטוריז שלכם, בכל החשבונות.
מפתח לקריאה בלבד מקבל 15 כלים. מפתח עם הרשאת כתיבה מקבל 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_…" }
}
}
}קוד המקור נמצא ב-storylink-mcp. לדוחות Instagram מוכנים, הוסיפו את storylink-skills.
ואז שאלו, למשל: “למה הצפיות בסטוריז שלי ירדו בשבוע שעבר?”
מגבלות קצב
- 60 בקשות בדקה לכל מפתח. שרת ה-MCP משתמש באותה מגבלה.
- מעל המגבלה, ה-API מחזיר
429 rate_limitedעם כותרתRetry-After. - מדיה שאתם מעלים נספרת בנפח האחסון של התוכנית שלכם.
- גם מגבלות הפרסום של Instagram עצמה חלות.
קוד פתוח
הפרויקטים האלה פתוחים לציבור ב-github.com/storylinkpro, תחת רישיון MIT. נשמח ל-issues ול-pull requests.
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 אינה קשורה ל-Meta Platforms, Inc.
תמיכה
בונים משהו?
פתחו issue ב-GitHub, או כתבו לנו.