GET/api/v4/social/brands/{brandId}/posts

عرض قائمة بمنشورات علامة تجارية

يعرض قائمة مقسّمة إلى صفحات بمنشورات علامة تجارية على وسائل التواصل الاجتماعي، مع محتواها وجدول نشرها ومنصاتها وحالتها على مستوى كل قناة.

يتطلب مفتاح API. راجع المصادقة لمعرفة تنسيق الترويسة وتدوير المفاتيح.

المعلمات

المسار

الاسمالنوعمطلوبالوصف
brandIdstringمطلوبBrand UUID whose posts should be listed.

الاستعلام

الاسمالنوعمطلوبالوصفالافتراضي
filtersstringاختياري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).—
pageintegerاختياري1-based page number. Defaults to 1.—
sizeintegerاختياريRows per page. Defaults to 20.—
fetchPostContentbooleanاختياريWhen `true`, each row carries its full `content` object. Leave it off for a lighter list.—

الاستجابات

200A page of posts plus `pageInfo` for paging.
Response
{  "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 فقط عند عرض محتوى المنشورات؛ فالإعداد الافتراضي الأخف كافٍ لعرض تقويم.
Request
curl -X GET 'https://listingsapi.com/api/v4/social/brands/<brandId>/posts' \  -H "Authorization: API $LISTINGSAPI_KEY"