# MercadoLibre Scraper (18 countries) (`synthetic.ia/mercadolibre-scraper`) Actor

Search MercadoLibre and Mercado Livre in 18 Latin American countries and get clean JSON: prices, discounts, sellers, ratings, shipping and optional full product details. Priced per result.

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

## Pricing

from $1.20 / 1,000 search 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## MercadoLibre Scraper — prices, sellers, reviews across 18 countries

**Search MercadoLibre and Mercado Livre in any Latin American country and get clean, structured data in minutes** — prices, discounts, sellers, ratings, stock and reviews as JSON, CSV or Excel. No browser to babysit, no proxies to configure, no login required. Built for price monitoring, market research, lead generation and AI agents.

> 🌎 18 marketplaces · 🛒 search, category, store or product URLs · ⚡ HTTP-fast · 🤖 works with the Apify MCP server and AI agents · 💵 from **$1.20 / 1,000 results**

***

### What can it do?

- **Search by keyword** in any category (`heladera no frost`, `notebook lenovo`, `zapatillas nike`…) and pick the country.
- **Scrape any URL** you paste: a filtered search, a category, an official store, a seller, or a single product page.
- **Sort** by relevance, lowest price or highest price.
- **Optionally open each product** for full detail: description, all images, specifications, stock, variations and reviews.
- **Filter out ads** or keep them flagged.

All data is **public** — the same information any visitor sees without logging in. The Actor never signs in and never touches private or account data.

### Why use it?

| Use case | What you get |
|---|---|
| 💰 **Price monitoring** | Track your products and competitors across countries every day. |
| 📊 **Market research** | See which brands, sellers and price points win a category. |
| 📦 **Catalog / dropshipping** | Titles, images, specs and stock for thousands of items. |
| 🎯 **Lead generation** | Lists of sellers and official stores by category and country. |
| 🧠 **AI / RAG** | Structured product data for agents, ready via MCP and x402. |

### Sample output

**Search result** (default — one record per product):

```json
{
  "id": "MLA3199790794",
  "title": "Lavarropas Philco 5kg Carga Superior Gris",
  "url": "https://www.mercadolibre.com.ar/lavarropas-philco-5kg/p/MLA65808645",
  "price": 416898,
  "originalPrice": 699999,
  "discountPercent": 40,
  "currency": "ARS",
  "installments": "Mismo precio 3 cuotas de $138.966",
  "freeShipping": true,
  "seller": "Mercado Libre",
  "officialStore": true,
  "rating": 4.8,
  "soldQuantity": 1000,
  "imageUrl": "https://http2.mlstatic.com/D_NQ_NP_838014-MLA108088518600_032026-O.webp",
  "isAd": false,
  "position": 5,
  "country": "AR"
}
```

**With “Fetch full product details” enabled**, each record also carries:

```json
{
  "brand": "Drean",
  "condition": "Nuevo",
  "availableQuantity": 6,
  "stockStatus": "Stock disponible",
  "attributes": { "Capacidad": "215 L", "Dimensiones": "54.9 x 54.9 x 141 cm" },
  "description": "Heladera con freezer cíclica, máxima frescura…",
  "images": ["…up to 10 photos…"],
  "categoryPath": ["Electrodomésticos", "Refrigeración", "Heladeras"],
  "variations": [{ "name": "Color", "selected": "Gris", "options": ["…"] }],
  "reviews": [{ "rating": 5, "text": "Llegó en tiempo y forma…", "date": "Hace 4 meses" }]
}
```

### How to use it

1. Type one or more **search queries** (one per line) and pick the **country**.
2. Set **Max results per query** — one results page is about 50 products, and this caps your cost.
3. *(Optional)* turn on **Fetch full product details** and **Include sponsored results**.
4. Click **Start**. Export from the *Output* tab as JSON, CSV or Excel, or push to Google Sheets, Make, Zapier or n8n.

Prefer URLs? Paste search, category, store or product links into **Listing or product URLs** — product links always return full details.

### Input

