Documentación Mercado Libre

Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.
circulos azuis em degrade

Documentación

Última actualización 25/09/2024

Gestionar automatizaciones

Las automatizaciones de precios en MercadoLibre son herramientas fundamentales para los vendedores que desean mantener sus productos competitivos y maximizar sus márgenes de ganancia. Estas herramientas permiten ajustar los precios de los productos de manera dinámica y estratégica en respuesta a diversas variables del mercado. A continuación, se detallan las funcionalidades disponibles para gestionar automatizaciones.

Importante:
En caso que la publicación cuente con cambios de precios por fuera de la automatización de precios, esto provocará que la automatización se caiga de manera inmediata, con el fin de no provocar inconsistencias y desactualizaciones de precios.

Obtener reglas disponibles para un ítem

Para un ítem específico, se puede obtener el listado de reglas disponibles que pueden ser utilizadas para una automatización de precios, es necesario realizar un GET al recurso /pricing-automation/items/{{itemId}}/rules

Reglas

rule_id Título Descripción
“INT_EXT” Precio para ganar ventas Tu precio se ajustará al precio más bajo entre publicaciones similares de Mercado Libre y otras fuera del sitio.

Pre condiciones para obtener las reglas disponibles para un ítem

  • Debe consultarse sobre un ítem existente
  • El ítem debe poder automatizarse

Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/rules

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/MLA12345678/rules

Respuesta:

{
    "item_id": "MLA123456",
    "rules": [
        {
            "rule_id": "INT_EXT",
        }
    ]
}

Campos de la respuesta

La respuesta de un GET al recurso /pricing-automation/items/{{itemId}}/rules proporcionará los siguientes parámetros:

  • item_id: Identificador del ítem
  • rules: Lista de reglas disponibles para un ítem. Actualmente solo puede ser INT_EXT
    • rule_id: Regla de automatización.

Posibles errores al obtener las reglas disponibles

Al obtener las reglas disponibles para un ítem, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Resource not found:

{
    "error": "item_not_found",
      "message" : "Item with id [MLA123456] not found",
    "status": 404,
      "cause": []
}

Usuario no autorizado:

{
    "error": "user_not_authorized",
    "message": "User is not allowed to automate items",
    "status": 412,
    "cause": []
}

No es posible automatizar el item:

{          
    "error": "item_not_automatizable",
    "message" : "Item with id [MLA123456] has no rules available",
    "status": 412,
    "cause": []
}

No se puede procesar la estrategia establecida:

{           
    "error": "unprocessable_get_strategies",
    "message" : "Error calling retrieve item strategies service",
    "status": 422,
    "cause": []
}

No autorizado:

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Asignar nueva automatización de precios

Para asignar una nueva automatización de precios, es necesario realizar un POST al recurso /pricing-automation/items/{{itemId}}/automation

Pre condiciones para asignar una automatización

  • Se debe aplicar la regla a un ítem existente
  • Debe tener sí o sí un precio mínimo
  • Los precios no pueden ser absurdos (Maximo y Minimo)
  • Debe cumplir las condiciones de Creación

Llamada:

curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' 

{
    "rule_id" : "INT_EXT", 
    "min_price": 100000,
    "max_price": 1000000
}
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/automation

Ejemplo:

curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' 

{
    "rule_id" : "INT_EXT", 
    "min_price": 100000,
    "max_price": 1000000
}
https://api.mercadolibre.com/pricing-automation/items/MLA12345678/automation

Respuesta:

{
    "item_id": "MLA123456",
    "status": "ACTIVE",
    "item_rule": {
        "rule_id": "INT_EXT",
    },
    "min_price": 100000,
    "max_price": 1000000
}

Campos de la respuesta

La respuesta de un POST al recurso pricing-automation/items/$ITEM_ID/automation proporcionará los siguientes parámetros

  • item_id: Identificador del ítem
  • status: Estado de la automatización, posibles status:
    • ACTIVE
    • PAUSED
  • item_rule: Regla de automatización, actualmente la única regla disponible es “INT_EXT” (Competencia interna y externa en simultáneo)
    • rule_id: Regla de automatización.
  • min_price: Precio mínimo seteado a la automatización.
  • max_price: Precio máximo seteado a la automatización.

Posibles errores al asignar una automatización

Al asignar una nueva automatización, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Resource bad req::

{
    "error": "argument_not_valid",
    "message": "rule_id must not be null",
    "status": 400,
    "cause": [
        {
            "code": "rule_id_not_null",
            "message": "Rule identifier is required"
        }
    ]
}

Resource not found:

{
    "error": "item_not_found",
      "message" : "Item with id [MLA123456] not found",
    "status": 404
}

Usuário no autorizado:

{
    "error": "user_not_authorized",
    "message": "User is not allowed to automate items",
    "status": 412
}

Automatización ya creada:

{     "error": "automation_already_created",
      "message" : "Automation already created",
    "status": 412
}

Automatización no permitida:

{          
   "error": "automation_operation_not_allowed",
   "message" : "Cannot perform [assign automation] for item with id [MLA123456]",
   "status": 412
}

