# Mercado Libre Scraper (`automly/mercadolibre-scraper`) Actor

Scrape Mercado Libre and Mercado Livre search results and product pages in 18 countries: price, discount, installments, seller and reputation, sales, ratings, Full shipping, specs and images.

- **URL**: https://apify.com/automly/mercadolibre-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 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

## Mercado Libre Scraper

### What is Mercado Libre Scraper?

**Mercado Libre Scraper** lets you **scrape Mercado Libre and Mercado Livre** search results and product pages in all 18 countries: title, price, price before discount, discount, installments, free shipping and Full, units sold, rating and number of ratings, seller and official store, brand, condition and position in the results. Turn on full details to add the seller's reputation and MercadoLíder level, stock, every image, the full specifications, the description, the star breakdown and the variations. Search by keyword with Mercado Libre's own filters or paste any search, category, seller, store or product link, click **Start**, and download the data as Excel, CSV or JSON.

- ⚡ **Fast:** about 4,700 search results in under a minute, or 200 results with full product details in about a minute and a half (our tests)
- 🌎 **All 18 countries:** Mexico, Brazil, Argentina, Colombia, Chile, Peru, Uruguay, Venezuela, Ecuador and 9 more, with prices in each site's own currency
- 🔎 **Whole searches:** Mercado Libre shows at most 2,000 results for one search; this scraper goes past that and brings back the full search
- 🏪 **Sellers and stores:** every listing of a seller or an official store, from its link
- 🔓 **No login:** no Mercado Libre account needed

### What can Mercado Libre Scraper do?

- **Scrape Mercado Libre search results** for any keyword, like `iphone 15`, `tenis nike` or `freidora de aire`
- **Filter like on the site:** new, used or refurbished, price range, minimum discount, free shipping, Mercado Libre Full and official stores, sorted by relevance or price
- **Scrape any Mercado Libre link:** search and category pages with the filters you set on the site, a seller's listings, an official store, a product page or an item page
- **Get full product details:** seller ID, reputation and MercadoLíder level, stock, every image, full specifications, description, star breakdown, variations and category path
- **Track prices and discounts** across sellers and countries with a daily schedule
- **Size up a market:** how many results a search has, who sells, at what price, and how much they sell
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Mercado Libre?

| | | |
|---|---|---|
| 🏷️ Title, item ID and product ID | 💲 Price and currency | 🔖 Price before discount and discount % |
| 💳 Installments (number, amount, interest free) | 🚚 Free shipping, Full and delivery line | 🌐 International shipping |
| 📦 Units sold | ⭐ Rating and number of ratings | 🏪 Seller and official store |
| 🏭 Brand | ✨ Condition (new, used, refurbished) | 📍 Position in the results |
| 🆔 Seller ID, reputation and MercadoLíder level\* | 📊 Stock available\* | 📸 Every image\* |
| 📋 Full specifications\* | 📝 Description\* | 🌟 Ratings per star\* |
| 🎨 Variations (colors, sizes...)\* | 🗂️ Category path\* | 🔗 Product link |

\* with **Include full product details** turned on.

### How to scrape Mercado Libre

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Mercado Libre Scraper**.
3. Enter search terms and pick a country, or paste Mercado Libre links, one per line.
4. Set filters if you like, and how many results you want per search.
5. Click **Start**, then download the data as Excel, CSV, JSON or HTML.

### How much does it cost to scrape Mercado Libre?

You pay per result saved, plus a small add-on for each result saved with its full details (only when full details are on). The **Pricing** tab shows the exact price per 1,000 results on your Apify plan, with lower prices on paid plans.

