مصمَّم للمطوّرين أيضًا.
جدول قصص Instagram ومنشوراته ومقاطع الريلز من الكود الخاص بك، واقرأ نتائجها. استخدم REST API وخادم MCP لمساعدي الذكاء الاصطناعي وأدواتنا مفتوحة المصدر، كلها بمفتاح 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 ساعة، تحصل إعادة المحاولة بنفس المفتاح والمحتوى على الاستجابة الأولى مرة أخرى، ولا تُنشئ شيئًا جديدًا.
احتفظ بالمفاتيح على خادمك. لا تضع مفتاحًا في متصفح أو تطبيق جوال أبدًا. إذا تسرّب مفتاح، فألغه في صفحة المطوّرون.
نقاط النهاية
عنوان URL الأساسي هو 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 الحد نفسه.
- عند تجاوز الحد، تُرجع الواجهة
429 rate_limitedمع ترويسةRetry-After. - الوسائط التي ترفعها تُحتسب من مساحة التخزين في خطتك.
- تنطبق أيضًا حدود النشر الخاصة بـ Instagram.
المصدر المفتوح
هذه المشاريع عامة على github.com/storylinkpro، بترخيص MIT. نرحّب بالـ issues وطلبات الدمج.
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، أو راسلنا.