| Field | Description |
|---|---|
| `searchQueries` | Keywords to search, one per line |
| `country` | Marketplace: AR, MX, BR, CL, CO, UY, PE, EC, VE, BO, PY, CR, PA, DO, GT, HN, NI, SV |
| `startUrls` | Listing, category, store or product URLs (optional) |
| `maxItems` | Max results per query (controls cost) |
| `sort` | `relevance`, `price_asc` or `price_desc` |
| `fetchDetails` | Open each product for full detail |
| `includeAds` | Keep sponsored listings (flagged `isAd`) |
| `proxyConfiguration` | Apify Proxy — **Residential recommended** (see below) |

### Pricing

You pay per result, and the price is included platform usage — no compute units to decode.

| Event | Free | Starter | Scale | Business+ |
|---|---|---|---|---|
| **Search result** (per 1,000) | $4.00 | $1.80 | $1.50 | **$1.20** |
| **Product detail**, optional, on top of the search result (per 1,000) | $12.00 | $6.00 | $5.00 | **$4.50** |

Examples on the Starter plan: 2,000 search results ≈ **$3.60**. 500 products with full details ≈ **$3.90**. Apify’s free plan includes $5 of monthly credit to try it.

### Proxies

MercadoLibre protects its pages with a JavaScript challenge and blocks datacenter IPs. The Actor solves the challenge automatically with a real browser once, then reuses that session over HTTP. For reliable runs use **Residential** proxies — the Actor sets the proxy country to match the marketplace automatically.

### Use it from the API, Python, JavaScript or an AI agent

```bash
curl -X POST "https://api.apify.com/v2/acts/synthetic.ia~mercadolibre-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["notebook lenovo"],"country":"MX","maxItems":100}'
```

Also available as a tool in the [Apify MCP server](https://mcp.apify.com) for Claude, Cursor, ChatGPT and custom agents.

### FAQ

**Is it legal to scrape MercadoLibre?** The Actor only collects publicly available product and seller data and never logs in. Review the site’s terms and the laws that apply to your use case (e.g. GDPR or local data protection) before using the data.

**Why do I get few or no results?** The session was blocked. Switch the proxy to **Residential** and run again. If it persists, open an issue — we answer within 12 hours.

**Can I scrape a specific category, store or seller?** Yes — paste its URL into *Listing or product URLs*.

**Do you support price history or scheduling?** Schedule the Actor daily and keep each run’s dataset; every record has `scrapedAt`, so you can build the history yourself.

**Need another field or a custom scraper?** Open an issue describing what you need.

***

*Built by [Synthetic](https://synthetic.com.ar). Looking for another Latin American marketplace? [Get in touch](https://apify.com/synthetic.ia).*

# Actor input Schema

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

Keywords to search, one per line (e.g. "heladera no frost"). Each query is scraped up to Max results.

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

MercadoLibre marketplace to search.

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

Instead of (or in addition to) keywords: MercadoLibre search/category URLs or product page URLs. Product URLs always return full details.

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

Stop each query after this many products. You pay per result, so this caps your cost. One results page has about 50 products.

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

Result order.

## `includeAds` (type: `boolean`):

Keep promoted ("Ad") listings in the output. They are flagged with isAd = true.

## `fetchDetails` (type: `boolean`):

Visit each product page to add description, all images, specifications, stock, variations, seller details and latest reviews. Charged as an extra event per product.

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

MercadoLibre blocks datacenter IPs aggressively. Residential proxies from the target country are recommended.

## `debugLog` (type: `boolean`):

Verbose logging for troubleshooting.

## Actor input object example

```json
{
  "searchQueries": [
    "heladera"
  ],
  "country": "AR",
  "startUrls": [],
  "maxItems": 50,
  "sort": "relevance",
  "includeAds": false,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "debugLog": false
}
```

# Actor output Schema

## `products` (type: `string`):

All scraped products as JSON.

## `productsCsv` (type: `string`):

All scraped products as CSV.

## `runSummary` (type: `string`):

Counts and error breakdown for the run.

# 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": [
        "heladera"
    ],
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("synthetic.ia/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": ["heladera"],
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

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

```

## MCP server setup

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