/api/v4/social/brands/{brandId}/postsLister les publications d'une marque
Renvoie une liste paginée des publications d'une marque sur les réseaux sociaux : contenu, programmation, plateformes et statut par canal.
Paramètres
Chemin
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| brandId | string | obligatoire | Brand UUID whose posts should be listed. |
Chaîne de requête
| Nom | Type | Obligatoire | Description | Par défaut |
|---|---|---|---|---|
| filters | string | facultatif | 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 | facultatif | 1-based page number. Defaults to 1. | — |
| size | integer | facultatif | Rows per page. Defaults to 20. | — |
| fetchPostContent | boolean | facultatif | When `true`, each row carries its full `content` object. Leave it off for a lighter list. | — |
Réponses
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`).
Liste les publications d'une marque, de la plus récente à la plus ancienne, avec des filtres par nom, plateforme, statut, état d'approbation et plage de programmation. Chaque ligne contient suffisamment d'informations pour afficher un calendrier ou un fil sans effectuer un second appel par publication.
Cas d'utilisation : un calendrier de contenu. Filtrez avec filters={"status":["SCHEDULED"],"startDate":"2026-10-01","endDate":"2026-10-31"} et placez chaque ligne à la date et à l'heure indiquées par publishedOn ou, pour une publication qui n'a pas encore été diffusée, à la date et à l'heure de programmation que vous avez envoyées. Ajoutez à chaque entrée une action d'annulation reliée à POST /social/posts/cancel, et ouvrez la vue détaillée avec GET /social/posts/{postId}.
Cas d'utilisation : une détection des échecs. Effectuez chaque nuit une vérification avec filters={"status":["FAILED"]} pour chaque marque et déclenchez une alerte pour les lignes renvoyées. connectedChannels[].error vous indique quelle plateforme a refusé la publication et pourquoi ; un canal signalant une autorisation expirée nécessite un nouveau lien de connexion, et non une nouvelle tentative.
Remarques.
socialPostIdest l'UUID simple accepté par get, insights et cancel.- Les filtres sont transmis sous la forme d'une seule chaîne encodée en JSON dans le paramètre de requête
filters, et non sous la forme de paramètres distincts. Appliquez-lui un encodage URL. - La pagination repose sur un décalage (
page/size) ;pageInfo.totalest le nombre total de publications correspondantes, et non le nombre de publications sur cette page.totalPublishedPostsettotalEngagementPostssont des compteurs à l'échelle de la marque, utiles pour les tuiles du tableau de bord. - La ligne contient uniquement le statut au niveau de la publication. Pour connaître l'instant de programmation déterminé et le résultat par canal, ouvrez la publication avec
GET /social/posts/{postId}. startDateetendDatefiltrent selon la programmation de la publication et sont interprétés dans le fuseau horaire de la marque, le même que celui utilisé pour interpréterscheduleDate/scheduleTime.publishedOnvaut null tant qu'aucun canal n'a diffusé la publication. Une publication dont tous les canaux ont échoué conservepublishedOn: nullet unstatuségal àFAILED.approvalState,approver,actionOnetactionBysont renseignés uniquement pour les comptes qui utilisent un processus d'approbation des publications ; ils restent à null dans les autres cas.- Définissez
fetchPostContent=trueuniquement lorsque vous affichez le corps des publications ; le résultat par défaut, plus léger, suffit pour un calendrier.
curl -X GET 'https://listingsapi.com/api/v4/social/brands/<brandId>/posts' \ -H "Authorization: API $LISTINGSAPI_KEY"