Every Apify account gets **$5 of free usage each month**, which is plenty to try the scraper on real searches. **Max results per search or link** keeps the cost of a run under control, and you can also set a maximum cost per run.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Search terms** | What to search for, one per line, like `iphone 15` |
| **Country** | Which Mercado Libre site the search terms use, like Mexico (mercadolibre.com.mx) or Brazil (mercadolivre.com.br) |
| **Mercado Libre links** | Search and category pages, seller listings, official stores, product and item pages, or item numbers like `MLM2352759681`, from any country |
| **Max results per search or link** | How many results to save for each (default 100). Set 0 for every result |
| **Include full product details** | Adds the seller's reputation, stock, images, specifications, description, star breakdown and variations |
| **Sort by** | Most relevant, lowest price or highest price |
| **Condition** | Any, new, used or refurbished |
| **Minimum price / Maximum price** | Price range in the country's currency |
| **Minimum discount (%)** | Only items at least this many percent off |
| **Free shipping only / Mercado Libre Full only / Official stores only** | Like the switches on the site |

New iPhones between 10,000 and 25,000 pesos with free shipping on mercadolibre.com.mx, cheapest first:

```json
{
  "searchQueries": ["iphone 15"],
  "country": "MX",
  "condition": "new",
  "minPrice": 10000,
  "maxPrice": 25000,
  "freeShippingOnly": true,
  "sortBy": "price_asc",
  "maxItems": 200
}
```

A category page, a seller's store and a product page from Brazil and Mexico, with full details:

```json
{
  "startUrls": [
    "https://lista.mercadolivre.com.br/fone-bluetooth",
    "https://www.mercadolibre.com.mx/tienda/sony",
    "https://www.mercadolibre.com.mx/audifonos-inalambricos-sony-wh-ch520-negro/p/MLM23138487"
  ],
  "includeDetails": true,
  "maxItems": 100
}
```

### ⬆️ Output

One row per result. A row from a search with full details (long lists shortened):

```json
{
  "itemId": "MLM2352759681",
  "catalogProductId": "MLM51641719",
  "title": "Laptop HP 250 G10 Intel Core i3 N305 16GB 256GB SSD 15.6\" W11",
  "url": "https://www.mercadolibre.com.mx/laptop-hp-250-g10-intel-core-i3-n305-16gb-256gb-ssd-156-w11/p/MLM51641719?pdp_filters=item_id:MLM2352759681",
  "thumbnail": "https://http2.mlstatic.com/D_NQ_NP_693716-MLA99990411567_112025-O.webp",
  "brand": "HP",
  "price": 9404,
  "currency": "MXN",
  "originalPrice": 12499,
  "discountPercentage": 24,
  "installments": {"quantity": 24, "amount": 568.28, "total": 13638.72, "noInterest": false, "text": "24 meses de 568.28"},
  "rating": 4.8,
  "reviewCount": 29,
  "soldQuantity": 100,
  "condition": "new",
  "freeShipping": true,
  "isFull": true,
  "shippingText": "Llega gratis mañana",
  "isInternational": false,
  "sellerName": "DECME STORE",
  "isOfficialStore": true,
  "categoryId": "MLM1652",
  "domainId": "MLM-NOTEBOOKS",
  "position": 1,
  "description": "La laptop HP 250 G10 es una opción asequible y versátil...",
  "images": ["https://http2.mlstatic.com/D_NQ_NP_693716-MLA99990411567_112025-O.webp"],
  "attributes": {"Marca": "HP", "Línea": "250 G10", "Modelo": "250-Ci316256", "Tipo de memoria RAM": "DDR4"},
  "categoryPath": ["Computación", "Laptops y Accesorios", "Laptops"],
  "sellerId": 23838355,
  "sellerReputation": "5_green",
  "powerSellerStatus": "platinum",
  "officialStoreId": 306998,
  "availableQuantity": 11,
  "stockText": "+10 disponibles",
  "soldText": "+100 vendidos",
  "ratingBreakdown": {"5": 26, "4": 1, "3": 1, "2": 1, "1": 0},
  "variations": null,
  "logisticType": "fulfillment",
  "searchQuery": "laptop",
  "searchUrl": "https://listado.mercadolibre.com.mx/laptop",
  "totalResults": 45975,
  "country": "MX",
  "siteId": "MLM",
  "details": true,
  "scrapedAt": "2026-10-16T09:10:00Z"
}
```

