/api/v4/social/brands/{brandId}/postsBeiträge einer Marke auflisten
Gibt eine paginierte Liste der Social-Media-Beiträge einer Marke mit Inhalt, Veröffentlichungszeitplan, Plattformen und Status pro Kanal zurück.
Parameter
Pfad
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| brandId | string | erforderlich | Brand UUID whose posts should be listed. |
Query
| Name | Typ | Erforderlich | Beschreibung | Standard |
|---|---|---|---|---|
| filters | string | optional | 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 | optional | 1-based page number. Defaults to 1. | — |
| size | integer | optional | Rows per page. Defaults to 20. | — |
| fetchPostContent | boolean | optional | When `true`, each row carries its full `content` object. Leave it off for a lighter list. | — |
Antworten
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`).
Listet die Beiträge einer Marke mit den neuesten zuerst auf, mit Filtern für Name, Plattform, Status, Freigabestatus und geplanten Veröffentlichungszeitraum. Jede Zeile enthält genügend Informationen, um einen Kalender oder Feed ohne einen zweiten Aufruf pro Beitrag darzustellen.
Anwendungsfall: ein Inhaltskalender. Filtern Sie mit filters={"status":["SCHEDULED"],"startDate":"2026-10-01","endDate":"2026-10-31"} und platzieren Sie jede Zeile bei ihrem publishedOn oder, wenn der Beitrag noch nicht veröffentlicht wurde, zu dem von Ihnen übermittelten geplanten Zeitpunkt. Versehen Sie jeden Eintrag mit einer Abbruchaktion, die POST /social/posts/cancel aufruft, und öffnen Sie die Detailansicht mit GET /social/posts/{postId}.
Anwendungsfall: eine Fehlerprüfung. Führen Sie jede Nacht für jede Marke eine Prüfung mit filters={"status":["FAILED"]} durch und lösen Sie für die zurückgegebenen Zeilen eine Warnung aus. connectedChannels[].error gibt an, welche Plattform die Veröffentlichung abgelehnt hat und warum; ein Kanal, der eine abgelaufene Autorisierung meldet, benötigt einen neuen Verbindungslink, keinen erneuten Versuch.
Hinweise.
socialPostIdist die reine UUID, die von get, insights und cancel akzeptiert wird.- Filter werden als eine einzige JSON-kodierte Zeichenfolge im Abfrageparameter
filtersübertragen, nicht als separate Parameter. Kodieren Sie diese Zeichenfolge für die URL. - Die Paginierung basiert auf einem Offset (
page/size);pageInfo.totalist die Gesamtzahl der passenden Beiträge, nicht die Größe dieser Seite.totalPublishedPostsundtotalEngagementPostssind markenweite Zähler, die sich als Dashboard-Kacheln eignen. - Die Zeile enthält nur den Status auf Beitragsebene. Öffnen Sie den Beitrag mit
GET /social/posts/{postId}, um den ermittelten geplanten Veröffentlichungszeitpunkt und das Ergebnis pro Kanal abzurufen. startDateundendDatefiltern nach dem geplanten Veröffentlichungszeitpunkt des Beitrags und werden in der Zeitzone der Marke interpretiert, also in derselben Zeitzone wiescheduleDate/scheduleTime.publishedOnist null, bis mindestens ein Kanal den Beitrag veröffentlicht hat. Bei einem Beitrag, dessen Veröffentlichung auf allen Kanälen fehlgeschlagen ist, bleibenpublishedOn: nullund einstatusvonFAILEDerhalten.approvalState,approver,actionOnundactionBywerden nur für Konten befüllt, die einen Workflow zur Freigabe von Beiträgen verwenden; andernfalls bleiben sie null.- Setzen Sie
fetchPostContent=truenur, wenn Sie Beitragsinhalte darstellen; für einen Kalender reicht die schlankere Standardeinstellung aus.
curl -X GET 'https://listingsapi.com/api/v4/social/brands/<brandId>/posts' \ -H "Authorization: API $LISTINGSAPI_KEY"