GET/api/v4/bulk-posts/{postId}

ID로 일괄 게시물 조회

콘텐츠, 사업장별 게시 상태, 참여도 분석이 포함된 단일 일괄(여러 사업장 대상) 게시물 캠페인을 반환합니다.

API 키가 필요합니다. 헤더 형식과 키 교체는 인증을 참고하세요.

매개변수

경로

이름유형필수설명
postIdstring필수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.
Response
{  "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"