/api/v4/social/brands/{brandId}/postsعرض قائمة بمنشورات علامة تجارية
يعرض قائمة مقسّمة إلى صفحات بمنشورات علامة تجارية على وسائل التواصل الاجتماعي، مع محتواها وجدول نشرها ومنصاتها وحالتها على مستوى كل قناة.
المعلمات
المسار
| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| brandId | string | مطلوب | Brand UUID whose posts should be listed. |
الاستعلام
| الاسم | النوع | مطلوب | الوصف | الافتراضي |
|---|---|---|---|---|
| filters | string | اختياري | JSON-encoded filter object. Fields: `name` (substring match on the post's internal name), `platforms` (array of the platform enum), `status` (array of `DRAFT`, `PENDING`, `SCHEDULED`, `PUBLISHED`, `FAILED`, `ARCHIVED`, `REJECTED`), `startDate` and `endDate` (`YYYY-MM-DD`, filtering on the post's schedule in the brand's timezone), `socialConnectedChannelId` (one connection), `approvalState` (array of workflow states), `viewMode` (string) and `filterByUser` (boolean, defaults to false). | — |
| page | integer | اختياري | 1-based page number. Defaults to 1. | — |
| size | integer | اختياري | Rows per page. Defaults to 20. | — |
| fetchPostContent | boolean | اختياري | When `true`, each row carries its full `content` object. Leave it off for a lighter list. | — |
الاستجابات
200A page of posts plus `pageInfo` for paging.
{ "data": { "getSocialMediaPostByList": { "socialPosts": [ { "socialPostId": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345", "name": "Autumn collection launch", "status": "PUBLISHED", "platforms": ["INSTAGRAM", "FACEBOOK", "LINKEDIN"], "socialPlatformIds": [2, 1, 4], "socialProfileDetailsId": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "createdAt": "2026-09-28T14:02:11Z", "createdBy": 40122, "author": "Dana Reyes", "approver": null, "approvalState": null, "actionOn": null, "actionBy": null, "publishedOn": "2026-10-02T13:30:04Z", "postAutomationId": null, "content": { "message": "Our autumn collection lands today. Solid oak, hand-finished, made two blocks from the shop.", "images": ["https://cdn.example.com/social/autumn-collection.jpg"], "video": [], "liveLink": "https://www.instagram.com/p/CxYz1234abc/", "boosted": false }, "connectedChannels": [ { "id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7", "platform": "INSTAGRAM", "displayName": "Jenny Home", "status": "SUCCESS", "liveLink": "https://www.instagram.com/p/CxYz1234abc/", "error": null } ] } ], "pageInfo": { "total": 64, "hasNextPage": true, "totalEngagementPosts": 41, "totalPublishedPosts": 47 } } }}401Unauthenticated, missing or invalid API key.
404No brand with that ID on this account (`SY95043`).
يعرض منشورات علامة تجارية واحدة، من الأحدث إلى الأقدم، مع عوامل تصفية للاسم والمنصة والحالة وحالة الموافقة والفترة الزمنية المجدولة للنشر. يحتوي كل صف على معلومات كافية لعرض تقويم أو موجز دون استدعاء ثانٍ لكل منشور.
حالة استخدام: تقويم محتوى. صفِّ باستخدام filters={"status":["SCHEDULED"],"startDate":"2026-10-01","endDate":"2026-10-31"} وضع كل صف عند publishedOn الخاص به أو، إذا كان المنشور لم يُنشر بعد، عند الموعد المجدول الذي أرسلته. أضف لكل عنصر إجراء إلغاء مرتبطًا بـ POST /social/posts/cancel، وافتح عرض التفاصيل باستخدام GET /social/posts/{postId}.
حالة استخدام: فحص حالات الفشل. أجرِ فحصًا ليليًا باستخدام filters={"status":["FAILED"]} لكل علامة تجارية وأصدر تنبيهات بشأن الصفوف المُعادة. يوضّح لك connectedChannels[].error المنصة التي رفضت النشر وسبب الرفض؛ وتحتاج القناة التي تُبلغ عن انتهاء صلاحية التفويض إلى رابط اتصال جديد، وليس إلى إعادة المحاولة.
ملاحظات.
socialPostIdهو UUID المجرّد الذي تقبله نقاط النهاية جلب المنشور والإحصاءات والإلغاء.- تُمرَّر عوامل التصفية على هيئة سلسلة نصية واحدة مُرمَّزة بتنسيق JSON في معامل الاستعلام
filters، وليس كمعاملات منفصلة. طبّق عليها ترميز URL. - يعتمد التقسيم إلى صفحات على الإزاحة (
page/size)؛ ويمثّلpageInfo.totalالعدد الإجمالي للمنشورات المطابقة، وليس حجم هذه الصفحة. يمثّلtotalPublishedPostsوtotalEngagementPostsعدّادين على مستوى العلامة التجارية بأكملها، ويمكن استخدامهما كبطاقتين في لوحة التحكم. - يحتوي الصف على الحالة على مستوى المنشور فقط. للاطلاع على موعد النشر النهائي المحدد ونتيجة النشر على مستوى كل قناة، افتح المنشور باستخدام
GET /social/posts/{postId}. - يُجري
startDateوendDateالتصفية بحسب موعد نشر المنشور المجدول، وتُقرأ قيمهما وفق المنطقة الزمنية للعلامة التجارية، وهي المنطقة نفسها التي تُفسَّر وفقها قيمتاscheduleDate/scheduleTime. - تكون قيمة
publishedOnهي null إلى أن يُنشر المنشور على قناة واحدة على الأقل. يحتفظ المنشور الذي فشل نشره على جميع قنواته بـpublishedOn: nullوبقيمةstatusتساويFAILED. - لا تُملأ قيم
approvalStateوapproverوactionOnوactionByإلا للحسابات التي تستخدم سير عمل للموافقة على المنشورات؛ وتبقى قيمها null في غير ذلك. - اضبط
fetchPostContent=trueفقط عند عرض محتوى المنشورات؛ فالإعداد الافتراضي الأخف كافٍ لعرض تقويم.
curl -X GET 'https://listingsapi.com/api/v4/social/brands/<brandId>/posts' \ -H "Authorization: API $LISTINGSAPI_KEY"