Recursos
Jobs
Cada publicación crea un job asíncrono. Acá consultás su estado, listás los últimos, reintentás items que fallaron o cancelás uno antes de que termine.
Hacé poll cada 5-10 segundos hasta que el status sea final (completed, failed o cancelled).
/v1/products/jobs/{jobId}curl "https://api.automeli.com/api/v1/products/jobs/<job_id>" \
-H "X-API-Key: automeli_live_..."{
"job": {
"job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
"status": "completed",
"total_items": 2,
"successful": 2,
"failed": 0,
"completed_at": "2026-05-08T12:00:09Z"
},
"items": [
{
"sku": "B003H03SDQ",
"status": "success",
"listing_id": "MCO1234567890",
"permalink": "https://articulo.mercadolibre.com.co/…",
"price": 89000
}
],
"pagination": { "limit": 100, "offset": 0, "returned": 2 }
}Filtros opcionales: ?status=failed&limit=50&offset=0
Errores posibles de este endpoint (2)
E_AUTH_FORBIDDEN_SCOPETu key no tiene el permiso requerido (ver scopes)
403E_JOB_NOT_FOUNDjobId no existe o no es de tu seller
404Algunas cuentas B2C tienen configurada una regla que publica cada SKU dos veces: una en gold_special (clásica) y otra en gold_pro (premium).
La API aplica esta regla automáticamente según la configuración de tu cuenta — si no sabés si te aplica, contactá soporte. Cuando aplica:
- → 2 créditos por SKU en lugar de 1.
- → El
listing_type_idque mandes en el body se ignora — siempre publica las dos modalidades. - → El POST devuelve campos extra
skusypublications. - → El GET del job suma
by_listing_typecon el desglose.
{
"job": {
"job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
"status": "completed",
"total_items": 140,
"successful": 28,
"failed": 112,
"by_listing_type": {
"gold_special": { "success": 14, "failed": 56, "skipped": 0, "total": 70 },
"gold_pro": { "success": 14, "failed": 56, "skipped": 0, "total": 70 }
}
},
"items": [
{ "sku": "B003H03SDQ", "status": "success", "listing_type_id": "gold_special", "listing_id": "MCO1122334455" },
{ "sku": "B003H03SDQ", "status": "failed", "listing_type_id": "gold_pro", "listing_id": null }
]
}by_listing_type sólo aparece cuando el job tiene items con listing_type_id distintos del job-level — en jobs normales el campo se omite.Para auditoría o reconciliación con tu sistema interno.
/v1/products/jobscurl "https://api.automeli.com/api/v1/products/jobs?status=completed&limit=20&from=2026-05-01" \
-H "X-API-Key: automeli_live_..."Query: status, from, to, limit (max 200), offset.
Errores posibles de este endpoint (2)
E_AUTH_FORBIDDEN_SCOPETu key no tiene el permiso requerido (ver scopes)
403E_PRODUCT_INVALID_BODYBody malformado o campos faltantes
422/v1/products/jobs/{jobId}/retryReintenta items en failed con retryable: true. Solo aplica sobre jobs terminales. Consume créditos por cada item.
curl -X POST "https://api.automeli.com/api/v1/products/jobs/<job_id>/retry" \
-H "X-API-Key: automeli_live_..."Errores posibles de este endpoint (4)
E_AUTH_FORBIDDEN_SCOPETu key no tiene el permiso requerido (ver scopes)
403E_JOB_NOT_FOUNDjobId no existe o no es de tu seller
404E_JOB_NOT_RETRYABLEJob no terminal o sin items retryables
400E_PRODUCT_CREDIT_EXHAUSTEDSin créditos disponibles
400/v1/products/jobs/{jobId}/cancelCancela jobs en queued, processing o scheduled. Los items pendientes pasan a skipped. Los ya publicados no se afectan.
curl -X POST "https://api.automeli.com/api/v1/products/jobs/<job_id>/cancel" \
-H "X-API-Key: automeli_live_..."Errores posibles de este endpoint (3)
E_AUTH_FORBIDDEN_SCOPETu key no tiene el permiso requerido (ver scopes)
403E_JOB_NOT_FOUNDjobId no existe o no es de tu seller
404E_JOB_ALREADY_TERMINALCancel sobre job ya cerrado
400