Recursos

Jobs

Cada publicación crea un job asíncrono. Aquí consulta su estado, lista los últimos, reintenta items que fallaron o cancela uno antes de que termine. Todos los listados se paginan por cursor.

Consultar un job

Haga poll cada 5-10 segundos hasta que el status sea final (completed, failed o cancelled).

GET/v2/products/jobs/{jobId}
Probar en sandbox
scopeproducts:read
RequestGET /products/jobs/{jobId}
curl "https://api.automeli.com/api/v2/products/jobs/<job_id>?limit=100" \
     -H "X-API-Key: automeli_live_..."
200Response

Estado del job + sus items, paginados por cursor.

{
  "job": {
    "job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
    "status": "completed",
    "total_items": 2,
    "successful": 2,
    "failed": 0,
    "completed_at": "2026-05-08T12:00:09.000Z"
  },
  "data": [
    {
      "sku": "B003H03SDQ",
      "status": "success",
      "listing_id": "MCO1234567890",
      "ml_listing_type": "gold_pro",
      "title": "Ejemplo de producto",
      "permalink": "https://articulo.mercadolibre.com.co/…",
      "price": 89000,
      "message": null,
      "error_category": null,
      "retryable": false
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "count": 1
}

Filtros de los items: ?status=failed&limit=100&cursor=… (limit máx 500, default 100).

Cuando el job publica el mismo SKU en más de un tipo de publicación (ej. gold_special + gold_pro), el objeto job incluye by_listing_type con el desglose por tipo. En jobs de un solo tipo, el campo se omite.
Errores posibles de este endpoint (3)
E_AUTH_FORBIDDEN_SCOPE

Su key no tiene el permiso requerido (ver scopes)

403
E_JOB_NOT_FOUND

jobId no existe o no es de su seller

404
E_PRODUCT_INVALID_PARAM

Parámetro de query o path inválido (fecha, UUID, estado fuera de rango). Sólo v2; en v1 estos casos devuelven E_PRODUCT_INVALID_BODY

422

Listar jobs

Para auditoría o reconciliación con su sistema interno.

GET/v2/products/jobs
Probar en sandbox
scopeproducts:read
RequestGET /products/jobs
curl "https://api.automeli.com/api/v2/products/jobs?status=completed&limit=20&from=2026-05-01" \
     -H "X-API-Key: automeli_live_..."
200Response

Página de jobs del seller que matchean el filtro.

{
  "data": [
    {
      "job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
      "status": "completed",
      "name": "8 may 2026, 12:00:00",
      "ml_listing_type": "gold_pro",
      "test_mode": false,
      "ml_site_id": "MCO",
      "total_items": 2,
      "processed": 2,
      "successful": 2,
      "failed": 0,
      "skipped": 0,
      "scheduled_for": null,
      "created_at": "2026-05-08T12:00:00.000Z",
      "started_at": "2026-05-08T12:00:01.000Z",
      "completed_at": "2026-05-08T12:00:09.000Z",
      "updated_at": "2026-05-08T12:00:09.000Z",
      "error_message": null
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "count": 1,
  "total": 1
}

Query: status, from, to, limit (máx 200, default 50), cursor. Cómo paginar →

Errores posibles de este endpoint (2)
E_AUTH_FORBIDDEN_SCOPE

Su key no tiene el permiso requerido (ver scopes)

403
E_PRODUCT_INVALID_PARAM

Parámetro de query o path inválido (fecha, UUID, estado fuera de rango). Sólo v2; en v1 estos casos devuelven E_PRODUCT_INVALID_BODY

422

Reintentar items fallidos

POST/v2/products/jobs/{jobId}/retry
Probar en sandbox
scopeproducts:write

Reintenta items en failed con retryable: true (los que fallaron por causas transitorias). Solo aplica sobre jobs terminales; el job vuelve a queued. Consume créditos por cada item.

RequestPOST /products/jobs/{jobId}/retry
curl -X POST "https://api.automeli.com/api/v2/products/jobs/<job_id>/retry" \
     -H "X-API-Key: automeli_live_..."
202Response

Reintento aceptado para los items retryables del job.

{
  "job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
  "status": "queued",
  "retried": 3
}
Errores posibles de este endpoint (5)
E_AUTH_FORBIDDEN_SCOPE

Su key no tiene el permiso requerido (ver scopes)

403
E_PRODUCT_INVALID_PARAM

Parámetro de query o path inválido (fecha, UUID, estado fuera de rango). Sólo v2; en v1 estos casos devuelven E_PRODUCT_INVALID_BODY

422
E_JOB_NOT_FOUND

jobId no existe o no es de su seller

404
E_JOB_NOT_RETRYABLE

Job no terminal o sin items retryables

400
E_PRODUCT_CREDIT_EXHAUSTED

Sin créditos disponibles

400

Cancelar un job

POST/v2/products/jobs/{jobId}/cancel
Probar en sandbox
scopeproducts:write

Cancela jobs en queued, processing o scheduled. Los items pendientes pasan a skipped. Los ya publicados no se afectan.

RequestPOST /products/jobs/{jobId}/cancel
curl -X POST "https://api.automeli.com/api/v2/products/jobs/<job_id>/cancel" \
     -H "X-API-Key: automeli_live_..."
200Response

Job cancelado. Los items pendientes quedan en skipped.

{
  "job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
  "cancelled": true,
  "skipped_items": 12
}
Cancelar un job programado es la forma de deshacer un scheduled_for: no hay endpoint para reprogramar. Cancele y cree el job de nuevo con la fecha correcta.
Errores posibles de este endpoint (4)
E_AUTH_FORBIDDEN_SCOPE

Su key no tiene el permiso requerido (ver scopes)

403
E_PRODUCT_INVALID_PARAM

Parámetro de query o path inválido (fecha, UUID, estado fuera de rango). Sólo v2; en v1 estos casos devuelven E_PRODUCT_INVALID_BODY

422
E_JOB_NOT_FOUND

jobId no existe o no es de su seller

404
E_JOB_ALREADY_TERMINAL

Cancel sobre job ya cerrado

400