No se puede procesar la regla establecida:

{    
     "error": "unprocessable_set_rule",
     "message" : "Error calling rule assignment service",
     "status": 422
}

No autorizado

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Obtener automatización de precios existente

Para obtener una automatización de un ítem, es necesario consultar el recurso /pricing-automation/items/{{itemId}}/automation

Pre condiciones para obtener una automatización

  • Debe corresponder a un ítem existente
  • Debe ser una automatización ya asignada
  • Debe cumplir las condiciones de Obtención

Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/automation

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/pricing-automation/items/MLA12345678/automation

Respuesta:

{
    "item_id": "MLA123456",
    "status": "ACTIVE | PAUSED" 
    "item_rule": {
        "rule_id": "INT_EXT",
    },
    "min_price": 100000,
    "max_price": 1000000,
    "status_detail": {
        "cause": "ITEM_NO_ACTIVE| PROMO|COMPETITORS",
        "message": "Item paused message"
     }
}

Campos de la respuesta

La respuesta de un GET al recurso /pricing-automation/items/{{itemId}}/automation proporcionará los siguientes parámetros:

  • item_id: Identificador del ítem
  • status: Estado de la automatización, posibles status:
    • ACTIVE
    • PAUSED
  • item_rule:
    • rule_id: Regla de automatización.
  • min_price: Precio mínimo seteado a la automatización.
  • max_price: Precio máximo seteado a la automatización.
  • status_detail: Estado de la automatización pausado por alguna de estas causas:
    • COMPETITORS
    • PROMO
    • ITEM_NO_ACTIVE
  • cause: causa de la automatización pausada
  • message: mensaje detallando cuál de las causas pausó la automatización

Posibles errores al obtener una automatización

Al consultar una automatización, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Resource not found:

{
    "error": "item_not_found",
      "message" :"Item with id [MLA123456] not found",
    "status": 404,
            "cause": []
}

Automatización no encontrada:

{
    "error": "automation_not_found",
      "message" : "Automation not found for item with id [MLA123456]",
    "status": 404,
            "cause": []
}

Usuário no autorizado:

{
    "error": "user_not_authorized",
    "message": "User is not allowed to automate items",
    "status": 412,
    "cause": []
}

Automatización no permitida:

{          
   "error": "automation_operation_not_allowed",
   "message" : "Cannot perform [get automation] for item with id [MLA123456]",
   "status": 412,
   "cause": []
}

No se puede procesar la regla establecida:

{    
     "error": "unprocessable_get_rule",
     "message" : "Error calling rule assignment service",
     "status": 422
}

No autorizado:

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Actualizar una automatización de precios

Para actualizar una regla de automatización de un ítem que se encuentra asignada, es necesario realizar un PUT al recurso /pricing-automation/items/{{itemId}}/automation

Pre condiciones para actualizar una automatización

  • Se debe aplicar la regla a un ítem existente.
  • Es obligatorio que tenga un precio mínimo.
  • Los precios no pueden ser absurdos (Máximo y Mínimo).
  • Debe cumplir las condiciones de Modificación.

Llamada:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 
{
    "rule_id" : "INT_EXT",
    "min_price": 100000,
    "max_price": 1000000
}
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/automation

Ejemplo:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 
{
    "rule_id" : "INT_EXT",
    "min_price": 100000,
    "max_price": 1000000
}
https://api.mercadolibre.com/pricing-automation/items/MLA12345678/automation

Respuesta:

{
 "item_id": "MLA123456",
 "status": "ACTIVE",
 "item_rule": {
           "rule_id": "INT_EXT",
             },
 "min_price": 100000,
 "max_price": 1000000
}

Campos de la respuesta

La respuesta de un PUT al recurso /pricing-automation/items/{{itemId}}/automation proporcionará los siguientes parámetros:

  • item_id: Identificador del ítem
  • status: Estado de la automatización, posibles status:
    • ACTIVE
    • PAUSED
  • item_rule:
    • rule_id: Regla de automatización.
  • min_price: Precio mínimo seteado a la automatización.
  • max_price: Precio máximo seteado a la automatización.

Posibles errores al actualizar una automatización

Al actualizar una automatización, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Response bad req:

{
    "error": "argument_not_valid",
    "message": "rule_id must not be null",
    "status": 400,
    "cause": [
        {
            "code": "rule_id_not_null",
            "message": "Rule identifier is required"
        }
    ]
}

Resource not found:

{
    "error": "item_not_found",
      "message" : "Item with id [MLA123456] not found",
    "status": 404,
      "cause": []
}

Usuário no autorizado:

{
    "error": "user_not_authorized",
    "message": "User is not allowed to automate items",
    "status": 412,
    "cause": []
}

Automatización no permitida:

{          
   "error": "automation_operation_not_allowed",
   "message" : "Cannot perform [assign automation] for item with id [MLA123456]",
   "status": 412,
   "cause": []
}

No se puede procesar la regla establecida:

{   "error": "unprocessable_set_rule",
    "message" : "Error calling rule retrieve service",
    "status": 422,
    "cause": []
}

No autorizado:

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Eliminar una automatización de precios

