GET/api/v4/locations/{locationId}/bulk-posts

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

يعيد صفحة من حملات المنشورات الجماعية (متعددة المواقع) التي تشمل موقعًا واحدًا.

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

المعلمات

المسار

الاسمالنوعمطلوبالوصف
locationIdstringمطلوبBase64-encoded location cursor / global ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`). Pass it unchanged, do not URL-encode it. The base64 cursor always resolves; the raw numeric database ID also works on this endpoint, but the base64 form is the portable choice across the API.

الاستعلام

الاسمالنوعمطلوبالوصفالافتراضي
pageintegerاختياري1-based page number for offset pagination.1
perPageintegerاختياريNumber of records per page.—
filtersstringاختياريJSON-encoded SocialPostFiltersInput (e.g. by `type`, `status`, `creationDateRange`, `siteUrls`).—
sortFieldsstringاختياريJSON-encoded sort object `{ "field": "created_at", "order": "Descending" }`. `field` is one of name, type, status, created_at, schedule_start_date, schedule_end_date, client_name, clicks, views, shares.—
locationIdsstringاختياريJSON-encoded array of location IDs to include alongside the path location.—
componentIdentifierstringاختياريFilter to campaigns created by a specific component/integration.—

الاستجابات

200A page of bulk campaigns that include the location. `records` is empty when no bulk campaign has targeted it.
Response
{  "data": {    "rollupSocialPosts": {      "records": [        {          "id": "U29jaWFsUG9zdDo1MTA4OA==",          "name": "Diwali Offer - All Stores",          "status": "SUCCESS",          "type": "OFFER",          "createdAt": "2026-06-20",          "scheduledStartDate": "2026-06-22",          "scheduledEndDate": "2026-07-06",          "views": 4210,          "clicks": 318,          "shares": 12,          "reactions": 87,          "comments": 4,          "sites": ["GOOGLE", "FACEBOOK"],          "message": [            { "site": "GOOGLE", "message": "Festive savings across all our stores this week." },            { "site": "FACEBOOK", "message": "Festive savings across all our stores this week!" }          ],          "cta": [            { "type": { "value": "GET_OFFER", "label": "Get offer" }, "url": "https://jennyhome.example/diwali", "site": "GOOGLE", "tinyUrl": "https://tiny.cc/jh-diwali" }          ],          "contextInfo": {            "couponCode": "DIWALI25",            "redeemUrl": "https://jennyhome.example/diwali",            "termsConditions": "Valid in-store only. Cannot be combined with other offers.",            "title": "25% off storewide",            "discount": "25%",            "startDay": "2026-06-22",            "endDay": "2026-07-06"          },          "mediaUrl": [            { "url": "https://cdn.listingsapi.com/posts/51088/diwali.jpg", "site": "GOOGLE", "type": "IMAGE" }          ],          "publishDetails": [            { "site": "GOOGLE", "status": "PUBLISHED", "createdDate": "2026-06-20", "publishedDate": "2026-06-22", "submissionError": null },            { "site": "FACEBOOK", "status": "PUBLISHED", "createdDate": "2026-06-20", "publishedDate": "2026-06-22", "submissionError": null }          ],          "postLinks": [            { "site": "GOOGLE", "link": "https://www.google.com/maps/place/?post=51088" }          ],          "locationIds": [1800289, 1800290, 1800291],          "clientName": "Jenny Home"        }      ],      "locationDetails": [        {          "id": "TG9jYXRpb246MTgwMDI4OQ==",          "name": "Jenny Home",          "street": "600 Congress Ave, Suite 200",          "city": "Austin",          "postalCode": "78701",          "countryIso": "US",          "stateIso": "TX",          "stateName": "Texas",          "storeId": null        }      ],      "pageInfo": {        "totalPages": 1,        "hasNextPage": false,        "hasPreviousPage": false,        "totalRecords": 1      }    }  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

المنشور الجماعي هو حملة واحدة تُنشر في مواقع عديدة دفعة واحدة (وتُنشأ عبر POST /bulk-posts). تسرد نقطة النهاية هذه الحملات الجماعية التي تشمل الموقع المحدد، لتتمكن من الاطلاع على ملخصات مجمعة لمتاجر متعددة من منظور متجر واحد. بنية الاستجابة مطابقة لبنية استجابة GET /locations/{locationId}/posts؛ والفرق أن السجلات هنا تشمل عدة locationIds.

حالة استخدام: مطابقة نتائج إطلاق حملة على مستوى السلسلة. بعد إطلاق "عرض ديوالي" في جميع المتاجر، استدعِ GET /locations/1800289/bulk-posts من أي متجر منها للتأكد من وصول الحملة إليه، وفحص contextInfo المشترك (رمز القسيمة، والخصم، والشروط)، وقراءة publishDetails الخاص بكل موقع لرصد submissionError من FACEBOOK في ذلك الموقع.

نقاط تستدعي الانتباه.

  • كما هو الحال في قائمة الموقع الواحد: يعتمد تقسيم النتائج إلى صفحات على الإزاحة عبر page/perPage، وsortFields كائن واحد (وليس مصفوفة)، وقد يؤدي الاستعلام الدوري المكثف إلى إرجاع HTTP 429.
  • يمثل locationIds في كل سجل المجموعة الكاملة التي استهدفتها الحملة، وسيحتوي على معرّفات إضافية إلى جانب المعرّف الموجود في المسار.

مصفوفة records أعلاه توضيحية. لا توجد حملات جماعية للموقع الفعلي المُدرج ضمن البيانات الأولية (Jenny Home)، لذا يعيد الاستدعاء الفعلي records: [] مع pageInfo.totalRecords: 0.

Request
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/bulk-posts' \  -H "Authorization: API $LISTINGSAPI_KEY"