Documentation Mercado Libre

Check out all the necessary information about APIs Mercado Libre.
circulos azuis em degrade

Documentation

Last update 11/12/2025

Deals

Mercado Libre's commercial team periodically sends sellers invitations to participate in the commercial campaigns that take place in each marketplace. In this guide, you will learn the easiest and fastest way to submit, edit, delete and get information about deals submitted to a commercial campaign. Keep in mind that only sellers with a green reputation can submit deals.

Get Campaign Details

Retrieve detailed information about a specific commercial campaign (Deal) that a seller has been invited to participate in. Use this endpoint to obtain the campaign's status, dates, and general configuration before submitting items.

Request:

curl -X GET 'https://api.mercadolibre.com/marketplace/seller-promotions/promotions/$PROMOTION_ID?promotion_type=DEAL&user_id=$USER_ID' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: $CLIENT_ID' \
-H 'X-Caller-Id: $CALLER_ID'

Example:

curl -X GET 'https://api.mercadolibre.com/marketplace/seller-promotions/promotions/P-MLM13757022?promotion_type=DEAL&user_id=1317418851' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: 1317417907' \
-H 'X-Caller-Id: 1317417907'

Response:

{
    "id": "P-MLM13757022",
    "type": "DEAL",
    "status": "started",
    "start_date": "2024-01-29T06:00:00Z",
    "finish_date": "2024-02-12T06:00:00Z",
    "deadline_date": "2024-02-11T06:00:00Z",
    "name": "Ano nuevo chino"
}

Response fields

  • id: unique identifier of the campaign (promotion).
  • type: type of promotion. For commercial campaigns, this value is DEAL.
  • status: current status of the campaign. See the status table below.
  • start_date: date and time when the campaign starts, in ISO 8601 format.
  • finish_date: date and time when the campaign ends, in ISO 8601 format.
  • deadline_date: last date and time to submit items to the campaign, in ISO 8601 format.
  • name: name of the campaign.

Campaign Status

Find below the different traditional campaign statuses:

Status Description
pending Promotion approved but not yet started.
started Active promotion.
finished Finished promotion.

Check Campaign Items

The net_proceeds object has been added to provide greater clarity on the seller's earnings in a promotion. This object will be found in the responses of this resource. It indicates the estimated net amount that the seller will receive for an item within a specific promotion. This field will only be present if the final price of the item (price) is greater than zero.

Retrieve all items included in a specific campaign. Use this endpoint to view which items are eligible (candidates) or already participating in a Deal, along with their pricing information.

Request:

curl -X GET 'https://api.mercadolibre.com/marketplace/seller-promotions/promotions/$PROMOTION_ID/items?user_id=$USER_ID' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: $CLIENT_ID' \
-H 'X-Caller-Id: $CALLER_ID'

Example:

curl -X GET 'https://api.mercadolibre.com/marketplace/seller-promotions/promotions/P-MLM13757022/items?user_id=1317418851' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: 1317417907' \
-H 'X-Caller-Id: 1317417907'

Response:

{
    "results": [
        {
            "id": "MLM2760672650",
            "status": "candidate",
            "price": 35,
            "original_price": 0,
            "currency_id": "USD",
            "min_discounted_price": 10.5
        },
        {
            "id": "MLM2183693560",
            "status": "started",
            "price": 65.8,
            "original_price": 70,
            "currency_id": "USD"
        }
    ],
    "paging": {
        "offset": 0,
        "limit": 50,
        "total": 19,
        "searchAfter": ""
    }
}

Response fields

  • results: list of items in the campaign.
  • results[].id: item ID.
  • results[].status: item status in the campaign. See the item status table below.
  • results[].price: current item price. For candidate items, this is the original price. For started items, this is the promotional price.
  • results[].original_price: item's original price without promotion. Value is 0 for candidate items.
  • results[].currency_id: currency code (e.g., USD).
  • results[].min_discounted_price: minimum allowed price for the item in this campaign. Only present for candidate items.
  • paging: pagination information.
  • paging.offset: current offset position.
  • paging.limit: maximum number of items per page.
  • paging.total: total number of items in the campaign.
  • paging.searchAfter: cursor for pagination. Use this value in the search_after parameter to get the next page of results.

