GET/api/v4/social/posts/{postId}

Recupera un post social

Restituisce un post social con il relativo contenuto, la pianificazione e lo stato di pubblicazione aggiornato, il link e l'errore per ciascun canale.

Richiede una chiave API. Consulta Autenticazione per il formato dell’header e la rotazione delle chiavi.

Parametri

Percorso

NomeTipoObbligatorioDescrizione
postIdstringobbligatorioPost UUID, the `socialPostId` returned by POST /social/posts or the `socialPostId` of a row from the brand's post list.

Risposte

200The post, with per-channel publish state in `connectedChannels`.
Response
{  "data": {    "getSocialMediaPost": {      "name": "Autumn collection launch",      "status": "PUBLISHED",      "initialContent": "Our autumn collection lands today. Solid oak, hand-finished, made two blocks from the shop. Come see it in person this weekend.",      "initialMedia": ["https://cdn.example.com/social/autumn-collection.jpg"],      "initialVideo": [],      "globalPostSchedule": "2026-10-02T13:30:00Z",      "customDataFlag": false,      "approvalState": null,      "actionOn": null,      "comment": null,      "postAutomationId": null,      "connectedChannels": [        {          "id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7",          "platform": "INSTAGRAM",          "socialPlatformId": 2,          "displayName": "Jenny Home",          "userName": "jennyhome",          "userImage": "https://cdn.listingsapi.com/social/channels/b81d5b3c/avatar.jpg",          "status": "SUCCESS",          "liveLink": "https://www.instagram.com/p/CxYz1234abc/",          "reason": null,          "error": null,          "archived": false        },        {          "id": "2d4e6f80-1c33-4b7a-8e05-9a1b2c3d4e5f",          "platform": "FACEBOOK",          "socialPlatformId": 1,          "displayName": "Jenny Home & Co.",          "userName": "jennyhomeco",          "userImage": "https://cdn.listingsapi.com/social/channels/2d4e6f80/avatar.jpg",          "status": "SUCCESS",          "liveLink": "https://www.facebook.com/jennyhomeco/posts/1029384756",          "reason": null,          "error": null,          "archived": false        },        {          "id": "7c5b9a12-8de4-4a31-b0f2-6e3d4c5b8a90",          "platform": "LINKEDIN",          "socialPlatformId": 4,          "displayName": "Jenny Home",          "userName": "jenny-home",          "userImage": null,          "status": "ERROR",          "liveLink": null,          "reason": "Authorization expired",          "error": "The LinkedIn authorization for this channel is no longer valid. Reconnect the channel and post again.",          "archived": false        }      ]    }  }}
401Unauthenticated, missing or invalid API key.
404No post with that ID on this account.

Recupera un post tramite il suo UUID, con il contenuto composto, la pianificazione risultante e una voce per ciascun canale di destinazione che descrive ciò che è effettivamente accaduto su quella piattaforma. Questo è l'endpoint da interrogare periodicamente dopo aver creato un post.

Caso d'uso: verifica dopo la pubblicazione. La pubblicazione è asincrona, quindi POST /social/posts ti indica soltanto che il post è stato accettato. Interroga periodicamente questo endpoint con il valore socialPostId restituito e leggi connectedChannels[]: status: "SUCCESS" con un valore liveLink indica che il post è pubblicato su quel canale, mentre status: "ERROR" con error impostato indica che non lo è e ne spiega il motivo. Smetti di interrogare l'endpoint quando nessun canale è ancora nello stato SCHEDULED.

Caso d'uso: mostrare al cliente dove è stato pubblicato il suo post. Visualizza ogni connectedChannels[].liveLink come link esterno, in modo che l'utente possa aprire il post pubblicato direttamente sulla piattaforma, e mostra error accanto ai canali per cui la pubblicazione non è riuscita, invece di ridurre l'intero post a un unico stato di errore.

Interpretare i campi di stato

Esistono due livelli di stato che rispondono a domande diverse.

CampoValoriSignificato
statusDRAFT, PENDING, SCHEDULED, PUBLISHED, FAILED, ARCHIVED, REJECTEDIl post nel suo complesso.
connectedChannels[].statusSCHEDULED, SUCCESS, ERROR, ARCHIVEDCiò che è accaduto su quella singola piattaforma.

Un post può avere lo stato complessivo PUBLISHED mentre un canale si trova nello stato ERROR. Basa sempre la visualizzazione su connectedChannels[]; il campo status a livello di post è un riepilogo.

Note.

  • globalPostSchedule è l'istante di pubblicazione risultante in UTC. Se hai pianificato la pubblicazione con scheduleDate + scheduleTime, questo è l'istante ottenuto applicando a quei valori il fuso orario del brand: un controllo utile per verificare che il fuso orario fosse quello previsto.
  • error è un messaggio leggibile che puoi mostrare senza rischi a un cliente; reason è l'etichetta interna più breve a esso associata. Nessuno dei due contiene token della piattaforma o ID di tracciamento.
  • connectedChannels[].id è l'UUID della connessione presente tra le connessioni del brand ed è il valore che insights richiede come socialConnectedChannelId.
  • Un canale con stato archived: true è stato disconnesso dopo la creazione del post. Il post non verrà pubblicato su quel canale; vedi disconnect.
  • Un canale bloccato nello stato ERROR dopo la scadenza di un'autorizzazione richiede un nuovo link di connessione, non un nuovo tentativo di pubblicazione del post.
  • Per ottenere i dati sul coinvolgimento anziché lo stato di pubblicazione, chiama GET /social/posts/{postId}/insights.
  • Per elencare i post di un brand anziché recuperarne uno, usa GET /social/brands/{brandId}/posts.
Request
curl -X GET 'https://listingsapi.com/api/v4/social/posts/<postId>' \  -H "Authorization: API $LISTINGSAPI_KEY"