Without full details a row has the same fields, with the description, images, specifications and seller reputation left empty. Labels such as the delivery line come in the language of the site you scrape.

The **Output** tab has two views: **Overview** (image, title, prices, discount, rating, units sold, shipping, seller) and **Details and sellers**. A run report lists, for every search or link, how many results the site lists and how many were saved.

### How do I scrape more than 2,000 results from a Mercado Libre search?

Mercado Libre's own search pages stop at 2,000 results. Set **Max results** above 2,000 (or to 0 for everything) and the scraper reads the whole search, each item once. Beyond the first 100 results they come back grouped by price instead of in Mercado Libre's ranking, so their position is left empty. The run report says when a search was that big.

### How do I scrape every listing of a seller?

Paste the seller's store link (like `https://www.mercadolibre.com.mx/tienda/sony`) or the link of their listings page under **Mercado Libre links**. You get every listing they have, with the same fields as a search.

### Which countries are supported?

Mexico, Brazil, Argentina, Colombia, Chile, Peru, Uruguay, Venezuela, Ecuador, Bolivia, Costa Rica, Dominican Republic, Guatemala, Honduras, Nicaragua, Panama, Paraguay and El Salvador. Links from any of these sites work as they are. In Colombia and Peru, Mercado Libre currently shows only the first 50 results of each search here and does not apply the filters, so a filtered search there stops with a message instead of returning unfiltered results; the run report notes it. Some country sites do not offer every filter either (for example Full shipping in Uruguay and Ecuador).

### Use cases

- **Sellers and brands:** watch competitors' prices, discounts and units sold, and spot unauthorized resellers of your brand
- **Price monitoring:** follow a list of products or a search every day and catch price drops
- **Market research:** see how big a category is, which brands and sellers lead it, and at what prices
- **Dropshipping and sourcing:** find best-selling products with good ratings and reliable sellers
- **Catalog building:** pull images, specifications and descriptions for your own store

### Use with AI agents (MCP)

AI agents can run Mercado Libre Scraper through the Apify MCP server. Ask for something like "find 50 new Samsung phones under 5,000 pesos with free shipping on Mercado Libre Mexico, cheapest first", and the agent runs it with:

```json
{"searchQueries": ["celular samsung"], "country": "MX", "condition": "new", "maxPrice": 5000, "freeShippingOnly": true, "sortBy": "price_asc", "maxItems": 50}
```

### Integrations and API

Run Mercado Libre Scraper from your own code with the Apify API or the Apify clients for JavaScript and Python, schedule it daily, and connect the results to Google Sheets, Slack, Make, Zapier, Airbyte or your own webhook. Every run's results are also available as an API link in JSON, CSV or Excel.

### ❓FAQ

#### How much does Mercado Libre Scraper cost?

You pay per result saved, plus a small add-on per result with full details when that option is on; see the **Pricing** tab for the price per 1,000 results on your plan. The free $5 of monthly usage covers your first tests.

#### Does it work for Mercado Livre Brasil?

Yes. Pick Brazil (mercadolivre.com.br) or paste a mercadolivre.com.br link. Prices come in BRL and labels in Portuguese.

#### Why is the units sold number rounded?

Mercado Libre itself shows sales in steps such as "+100 vendidos" or "+50 mil vendidos". The scraper returns that number (100, 50000) as a lower bound, and the text as shown with full details.

#### Why do some rows have no item ID?

When a product is sold by several sellers, Mercado Libre shows one card for the product ("3 opciones de compra") instead of one seller's listing. Those rows carry the product ID and the price on the card; turn on full details to get the seller and offer the product page shows first.

#### Do I need a Mercado Libre account?

No. The scraper reads what anyone can see on Mercado Libre without logging in.

#### What about personal data?

