Recursos
Publicar productos
El endpoint principal de escritura. Crea un job asíncrono que la API procesa en segundo plano. Cada job puede tener hasta 10.000 items.
Crear un job de publicación
/v2/productsPor cada item indica el SKU y la categoría — o le pide a Automeli que la infiera con auto_categorize: true. Ambas opciones son excluyentes.
POST /productscurl -X POST "https://api.automeli.com/api/v2/products" \
-H "X-API-Key: automeli_live_..." \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "sku": "B003H03SDQ", "ml_category_id": "MCO420674" },
{ "sku": "B07JHNJLYH", "auto_categorize": true }
],
"ml_listing_type": "gold_pro",
"automeli_tax_category": 0
}'Job aceptado. Devuelve el job_id para hacer seguimiento. Para conciliar: accepted / total_items incluyen los SKUs que quedaron duplicate (ya publicados y vivos, o ya en cola en otro job) y no se publican — lo que realmente se publica es queued (accepted = queued + duplicates; ambos vienen siempre, con 0 incluido). Si todo el lote era duplicado, el job nace directamente completed.
{
"job_id": "8a3f2b10-4c9d-4e21-9f8a-1b2c3d4e5f60",
"status": "queued",
"name": "8 may 2026, 12:00:00",
"accepted": 2,
"rejected": 0,
"total_items": 2,
"queued": 2,
"duplicates": 0
}automeli_test_* el job publica en la cuenta de prueba y descuenta créditos de prueba.accepted incluye los SKUs que quedaron duplicate (ya publicados y vivos, o ya en cola en otro job) y no se publican ni consumen crédito. Lo que realmente se publica es queued (accepted = queued + duplicates). Si todo el lote era duplicado, el job nace directamente completed.itemssku + (ml_category_id o auto_categorize). Los SKUs repetidos dentro del mismo body se deduplican en silencio.items[].skuitems[].ml_category_idMCO420674. Es por item. Excluyente con auto_categorize.items[].auto_categorizeml_category_id.ml_listing_typegold_special (Clásica). Valores: gold_pro (premium con cuotas), gold_special (clásica), más legacy gold_premium / gold / silver / bronze aceptados por compatibilidad. ¿Cuál elijo? →automeli_tax_category0 (primera). Para ver los índices → GET /v2/account/tax-categories.scheduled_forYYYY-MM-DDTHH:MM en UTC, sin segundos ni offset. Entre 5 minutos y 30 días en el futuro. Ver guía de programación →rejected y un warning. Si ya tiene 6 jobs en queued/processing, la llamada responde 429 E_PRODUCT_MAX_CONCURRENT_JOBS.Errores posibles de este endpoint (13)
E_AUTH_MISSING_KEYFalta el header X-API-Key
401E_AUTH_INVALID_KEYKey con formato inválido o no reconocida
401E_AUTH_FORBIDDEN_SCOPESu key no tiene el permiso requerido (ver scopes)
403E_RATE_LIMITEDExcedió el rate limit. Ver Retry-After
429E_IDEMPOTENCY_CONFLICTMisma Idempotency-Key con body distinto
409E_PRODUCT_INVALID_BODYBody malformado o con campos inválidos (POST/PATCH)
422E_PRODUCT_INVALID_SKUSKU no cumple regex (10 alfanum)
422E_PRODUCT_CREDIT_EXHAUSTEDSin créditos disponibles
400E_PRODUCT_MAX_CONCURRENT_JOBSYa tiene 6 jobs activos
429E_CATEGORY_INVALIDLa categoría de Mercado Libre no cumple el formato (MCO…)
422E_CATEGORY_AND_AUTO_CONFLICTUn item manda la categoría y auto_categorize a la vez
422E_ACCOUNT_NOT_FOUNDCuenta Meli no encontrada
404E_INTERNALError inesperado. Reintente con backoff
503