Guía
Migrar de v1 a v2
v1 sigue funcionando sin cambios hasta el 31 de enero de 2027, fecha en la que se apagará (cada respuesta v1 lo anuncia con los headers Deprecation y Sunset). Hasta entonces puede migrar a su ritmo, endpoint por endpoint, porque ambas versiones conviven bajo distinta base URL (/api/v1 y /api/v2) con las mismas API Keys.
Cinco cambios que no se arreglan renombrando. Casi todo el resto es cambio de nombre, pero estos piden tocar su lógica:
app_statuspasa de entero a palabra enautomeli_sync_status:0→disabled,1→enabled. El filtro también usa la palabra.discount_total_pricese convierte endiscount_percentage: es un porcentaje con signo, no un precio.- La paginación es por cursor, no por
offset: se siguenext_cursorhasta quehas_moreseafalse— guía de paginación. totalviene sólo en la primera petición (la que va sin cursor), igual que en la API de Mercado Libre.POST /products/test/promoteya no aceptascheduled_for: en v2 el campo se ignora y la promoción se ejecuta de inmediato. Para publicar programado, usePOST /products(que sí lo soporta). Además,id_meli_main_variantya no se expone.
Los paths no cambian (solo la base /api/v1 → /api/v2), pero algunos contratos sí:
- →Promote cambia de selección y de respuesta. En v1 era por
skus(u omitirlo para "todos"); en v2 el body es{ "listing_ids_test": [...] }(obligatorio),scheduled_forya no aplica, y la respuesta puede traer varios jobs (agrupados por categoría fiscal + tipo de publicación) con contadores nuevos para conciliar (queued_total/duplicates_total). Ver promote → - →Filtros de productos de prueba renombrados:
status_meli→ml_status,already_published→published_to_live(0|1),app_status→automeli_sync_status(palabra). La respuesta también renombraimage/category_id/currencyaimage_url/ml_category_id/ml_currency. - →Create renombra los campos del body:
items[].category_id→ml_category_id,listing_type_id→ml_listing_type(default explícitogold_special),tax_category_id→automeli_tax_category. - →Nuevo en v2:
GET /products(el listado del catálogo de la cuenta real, que v1 no tenía) yPATCH /products/sync-status. - →Sin cambios: las API Keys y sus scopes (las mismas keys sirven para ambas versiones), el header
X-API-Key, la idempotencia, el rate limit y el catálogo de códigos de error.
Campo por campo. En ámbar, los que cambian de forma o de significado, no sólo de nombre.
Identificadores
id_meli→listing_idsku→skusin cambiosid_meli_main_variant→—ya no se exponeCatálogo e imágenes
title→titlesin cambiosbrand→brandsin cambiospermalink→permalinksin cambiosimage→image_urlimage_changed→image_differs_from_amazonbooleanoimage_changed_url→amazon_image_urlnull si no difiereEstado y categorías
meli_status→ml_statussub_status→ml_sub_statusamz_status→amazon_statusapp_status→automeli_sync_statusentero (0/1) → palabra (disabled/enabled)meli_category_name→ml_categorymeli_main_category→ml_main_categorylisting_type_id→ml_listing_typetax_category_id→automeli_tax_categorycategoría fiscal de Automeli, no de MLcreate_using_publisher→published_with_automelibooleanochanged→last_changepause_reason→pause_reasonsin cambiospaused_since→paused_sincesin cambiosPrecios y números
total_price→amazon_total_pricescraped_price→amazon_priceshipping_cost→amazon_shipping_costtaxes→amazon_taxesmeli_sale_price→ml_pricediscount_total_price→discount_percentageahora es un porcentaje con signo, puede ser negativostock_quantity→stockmax_weigth→weight_lbcorrige el typo y aclara la unidad (libras)manufacturing_time→manufacturing_timesin cambiosshipping_from→shipping_originFechas
date_created→created_atdate_updated→amazon_reviewed_atdate_updated_meli→ml_updated_atNuevo en v2
—→infractions[]motivo de infracción abierta: id_reason, reason, resolutionNota: la columna v1 refleja lo que esa API devuelve hoy (los nombres crudos de columna, salvo paused_since, que ya salía con alias).
- →La doc completa de v1 se conserva congelada en /api-docs/v1.
- →Specs OpenAPI: /api-docs/openapi.json (v2) y /api-docs/v1/openapi.json (v1) — útiles para comparar contra su cliente generado.
- →Puede validar cada endpoint migrado con
GET /api/v2/pingy el Sandbox del dashboard, sin escribir código.