GET
/api/v4/bulk-posts/{postId}ID로 일괄 게시물 조회
콘텐츠, 사업장별 게시 상태, 참여도 분석이 포함된 단일 일괄(여러 사업장 대상) 게시물 캠페인을 반환합니다.
매개변수
경로
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| postId | string | 필수 | Base64-encoded bulk post ID (the `id` returned by POST /bulk-posts or listed by GET /locations/{locationId}/bulk-posts). |
응답
200The campaign's content, per-location publish details, and analytics.
{ "data": { "socialPostView": { "socialPostId": "U29jaWFsUG9zdDo1MTA4OA==", "socialPostInfo": { "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] }, "publishedLocationsCount": 3, "socialPostAnalyticsBySite": [ { "site": "GOOGLE", "views": 3120, "clicks": 240, "reactions": 61, "shares": 0, "comments": 0 }, { "site": "FACEBOOK", "views": 1090, "clicks": 78, "reactions": 26, "shares": 12, "comments": 4 } ], "socialPostAnalyticsByLocationId": [ { "locationId": 1800289, "siteStats": [ { "site": "GOOGLE", "status": "PUBLISHED", "views": 1040, "clicks": 80, "reactions": 20, "shares": 0, "comments": 0 }, { "site": "FACEBOOK", "status": "PUBLISHED", "views": 360, "clicks": 26, "reactions": 9, "shares": 4, "comments": 1 } ] } ] } }}401Unauthenticated, missing or invalid API key.
GET /posts/{postId}에 대응하는 일괄 작업용 엔드포인트입니다. 여러 사업장에 한 번에 게시된 캠페인에 대해 동일한 SocialPostView 구조를 반환하므로, publishedLocationsCount는 1보다 크고 socialPostAnalyticsByLocationId에는 매장별로 1개의 행이 포함됩니다.
사용 사례: 체인 전체의 게시 진행 상황 추적. 모든 매장의 명절 프로모션을 위해 POST /bulk-posts를 호출한 후, socialPostInfo.status가 SUCCESS가 될 때까지 GET /bulk-posts/{postId}를 폴링합니다. 그런 다음 socialPostAnalyticsByLocationId를 읽어 가장 많은 클릭을 유도한 매장을 확인하고, publishDetails와 각 사업장의 siteStats.status를 살펴 사이트가 ERROR를 반환한 매장을 찾습니다.
참고 사항.
postId는 일괄 생성 호출 또는 일괄 목록에서 반환된id를 Base64로 인코딩한 값이며, 원시 정수가 아닙니다.socialPostAnalyticsBySite는 캠페인에 포함된 모든 사업장의 수치를 집계하며,socialPostAnalyticsByLocationId는 동일한 수치를 매장별로 나누어 보여 줍니다.
이 예제는 API 스키마를 기반으로 작성되었습니다. 실제 시드 계정(Jenny Home)에는 일괄 캠페인이 없어 조회할 실제 ID가 없었습니다. 알 수 없거나 유효하지 않은 ID를 사용하면 {"data":null,"errors":[{"message":"An error occurred processing your request."}]}이 반환됩니다.
Request
curl -X GET 'https://listingsapi.com/api/v4/bulk-posts/<postId>' \ -H "Authorization: API $LISTINGSAPI_KEY"