The scraper saves only what a listing shows publicly: the seller or store name, seller ID, reputation and MercadoLíder level. Mercado Libre does not show sellers' addresses, phone numbers or emails, and the scraper removes emails and phone numbers typed into descriptions. If you store data about sellers, make sure you have a lawful reason to.

#### Is it legal to scrape Mercado Libre?

Scraping public data is generally allowed, but you are responsible for how you use it. Do not collect personal data you have no lawful reason to process, and respect Mercado Libre's rights in its content. This scraper is not affiliated with, endorsed by or connected to Mercado Libre.

#### Why does the number of rows differ from the site's count?

Mercado Libre's count is approximate: it counts some items twice, and a big search read in full often turns up a few percent more items than it says. Each item is saved once per search. The run report shows how many results the site lists for each search and how many were saved.

#### A product or link was not found. Why?

The listing was removed or the link is wrong. Such inputs are listed as not found in the run report, and the run still succeeds.

#### Something is not working. What should I do?

Open an issue on the **Issues** tab with your input and the run link, and we will look at it quickly.

### Your feedback

If Mercado Libre Scraper helps you, please leave a review on the Store page. It helps other people find it, and we read every one.

# Actor input Schema

## `searchQueries` (type: `array`):

What to search for, one search per line, e.g. iphone 15, tenis nike, freidora de aire. Each search uses the country and filters below. Leave empty to use only links.

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

Which Mercado Libre site to search, e.g. MX for mercadolibre.com.mx or BR for mercadolivre.com.br. Prices come in that site's currency. Pasted links keep their own country.

## `startUrls` (type: `array`):

Paste Mercado Libre or Mercado Livre links from any country in any mix, e.g. a search or category page with the filters you set on the site (listado.mercadolibre.com.mx/iphone), a seller's listings or store page (listado.mercadolibre.com.mx/\_CustId_123456, mercadolibre.com.mx/tienda/sony), a product page (/p/MLM...), an item page (articulo.mercadolibre.com.mx/MLM-...) or an item number such as MLM2352759681.

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

How many results to save for each search or link, e.g. 100. Set 0 for every result. Searches with more than 2,000 results are read in full when you ask for more than 2,000.

## `includeDetails` (type: `boolean`):

Adds each result's description, every image, full specifications, seller ID, reputation and MercadoLíder level, stock, star breakdown, variations and category path. Slower; leave off for the search fields only.

## `sortBy` (type: `string`):

Order of the results, e.g. price_asc for the cheapest first.

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

Only new, used or refurbished items, e.g. new.

## `minPrice` (type: `integer`):

Lowest price in the country's currency, e.g. 500.

## `maxPrice` (type: `integer`):

Highest price in the country's currency, e.g. 5000.

## `minDiscount` (type: `integer`):

Only items at least this many percent off, e.g. 20.

## `freeShippingOnly` (type: `boolean`):

Only items with free shipping.

## `fullShippingOnly` (type: `boolean`):

Only items shipped by Mercado Libre Full (stored and shipped by Mercado Libre).

## `officialStoresOnly` (type: `boolean`):

Only items sold by official brand stores.

## `proxyConfiguration` (type: `object`):

Leave the default. Change only if you know you need a specific proxy.

## Actor input object example

```json
{
  "searchQueries": [
    "iphone 15"
  ],
  "country": "MX",
  "maxItems": 50,
  "includeDetails": false,
  "sortBy": "relevance",
  "condition": "any",
  "freeShippingOnly": false,
  "fullShippingOnly": false,
  "officialStoresOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `items` (type: `string`):

No description

## `details` (type: `string`):

No description

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

No description

## `report` (type: `string`):

No description

# 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 = {
    "searchQueries": [
        "iphone 15"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/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 = {
    "searchQueries": ["iphone 15"],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/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 '{
  "searchQueries": [
    "iphone 15"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/mercadolibre-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/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/ahgoGa0YanZRDsHF0/builds/ebfbeyabbJJqUqTrY/openapi.json
