# MercadoLibre Scraper 2026 (`devcake/mercadolibre-scraper`) Actor

Extract product data from MercadoLibre search results across Argentina, Mexico, Brazil and other 14 countries. Supports concurrent pages, multiple queries, and detailed product fields.

- **URL**: https://apify.com/devcake/mercadolibre-scraper.md
- **Developed by:** [devcake](https://apify.com/devcake) (community)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 411 total users, 118 monthly users, 99.9% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**MercadoLibre Product Data Scraper** helps you collect product information from 17 MercadoLibre storefronts across Latin America. Enter search terms, provide known listing IDs, or use both; then choose a country and receive an organized list of products that you can review or download—no coding required.

Use it for **price monitoring, competitor research, product discovery, catalog planning, and regional market comparisons**. You can run it whenever you need fresh results or schedule regular runs through Apify.

***

### 🛒 What It Does

The scraper searches the MercadoLibre country you select and collects the products shown for each of your search terms.

- 🔍 **Search multiple terms** in a single run
- 🆔 **Enrich known listing IDs directly** without running a search
- 🎛️ **Narrow searches with filters** — price, condition, free shipping, Mercado Envíos FULL, discounts, official stores, or top-rated sellers
- 🌎 **Choose from 17 country storefronts**, including Mercado Livre Brazil
- 💵 **Compare prices and discounts** in each country's local currency
- 🏪 **Review sellers and official stores**
- 🚚 **See delivery, free-shipping, and international-listing information**
- ⭐ **Collect ratings and review information** when available
- 🖼️ **Save product images and listing links**
- 📥 **Download results** in formats such as Excel, CSV, or JSON
- 🗓️ **Schedule repeat runs** on Apify for ongoing monitoring

Some information varies from one listing to another. If MercadoLibre does not show a detail for a product, it will not appear in that product's result.

***

### 📦 Data You Get

Each result can include:

| Icon | Information | What it tells you |
|:---:|---|---|
| 📝 | Product | Title, description, condition, brand, and key features |
| 💵 | Pricing | Current price, previous price, discount, and currency |
| 💳 | Payment | Installment offers and accepted payment options |
| 🏪 | Seller | Seller name, reputation, and official-store information |
| 🚚 | Delivery | Free shipping, international-listing flag, delivery messages, and pickup options |
| 📦 | Availability | Stock and sold-quantity information when displayed |
| ⭐ | Reviews | Average rating, number of reviews, and selected comments |
| 🎨 | Options | Available colors, sizes, or other product variations |
| 🖼️ | Images | Main product image and, when requested, the full gallery |
| ↩️ | Policies | Return and warranty information |
| 🔗 | Links | Direct links to the MercadoLibre product page |

For a faster, simpler search, you can collect the main listing information only. Turn on **Additional product details** when you also want descriptions, specifications, image galleries, seller details, reviews, and other information from individual product pages.

***

### 🌎 Supported Countries

| Country | MercadoLibre storefront |
|---|---|
| 🇦🇷 Argentina | mercadolibre.com.ar |
| 🇧🇴 Bolivia | mercadolibre.com.bo |
| 🇧🇷 Brazil | mercadolivre.com.br |
| 🇨🇱 Chile | mercadolibre.cl |
| 🇨🇷 Costa Rica | mercadolibre.co.cr |
| 🇩🇴 Dominican Republic | mercadolibre.com.do |
| 🇪🇨 Ecuador | mercadolibre.com.ec |
| 🇬🇹 Guatemala | mercadolibre.com.gt |
| 🇭🇳 Honduras | mercadolibre.com.hn |
| 🇲🇽 Mexico | mercadolibre.com.mx |
| 🇳🇮 Nicaragua | mercadolibre.com.ni |
| 🇵🇦 Panama | mercadolibre.com.pa |
| 🇵🇾 Paraguay | mercadolibre.com.py |
| 🇵🇪 Peru | mercadolibre.com.pe |
| 🇸🇻 El Salvador | mercadolibre.com.sv |
| 🇺🇾 Uruguay | mercadolibre.com.uy |
| 🇻🇪 Venezuela | mercadolibre.com.ve |

***

### 🏪 Who It's For

- 🛍️ **Online sellers** researching products, prices, and competing offers
- 📊 **Price monitoring teams** watching price, discount, and availability changes
- 🔬 **Market researchers** comparing brands, categories, and customer interest
- 🏬 **Retailers and resellers** exploring demand and seller competition
- 🗂️ **Catalog teams** collecting titles, specifications, images, and product links
- 🌍 **Regional teams** comparing the same type of product across countries

***

### 💰 Popular Use Cases

#### 📈 Monitor prices

Run the same searches regularly to spot price changes, new discounts, changes in availability, or new competing offers. Apify Schedules can repeat the run automatically.

#### 🌍 Compare regional markets

Search for the same product in different countries to compare product selection, local prices, shipping offers, ratings, and seller competition. Prices are provided in the currency used by the selected storefront.

#### 🔎 Research competitors and sellers

Review seller names, reputation, delivery offers, product ratings, and stock messages to understand which offers stand out in a category.

#### 🗂️ Build or improve a product catalog

Collect product titles, brands, descriptions, specifications, images, and links to support product research and catalog planning.

***

### 🚀 Quick Start

1. Open the Actor in Apify Console.
2. Add one or more **Search queries**, such as `iphone`, `cafeteira`, or `bicicleta`. Alternatively, remove the prefilled query and enter comma-separated **Product IDs** from a previous result.
3. Select the **Country** you want to search.
4. (Optional) Set **Filters** to narrow the results, such as a price range, condition, free shipping, or category.
5. Choose the **maximum number of products** to collect for each search.
6. Leave **Additional product details** on if you want richer product information.
7. Click **Start** and wait for the results to appear.
8. Open the results and download them in your preferred format.

> 💡 **Tip:** For your first run, try one search query and the default limit of 30 products. This lets you preview the results before starting a larger search.

***

### ⚙️ Input Settings

| Icon | Setting | What to enter |
|:---:|---|---|
| 🔍 | Search queries | One or more products or phrases you want to find. Each query is searched separately. |
| 🆔 | Product IDs | Optional comma-separated MercadoLibre listing IDs (`ml_id` values), such as `MLM2736946655, MLM2580443585`. IDs are enriched directly and must match the selected country. |
| 🌎 | Country | The MercadoLibre storefront you want to search. Argentina is selected by default. |
| 📦 | Maximum products | The most products to collect for each query. Choose from 20 to 2,400. The default is 30. |
| ✨ | Additional product details | Turn this on for descriptions, specifications, galleries, seller details, reviews, and more. |

The number of results may be lower than your chosen maximum if MercadoLibre shows fewer matching products.

At least one search query or Product ID is required. Product IDs can be combined with searches; if a supplied ID also appears in search results, it is returned only once. **Additional product details** must remain enabled when Product IDs are supplied.

#### 🎛️ Filters

Filters narrow a **search query** before the Actor collects products, so fewer, more relevant results are returned. They do **not** apply to direct Product IDs. All filters are optional; leave them at their defaults for an unfiltered search.

| Setting | What it does |
|---|---|
| Sort by | Order results by relevance (default), price low to high, or price high to low. |
| Condition | Keep only new or used listings. |
| Min price / Max price | Keep listings within a price range, in the storefront's local currency. Leave either side empty for an open-ended range. |
| Free shipping only | Keep listings that offer free shipping. |
| Mercado Envios FULL only | Keep listings shipped from MercadoLibre's FULL warehouses. |
| Min discount (%) | Keep listings discounted by at least this percentage. |
| Official stores only | Keep listings sold by official MercadoLibre stores. |
| MercadoLider sellers only | Keep listings from top-rated (MercadoLíder) sellers. |

Saving fewer maximum products makes runs finish faster and cost less, because fewer products are collected and enriched.

***

### 📝 Example

Imagine you want to research bicycles in Argentina:

| Setting | Example choice |
|---|---|
| Search query | bicicleta |
| Country | Argentina |
| Filters | Free shipping only: On, Condition: new |
| Maximum products | 30 |
| Additional product details | On |

Your results may include each bicycle's title, current and previous price, discount, seller, brand, condition, stock message, shipping offer, rating, images, and product link. You can then sort, filter, and download the list from Apify.

To enrich known Mexico listings without searching, remove the prefilled search query, choose **Mexico**, enter `MLM2736946655, MLM2580443585` in **Product IDs**, and keep **Additional product details** on.

***

### 💳 Pricing

This Actor is priced according to the number of product results collected. Requesting additional product details may have a separate charge for products that are successfully expanded with more information.

Check the **Pricing** tab on the Actor page before starting a large run, as it shows the current rates. Starting with 30 products is an easy way to estimate the cost and confirm that the results suit your needs.

***

### 📥 Using Your Results

When the run finishes, open the **Output** tab to view your products. You can download the results as **Excel, CSV, JSON**, or another available format.

- 📊 Use Excel or CSV for sorting, filtering, and sharing
- 🗓️ Use Apify Schedules to repeat searches automatically
- 🔔 Connect Apify with other services to support reports and alerts
- 🔁 Compare results from different runs to track changes over time

Some detailed information, such as image galleries or product options, may appear as grouped content in spreadsheet exports.

***

### ❓ FAQ

#### Can I search more than one product at a time?

Yes. Add multiple search queries, and the Actor will search each one separately using the same country and product limit.

#### Can I enrich products when I already know their IDs?

Yes. Paste comma-separated listing IDs into **Product IDs**, select the country matching their prefix, and keep **Additional product details** enabled. Use the `ml_id` field from previous Actor results; catalog IDs and IDs from another country are not accepted for the selected storefront.

#### Can I search several countries in one run?

Each run searches one country. To compare countries, start a separate run for each storefront using the same search query.

#### Can I filter the search results?

Yes. The **Filters** settings let you narrow a search by sort order, condition, price range, free shipping, Mercado Envios FULL, minimum discount, official stores, or MercadoLíder sellers. Filters apply to search queries; direct Product IDs are always enriched as given, regardless of filters.

#### Why are some product details missing?

MercadoLibre does not display the same information for every product. The Actor returns the details that are available on each listing.

#### Can condition be available when additional product details fail?

Yes. The Actor collects condition from search results when MercadoLibre shows it. With **Additional product details** enabled, it also keeps condition from a product page whose listing ID matches, even if other required details or the image gallery are missing. These recovered conditions are normalized to `new`, `used`, or `refurbished`. Complete enrichment can also return MercadoLibre's explicit `not_specified` value. If no reliable value is available, the field is omitted.

Recovering condition alone leaves `enrichment_status` as `failed` and does not count as a successful Details enrichment.

#### Why did I receive fewer products than the maximum?

The maximum is a limit, not a guaranteed total. A search may have fewer matching products available, and marketplace pages can change over time.

#### How do I get descriptions, specifications, and more images?

Turn on **Additional product details** before starting the run. This asks the Actor to visit each product listing and collect the extra information shown there.

#### Can I open the results in a spreadsheet?

Yes. After the run, open the **Output** tab and export the results to Excel or CSV.

#### Can I monitor prices automatically?

Yes. Create an Apify Schedule to repeat the same search daily, weekly, or at another interval that suits your workflow.

#### Is it okay to collect MercadoLibre data?

This Actor collects publicly available product information. You are responsible for using the results in accordance with MercadoLibre's terms and the laws that apply to you.

***

### 🛟 Support

If a run does not produce the results you expect, check that your search term matches the selected country and try a small run first. When reporting an issue, include the country, search query, and a link to the Apify run so it can be investigated more quickly.

# Actor input Schema

## `queries` (type: `array`):

Enter MercadoLibre search terms. Each query is scraped independently. Remove the prefilled query to enrich only the product IDs below.

## `productIds` (type: `string`):

Enter up to 2,400 MercadoLibre listing IDs separated by commas, such as 'MLM2736946655, MLM2580443585'. Use the ml_id values from previous Actor results, select the country matching the ID prefix, and keep detail enrichment enabled. IDs already found by a search query are not duplicated.

## `country` (type: `string`):

Choose one of 17 supported storefronts: AR, BO, BR, CL, CR, DO, EC, GT, HN, MX, NI, PA, PY, PE, SV, UY, or VE.

## `maxItems` (type: `integer`):

Maximum items to collect for each search query. Choose between 20 and 2400; lower values return (and enrich) fewer products, so runs finish faster.

## `enrichDetailPage` (type: `boolean`):

Fetch additional details such as descriptions, galleries, brands, and shipping. This must be enabled when Product IDs are supplied.

## `sort` (type: `string`):

Order the search results. Applies to search queries.

## `condition` (type: `string`):

Keep only new or used listings.

## `priceMin` (type: `integer`):

Minimum price in the storefront currency.

## `priceMax` (type: `integer`):

Maximum price in the storefront currency.

## `discountMin` (type: `integer`):

Keep only listings discounted by at least this percentage (1-99).

## `freeShipping` (type: `boolean`):

Keep only listings with free shipping.

## `fullFulfillment` (type: `boolean`):

Keep only listings shipped from MercadoLibre's FULL warehouses.

## `officialStoreOnly` (type: `boolean`):

Keep only listings sold by official MercadoLibre stores.

## `mercadoLiderOnly` (type: `boolean`):

Keep only listings from MercadoLider (top-rated) sellers.

## Actor input object example

```json
{
  "queries": [
    "bicicleta"
  ],
  "country": "AR",
  "maxItems": 48,
  "enrichDetailPage": true,
  "sort": "relevance",
  "condition": "any",
  "freeShipping": false,
  "fullFulfillment": false,
  "officialStoreOnly": false,
  "mercadoLiderOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

Complete scraped product data

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "bicicleta"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devcake/mercadolibre-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": ["bicicleta"] }

# Run the Actor and wait for it to finish
run = client.actor("devcake/mercadolibre-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "bicicleta"
  ]
}' |
apify call devcake/mercadolibre-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,devcake/mercadolibre-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vD4qPwz0HrCpuCDyZ/builds/Gmk4lQM7F426Rh49S/openapi.json
