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`).
1つのブランドの投稿を新しい順に一覧表示し、名前、プラットフォーム、ステータス、承認状態、スケジュールの期間で絞り込めます。各行には、投稿ごとに追加で呼び出さなくてもカレンダーやフィードを表示できるだけの情報が含まれています。
ユースケース:コンテンツカレンダー。 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クエリパラメーター内の1つのJSONエンコードされた文字列として送信します。この文字列をURLエンコードしてください。 - ページネーションはオフセットベース(
page/size)です。pageInfo.totalは、このページの件数ではなく、条件に一致する投稿の総数です。totalPublishedPostsとtotalEngagementPostsはブランド全体のカウンターで、ダッシュボードのタイルとして役立ちます。 - 行に含まれるステータスは投稿レベルのものだけです。確定したスケジュールの日時とチャネル別の結果を確認するには、
GET /social/posts/{postId}で投稿を開きます。 startDateとendDateは投稿のスケジュール日時で絞り込む条件で、scheduleDate/scheduleTimeと同じく、ブランドのタイムゾーンで解釈されます。publishedOnは、少なくとも1つのチャネルで公開されるまで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"