Para eliminar una regla de automatización de un ítem que se encuentra asignada, es necesario realizar un DELETE al recurso /pricing-automation/items/{{itemId}}/automation

Pre condiciones para eliminar una automatización

  • Se debe eliminar la regla a un ítem existente
  • Se debe eliminar una regla existente

Llamada:

curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/automation

Ejemplo:

curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/MLA12345678/automation

Posibles errores al eliminar una automatización

Al eliminar una automatización, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Resource not found:

{
    "error": "item_not_found",
      "message" : "Item with id [MLA123456] not found",
    "status": 404,
      "cause": []
}

Automatización no encontrada:

{
    "error": "automation_not_found",
            "message" : "Automation not found for item with id [MLA123456]",
    "status": 404,
            "cause": []
}

Usuário no autorizado:

{
    "error": "user_not_authorized",
    "message": "User is not allowed to automate items",
    "status": 412,
    "cause": []
}

Automatización no permitida:

{          
   "error": "automation_operation_not_allowed",
   "message" : "Cannot perform [delete automation] for item with id [MLA123456]",
   "status": 412,
   "cause": []
}

No se puede procesar la regla establecida:

{   "error": "unprocessable_delete_rule",
    "message" : "Error calling rule retrieve service",
    "status": 422,
    "cause": []
}

No autorizado:

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Obtener histórico de precios para un ítem automatizado

Para un ítem específico, se puede obtener el histórico de las modificaciones de precios generado por las automatizaciones aplicadas, es necesario realizar un GET al recurso /pricing-automation/items/{{itemId}}/price/history

Pre condiciones para obtener el historial de precios para un ítem

  • Debe consultarse sobre un ítem existente

Parámetros:

Query params Obligatoriedad Detalle value
days Opcional por defecto es 30
page Opcional por defecto es 0
size Opcional por defecto es 10

Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/$ITEM_ID/price/history

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 
https://api.mercadolibre.com/pricing-automation/items/MLA12345678/price/history

Respuesta:

{
    "result_code": 200,
    "result": {
        "content": [
            {
                "date_time": "2024-07-12T15:26:15Z",
                "percent_change": 0,
                "usd_price": 0,
                "deal_id": "68719c01-0566-4728-adef-2701750be2d0",
                "price": 120,
                "event": "CurrentStrategyConfirmed",
                "strategy_type": "automation_min_price"
            }
        ],
        "pageable": {
            "offset": 0,
            "page_number": 0,
            "page_size": 1
        },
        "total_elements": 9,
        "total_pages": 9,
        "size": 1,
        "number_of_elements": 1,
        "empty": false
    },
    "result_message": "OK"
}

Campos de la respuesta

La respuesta de un GET al recurso /pricing-automation/items/{{itemId}}/price/history proporcionará los siguientes parámetros:

  • result_code: Código HTTP de respuesta a la request recibida.
  • result: Contiene el contenido de la respuesta y la información de paginación.
    • content: Lista de objetos que contienen los detalles del histórico de precios.
      • date_time: Fecha que indica la fecha y hora en la que se registró el cambio de precio.
      • percent_change: Variación porcentual del precio respecto al valor anterior.
      • usd_price: Precio en USD del ítem. Puede ser 0 si no está disponible.
      • deal_id: Identificador único asociado a la transacción o evento de precio.
      • price: Precio del ítem en la moneda local en el momento del evento.
      • event: Nombre del evento que provocó el cambio de precio.
      • strategy_type: Tipo de estrategia utilizada para el ajuste del precio.
    • pageable: Información sobre la paginación de los resultados.
      • offset: Desplazamiento desde el inicio de la lista de resultados.
      • page_number: Número de la página actual en la paginación.
      • page_size: Número máximo de elementos por página.
    • total_elements: Número total de elementos disponibles en la respuesta.
    • total_pages: Número total de páginas disponibles según el tamaño de la página.
    • size: Número de elementos presentes en la página actual.
    • number_of_elements: Número de elementos en la página actual.
    • empty: Indicador de si la respuesta contiene o no datos.
  • result_message: Mensaje que proporciona una descripción del estado de la solicitud.

Posibles errores al obtener el historial de precio de un ítem

Al obtener el historial de cambio de precios para un ítem, es posible que te encuentres con los siguientes errores. Es crucial que entiendas la causa de cada uno y sepas cómo corregirlos, para manejar eficientemente la situación. Aquí tienes la información necesaria para identificar y resolver estos problemas.

Response bad req:

{
    "message": "size must be numeric",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

No autorizado:

{
    "code": "unauthorized",
    "message": "invalid access token"
}

Item consultado no fue automatizado:

{
    "message": "Item with id [MLM20974486577] not found",
    "error": "item_not_found",
    "status": 404,
    "cause": []
}

El item no pertenece al seller:

{
    "message": "User is not item owner",
    "error": "user_not_authorized",
    "status": 412,
    "cause": []
}

Error al recuperar artículos del historial de precios

{
    "message": "Error calling retrieve price history item service",
    "error": "unprocessable_get_price_history",
    "status": 422,
    "cause": []
}