GET
/api/v4/social/brands/{brandId}/posts브랜드의 게시물 목록 조회
브랜드의 소셜 게시물 목록을 콘텐츠, 게시 일정, 플랫폼 및 채널별 상태와 함께 페이지 단위로 반환합니다.
매개변수
경로
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| brandId | string | 필수 | Brand UUID whose posts should be listed. |
쿼리
| 이름 | 유형 | 필수 | 설명 | 기본값 |
|---|---|---|---|---|
| filters | string | 선택 | 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). | — |
| page | integer | 선택 | 1-based page number. Defaults to 1. | — |
| size | integer | 선택 | Rows per page. Defaults to 20. | — |
| fetchPostContent | boolean | 선택 | When `true`, each row carries its full `content` object. Leave it off for a lighter list. | — |
응답
200A page of posts plus `pageInfo` for paging.
{ "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는 get, insights 및 cancel에서 허용하는 일반 UUID입니다.- 필터는 별도의 매개변수가 아니라
filters쿼리 매개변수에 JSON으로 인코딩된 하나의 문자열로 전달됩니다. 이 문자열을 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"