/api/v4/posts/{postId}Obtenir une publication
Renvoie une campagne de publication sur les réseaux sociaux avec son contenu, son statut de publication par site et ses statistiques d’engagement.
Paramètres
Chemin
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| postId | string | obligatoire | Base64-encoded social post ID (e.g. from the `id` field of a posts list, or the `socialPost.id` returned by POST /posts). |
Réponses
200The post's content, publish details, and analytics.
{ "data": { "socialPostView": { "socialPostId": "U29jaWFsUG9zdDo0NDEyMg==", "socialPostInfo": { "id": "U29jaWFsUG9zdDo0NDEyMg==", "name": "Summer Hours Update", "status": "SUCCESS", "type": "ANNOUNCEMENT", "createdAt": "2026-06-28", "scheduledStartDate": "2026-06-28", "scheduledEndDate": "2026-07-28", "views": 128, "clicks": 14, "shares": 0, "reactions": 3, "comments": 1, "sites": ["GOOGLE"], "message": [ { "site": "GOOGLE", "message": "We have extended our summer hours! Open until 9pm on weekdays." } ], "cta": [ { "type": { "value": "LEARN_MORE", "label": "Learn more" }, "url": "https://jennyhome.example/hours", "site": "GOOGLE", "tinyUrl": "https://tiny.cc/jh-hours" } ], "contextInfo": null, "mediaUrl": [ { "url": "https://cdn.listingsapi.com/posts/44122/summer.jpg", "site": "GOOGLE", "type": "IMAGE" } ], "publishDetails": [ { "site": "GOOGLE", "status": "PUBLISHED", "createdDate": "2026-06-28", "publishedDate": "2026-06-28", "submissionError": null } ], "postLinks": [ { "site": "GOOGLE", "link": "https://www.google.com/maps/place/?post=44122" } ], "locationIds": [1800289] }, "publishedLocationsCount": 1, "socialPostAnalyticsBySite": [ { "site": "GOOGLE", "views": 128, "clicks": 14, "reactions": 3, "shares": 0, "comments": 1 } ], "socialPostAnalyticsByLocationId": [ { "locationId": 1800289, "siteStats": [ { "site": "GOOGLE", "status": "PUBLISHED", "views": 128, "clicks": 14, "reactions": 3, "shares": 0, "comments": 1 } ] } ] } }}401Unauthenticated, missing or invalid API key.
Récupère une campagne de publication à partir de son ID, y compris le message et le CTA par site, les médias joints, le statut de publication en temps réel sur chaque site (publishDetails) et l’engagement ventilé à la fois par site (socialPostAnalyticsBySite) et par établissement (socialPostAnalyticsByLocationId).
Cas d’utilisation : vérification après publication. Juste après avoir créé une annonce avec POST /posts, récupérez la valeur socialPost.id renvoyée et interrogez régulièrement GET /posts/{postId} jusqu’à ce que socialPostInfo.status passe de INPROGRESS à SUCCESS. Si la publication échoue sur un site, publishDetails[].submissionError en indique la raison et publishDetails[].status affiche ERROR.
Cas d’utilisation : tableau de bord de l’engagement. Pour une publication concernant un seul établissement, lisez socialPostAnalyticsBySite pour afficher une comparaison des vues et des clics entre Google et Facebook sans récupérer à nouveau la liste complète des publications de l’établissement.
Remarques.
postIdest l’ID encodé en Base64 présenté sous la formeiddans la liste des publications ou sous la formesocialPost.iddans la réponse à la création, et non un entier brut.- Pour récupérer une campagne concernant plusieurs établissements (en masse), utilisez
GET /bulk-posts/{postId}, qui renvoie la même structure avecpublishedLocationsCount > 1.
Cet exemple est construit à partir du schéma de l’API. Le compte réel servant à initialiser les données (Jenny Home) ne contient aucune publication, il n’y avait donc aucun ID de publication réel à récupérer ; un ID inconnu ou invalide entraîne le renvoi de {"data":null,"errors":[{"message":"An error occurred processing your request."}]}.
curl -X GET 'https://listingsapi.com/api/v4/posts/<postId>' \ -H "Authorization: API $LISTINGSAPI_KEY"