/api/v4/social/bulk-posts/{bulkJobId}Ottieni un processo di pubblicazione in blocco
Restituisce lo stato, i conteggi e i risultati per ogni riga di un processo di pubblicazione di post social in blocco.
Parametri
Percorso
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| bulkJobId | string | obbligatorio | Job UUID, the `job.id` returned by POST /social/bulk-posts. |
Risposte
200The job with its counts and one entry per submitted row.
{ "data": { "getBulkSocialPostJob": { "id": "9b3f18d0-7a26-4c51-8e94-1f0d5c6b7a82", "status": "COMPLETED_WITH_ERRORS", "totalCount": 3, "processedCount": 3, "successCount": 2, "failureCount": 1, "createdAt": "2026-09-28T14:04:52Z", "updatedAt": "2026-09-28T14:05:31Z", "results": [ { "index": 0, "clientReference": "campaign-4471-slot-01", "socialProfileId": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "platforms": ["INSTAGRAM", "FACEBOOK"], "status": "CREATED", "socialPostId": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345", "postStatus": "SCHEDULED", "errors": [] }, { "index": 1, "clientReference": "campaign-4471-slot-02", "socialProfileId": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "platforms": ["INSTAGRAM", "FACEBOOK", "LINKEDIN"], "status": "CREATED", "socialPostId": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70", "postStatus": "SCHEDULED", "errors": [] }, { "index": 2, "clientReference": "campaign-4471-slot-03", "socialProfileId": "a90f7c22-5db1-4e83-9f40-2b7c6a1e5d33", "platforms": ["INSTAGRAM"], "status": "FAILED", "socialPostId": null, "postStatus": null, "errors": [ { "message": "SY95045: No connected channel for INSTAGRAM on this brand", "code": "SY95045", "contextInfo": [{ "key": "platform", "value": "INSTAGRAM" }] } ] } ] } }}401Unauthenticated, missing or invalid API key.
404No job with that ID on this account (`SY95047`).
Fornisce informazioni su un processo creato da POST /social/bulk-posts. Interrogalo periodicamente finché status non raggiunge un valore finale, quindi leggi results[] per conoscere l'esito di ogni riga.
Caso d'uso: riconciliare un caricamento in blocco con il tuo calendario. Dopo aver inviato un batch, interroga questo endpoint ogni pochi secondi. Quando status è in uno stato finale, scorri results[] e associa clientReference di ogni voce al tuo record, scrivendovi socialPostId. Le righe con status: "FAILED" riportano il motivo in errors[]; invia nuovamente solo quelle in un nuovo batch.
Caso d'uso: una barra di avanzamento. Il rapporto tra processedCount e totalCount basta per alimentarla senza scorrere affatto results[], mentre successCount / failureCount ti forniscono il riepilogo non appena il processo termina.
Stati del processo
Note.
clientReferenceè il valore che hai inviato per quella riga, restituito senza modifiche. È il collegamento più diretto ai tuoi dati;index, la posizione della riga nell'array che hai inviato, con indice a partire da 0, è l'alternativa quando non hai inviato alcun valore.- Una riga che raggiunge
status: "CREATED"indica che il post esiste, non che sia stato pubblicato —postStatusindica a che punto si trova il post stesso. Le righePUBLISHeSCHEDULEpassano comunque in seguito attraverso la pipeline di pubblicazione asincrona: usa ognisocialPostIdconGET /social/posts/{postId}e leggichannels[]per conoscere l'esito effettivo per ciascun canale. - Un processo in cui nessuna riga ha superato la validazione non sarebbe mai stato creato, perché la creazione in blocco rifiuta il batch prima di metterlo in coda. Un processo
FAILEDqui indica che il processo ha subito un errore dopo essere stato accettato. updatedAtcambia man mano che le righe vengono elaborate; si stabilizza quando il processo raggiunge uno stato finale.
curl -X GET 'https://listingsapi.com/api/v4/social/bulk-posts/<bulkJobId>' \ -H "Authorization: API $LISTINGSAPI_KEY"