Item status

The table below shows the possible item status in this type of campaign.

Status Description
candidate Item eligible for deal.
pending Item sent to deal but not started.
started Item with deal already started.
finished Item deleted from campaign.

Submit an Item to a Campaign

Submit an item to participate in a commercial campaign. You must send the item ID, the desired promotional price, and the marketplace user ID of the country where you want to participate.

Request:

curl -X POST 'https://api.mercadolibre.com/marketplace/seller-promotions/items/$ITEM_ID?user_id=$USER_ID' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: $CLIENT_ID' \
-H 'X-Caller-Id: $CALLER_ID' \
-H 'Content-Type: application/json' \
-d '{
    "promotion_id": "$PROMOTION_ID",
    "deal_price": $DEAL_PRICE,
    "promotion_type": "DEAL"
}'

Example:

curl -X POST 'https://api.mercadolibre.com/marketplace/seller-promotions/items/MLM2760672650?user_id=1317418851' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: 1317417907' \
-H 'X-Caller-Id: 1317417907' \
-H 'Content-Type: application/json' \
-d '{
    "promotion_id": "P-MLM13757022",
    "deal_price": 15,
    "promotion_type": "DEAL"
}'

The field deal_price should be in US dollars.

Response:

{
    "price": 15,
    "original_price": 35,
    "currency_id": "USD"
}

The fields price and original_price are expressed in US dollars.

Request body parameters

  • promotion_id: promotion identification code (e.g., P-MLM13757022).
  • deal_price: item price in the promotion, in US dollars.
  • top_deal_price: (optional) item price for best buyers with Mercado Puntos level 3 to 6.
  • promotion_type: type of promotion. Use DEAL for commercial campaigns.

Response fields

  • price: the promotional price set for the item, in US dollars.
  • original_price: the item's original price before the promotion, in US dollars.
  • currency_id: currency code (e.g., USD).

Edit a Deal in a Campaign

Update the promotional price of an item already submitted to a campaign. You must send the promotion ID, item ID, and the new desired price, along with the marketplace user ID of the country where the campaign takes place.

Request:

curl -X PUT 'https://api.mercadolibre.com/marketplace/seller-promotions/items/$ITEM_ID?user_id=$USER_ID' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: $CLIENT_ID' \
-H 'X-Caller-Id: $CALLER_ID' \
-H 'Content-Type: application/json' \
-d '{
    "promotion_id": "$PROMOTION_ID",
    "deal_price": $DEAL_PRICE,
    "promotion_type": "DEAL"
}'

Example:

curl -X PUT 'https://api.mercadolibre.com/marketplace/seller-promotions/items/MLM2760672650?user_id=1317418851' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: 1317417907' \
-H 'X-Caller-Id: 1317417907' \
-H 'Content-Type: application/json' \
-d '{
    "promotion_id": "P-MLM13757022",
    "deal_price": 14,
    "promotion_type": "DEAL"
}'

The field deal_price should be in US dollars.

Response:

{
    "price": 14,
    "original_price": 35,
    "currency_id": "USD"
}

The fields price and original_price are expressed in US dollars.

Response fields

  • price: the updated promotional price for the item, in US dollars.
  • original_price: the item's original price before the promotion, in US dollars.
  • currency_id: currency code (e.g., USD).

Delete a Deal from a Campaign

Remove an item from a commercial campaign. You must send the item ID, the promotion ID, and the promotion type, along with the marketplace user ID of the site where the campaign is active.

Request:

curl -X DELETE 'https://api.mercadolibre.com/marketplace/seller-promotions/items/$ITEM_ID?user_id=$USER_ID&promotion_type=DEAL&promotion_id=$PROMOTION_ID' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: $CLIENT_ID' \
-H 'X-Caller-Id: $CALLER_ID'

Example:

curl -X DELETE 'https://api.mercadolibre.com/marketplace/seller-promotions/items/MLM2760672650?user_id=1317418851&promotion_type=DEAL&promotion_id=P-MLM13757022' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'version: v2' \
-H 'X-Client-Id: 1317417907' \
-H 'X-Caller-Id: 1317417907'

This method returns a 200 OK status code if the item was successfully removed from the campaign.

Next: Co-Funded Campaigns