GET/api/v4/social/bulk-posts/{bulkJobId}

جلب مهمة نشر جماعي

يعيد حالة مهمة نشر جماعي على وسائل التواصل الاجتماعي، وأعدادها، ونتائج كل صف فيها.

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

المعلمات

المسار

الاسمالنوعمطلوبالوصف
bulkJobIdstringمطلوبJob UUID, the `job.id` returned by POST /social/bulk-posts.

الاستجابات

200The job with its counts and one entry per submitted row.
Response
{  "data": {    "getBulkSocialPostJob": {      "id": "9b3f18d0-7a26-4c51-8e94-1f0d5c6b7a82",      "status": "COMPLETED_WITH_ERRORS",      "totalCount": 3,      "processedCount": 3,      "successCount": 2,      "failureCount": 1,      "createdAt": "2026-09-28T14:04:52Z",      "updatedAt": "2026-09-28T14:05:31Z",      "results": [        {          "index": 0,          "clientReference": "campaign-4471-slot-01",          "socialProfileId": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",          "platforms": ["INSTAGRAM", "FACEBOOK"],          "status": "CREATED",          "socialPostId": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345",          "postStatus": "SCHEDULED",          "errors": []        },        {          "index": 1,          "clientReference": "campaign-4471-slot-02",          "socialProfileId": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",          "platforms": ["INSTAGRAM", "FACEBOOK", "LINKEDIN"],          "status": "CREATED",          "socialPostId": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70",          "postStatus": "SCHEDULED",          "errors": []        },        {          "index": 2,          "clientReference": "campaign-4471-slot-03",          "socialProfileId": "a90f7c22-5db1-4e83-9f40-2b7c6a1e5d33",          "platforms": ["INSTAGRAM"],          "status": "FAILED",          "socialPostId": null,          "postStatus": null,          "errors": [            {              "message": "SY95045: No connected channel for INSTAGRAM on this brand",              "code": "SY95045",              "contextInfo": [{ "key": "platform", "value": "INSTAGRAM" }]            }          ]        }      ]    }  }}
401Unauthenticated, missing or invalid API key.
404No job with that ID on this account (`SY95047`).

يقدّم تقريرًا عن مهمة أُنشئت بواسطة POST /social/bulk-posts. استعلم عنه دوريًا حتى يصل status إلى قيمة نهائية، ثم اقرأ results[] لمعرفة ما آل إليه كل صف.

حالة استخدام: مطابقة نتائج تحميل جماعي مع سجلات تقويمك. بعد إرسال دفعة، استعلم من نقطة النهاية هذه كل بضع ثوانٍ. عندما تصبح قيمة status نهائية، مرّ على عناصر results[] وطابق clientReference لكل عنصر مع سجلك، واكتب socialPostId في ذلك السجل. تتضمن الصفوف ذات status: "FAILED" السبب في errors[]؛ أعد إرسال هذه الصفوف فقط في دفعة جديدة.

حالة استخدام: شريط تقدم. تكفي مقارنة processedCount مع totalCount لتشغيل شريط تقدم دون المرور على results[] إطلاقًا، ويمنحك successCount / failureCount النتيجة الإجمالية فور اكتمال المهمة.

حالات المهمة

statusنهائيةالمعنى
QUEUEDلاقُبلت المهمة ولم تبدأ بعد. قد يكون results[] فارغًا.
PROCESSINGلايجري إنشاء الصفوف. يمتلئ results[] تدريجيًا مع تقدم العملية.
COMPLETEDنعمأُنشئت جميع الصفوف.
COMPLETED_WITH_ERRORSنعمأُنشئت بعض الصفوف وفشل إنشاء بعضها الآخر. اقرأ failureCount وerrors[] الخاص بكل صف.
FAILEDنعمتعذّر تشغيل المهمة نفسها. لم يُنشأ أي صف.

ملاحظات.

  • يُعاد إليك clientReference كما أرسلته في ذلك الصف، أيًا كانت قيمته. وهو أوضح رابط ببياناتك؛ أما index، وهو موضع الصف في المصفوفة التي أرسلتها بترقيم يبدأ من 0، فهو البديل عند عدم إرسال قيمة.
  • وصول صف إلى status: "CREATED" يعني أن المنشور موجود، ولا يعني أنه نُشر — إذ يوضح لك postStatus الحالة التي وصل إليها المنشور نفسه. تظل الصفوف ذات PUBLISH وSCHEDULE تمر بعد ذلك بمراحل النشر غير المتزامن: استخدم كل socialPostId مع GET /social/posts/{postId} واقرأ channels[] لمعرفة النتيجة الفعلية لكل قناة.
  • المهمة التي فشلت جميع صفوفها في التحقق من صحتها لن تُنشأ أصلًا، لأن الإنشاء الجماعي يرفض الدفعة قبل وضعها في قائمة الانتظار. وجود مهمة بحالة FAILED هنا يعني أن المهمة تعطلت بعد قبولها.
  • يتغير updatedAt مع معالجة الصفوف؛ ويستقر بمجرد وصول المهمة إلى حالة نهائية.
Request
curl -X GET 'https://listingsapi.com/api/v4/social/bulk-posts/<bulkJobId>' \  -H "Authorization: API $LISTINGSAPI_KEY"