/api/v4/social/bulk-posts/{bulkJobId}Obtener una tarea de publicación masiva
Devuelve el estado, los recuentos y los resultados por fila de una tarea de publicación masiva en redes sociales.
Parámetros
Ruta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| bulkJobId | string | obligatorio | Job UUID, the `job.id` returned by POST /social/bulk-posts. |
Respuestas
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`).
Informa sobre una tarea creada por POST /social/bulk-posts. Consúltala periódicamente hasta que status alcance un valor terminal y, después, lee results[] para saber en qué se convirtió cada fila.
Caso de uso: conciliar una carga masiva con tu propio calendario. Después de enviar un lote, consulta este endpoint cada pocos segundos. Cuando status sea terminal, recorre results[] y relaciona el clientReference de cada entrada con tu propio registro, guardando socialPostId en él. Las filas con status: "FAILED" incluyen el motivo en errors[]; vuelve a enviar solo esas filas en un lote nuevo.
Caso de uso: una barra de progreso. Comparar processedCount con totalCount basta para actualizarla sin recorrer results[] en absoluto, y successCount / failureCount te proporcionan el resumen en cuanto termina la tarea.
Estados de la tarea
Notas.
clientReferencereproduce exactamente lo que enviaste en esa fila. Es el vínculo más directo con tus propios datos;index, la posición de la fila en el array que enviaste, contando desde 0, es la alternativa cuando no enviaste ningún valor.- Que una fila alcance
status: "CREATED"significa que la publicación existe, no que se haya publicado:postStatuste indica en qué estado se encuentra la propia publicación. Las filasPUBLISHySCHEDULEsiguen pasando después por el proceso de publicación asíncrono: lleva cadasocialPostIdaGET /social/posts/{postId}y leechannels[]para conocer el resultado real por canal. - Una tarea cuyas filas no superaran la validación en ningún caso ni siquiera se habría creado, porque la creación masiva rechaza el lote antes de ponerlo en cola. Una tarea
FAILEDaquí significa que la tarea falló después de ser aceptada. updatedAtcambia a medida que se procesan las filas; se estabiliza cuando la tarea alcanza un estado terminal.
curl -X GET 'https://listingsapi.com/api/v4/social/bulk-posts/<bulkJobId>' \ -H "Authorization: API $LISTINGSAPI_KEY"