# Mercado Libre Scraper (`gio21/mercado-libre-scraper`) Actor

Scrape products from Mercado Libre (mercadolibre.com.ar, .com.mx, .com.co, .cl, .com.pe, .com.uy, .com.ve, etc.) by keyword. Title, price, rating, reviews, seller, shipping, images, product URL. Multi-country support. Pay per result.

- **URL**: https://apify.com/gio21/mercado-libre-scraper.md
- **Developed by:** [Gio](https://apify.com/gio21) (community)
- **Categories:** E-commerce
- **Stats:** 35 total users, 7 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$1.75 / 1,000 product scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Mercado Libre Scraper — Products, Prices, Discounts & Sellers

**Mercado Libre Scraper** extracts product data from [Mercado Libre](https://www.mercadolibre.com) by keyword: title, price, discount, installments, rating, condition, shipping, seller and images. It works across **17 Hispanic Latin American marketplaces** — Argentina, Mexico, Colombia, Chile, Peru, Uruguay, Venezuela, Ecuador, Bolivia, Paraguay, Panama, Dominican Republic, Costa Rica, Guatemala, Honduras, Nicaragua and El Salvador — with **no login, no cookies and no setup**.

Each country has its own catalog, currency and prices. Export to **JSON, CSV or Excel**, pull it through the **API**, schedule it, or feed it straight to an **AI agent**. Think of it as a Mercado Libre API for product data the official one doesn't give you.

### What can you do with it?

- **💰 Price monitoring & competitor tracking** — watch prices, discounts and installment offers across sellers and react to changes.
- **📊 Market & product research** — measure demand with ratings, conditions and bestseller highlights; find gaps and winners in any niche.
- **🛒 Dropshipping & product sourcing** — discover trending products and winning listings by keyword in any LATAM country.
- **🎯 Lead generation** — collect seller names to build prospect lists.
- **🤖 AI / LLM datasets** — produce clean, structured product JSON for RAG pipelines, agents and analysis.

### What data does it extract?

| Field | Description |
|-------|-------------|
| `title` | Product title |
| `price` | Current price |
| `currency` | Local currency (ARS, MXN, COP, CLP, PEN, UYU, VES, USD, BOB, PYG, …) |
| `originalPrice` / `discount` | Original price and discount label (e.g. `46% OFF`) |
| `installments` | Installments offer (e.g. `12 cuotas de $224.908 con 0% interés`) |
| `rating` / `reviewCount` | Social proof |
| `seller` | Seller name |
| `condition` | `Nuevo`, `Usado`, `Reacondicionado` |
| `shipping` / `freeShipping` | Shipping label and free-shipping flag |
| `highlight` / `coupon` | Promotional highlight (e.g. `MÁS VENDIDO`) and coupon label |
| `variations` | Variations summary |
| `image` / `url` | Image URL and canonical product link |
| `productId` | Mercado Libre item ID (MLA/MLM/MCO/MLC/MPE/…) |
| `keyword` / `country` / `scrapedAt` | Search keyword, ISO country code and scrape timestamp |

### Input

Provide a search keyword and a target country. Each country is a separate marketplace with its own catalog, currency and prices.

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | String | Product keyword to search (e.g. `iphone`, `notebook`, `refrigerador`). |
| `country` | String | ISO country code: `AR`, `MX`, `CO`, `CL`, `PE`, `UY`, `VE`, `EC`, `BO`, `PY`, `PA`, `DO`, `CR`, `GT`, `HN`, `NI`, `SV`. |
| `maxItems` | Integer | Hard cap on total products. Default 50. |
| `maxPages` | Integer | Max search-result pages to crawl. Default 5 (~48 products per page). |
| `sort` | String | `relevance`, `price_asc`, `price_desc` or `newest`. |

#### Example: 30 iPhones from Mexico, cheapest first

```json
{
  "keyword": "iphone",
  "country": "MX",
  "maxItems": 30,
  "sort": "price_asc"
}
```

### Output

One record per product:

```json
{
  "productId": "MCO48948044",
  "title": "Samsung Galaxy S25 5g 256gb 12gb RAM navy",
  "price": 2698900,
  "currency": "COP",
  "originalPrice": 5079901,
  "discount": "46% OFF",
  "installments": "12 cuotas de $224.908 con 0% interés",
  "rating": 4.9,
  "reviewCount": null,
  "seller": "Samsung",
  "condition": null,
  "shipping": "Envío gratis",
  "freeShipping": true,
  "highlight": null,
  "coupon": null,
  "variations": null,
  "image": "https://http2.mlstatic.com/D_Q_NP_2X_697639-MLA99992075711_112025-E.webp",
  "url": "https://www.mercadolibre.com.co/samsung-galaxy-s25-5g-256gb-12gb-ram-navy/p/MCO48948044",
  "keyword": "celular",
  "country": "CO",
  "scrapedAt": "2026-06-23T01:47:08.777Z"
}
```

#### Field notes

- `productId`: the Mercado Libre item ID, prefixed by marketplace (`MLA` Argentina, `MLM` Mexico, `MCO` Colombia, `MLC` Chile, `MPE` Peru, …). For sponsored ad placements it is recovered from the click-through URL parameters.
- `currency`: each country reports in its own local currency, so always read amounts together with this field.
- `originalPrice` / `discount`: `null` when the item is not on sale; use them to filter discounted listings.
- `condition` / `highlight` / `coupon` / `variations`: `null` when Mercado Libre doesn't expose them for that listing.
- `freeShipping`: `true` when the listing shows `Envío gratis` or `Full`.

### Integrations

- **API** — start runs and fetch the dataset via the [Apify API](https://docs.apify.com/api/v2) (REST/JSON) or the JS/Python clients. A Mercado Libre API for the data the official one doesn't expose.
- **Schedule & monitor** — run on a [schedule](https://docs.apify.com/platform/schedules) for recurring price monitoring; get notified on failures.
- **AI agents / MCP** — expose this actor to ChatGPT, Claude and other assistants through the [Apify MCP server](https://mcp.apify.com) so an AI can pull live Mercado Libre data on demand.
- **No-code** — pipe results into Make, Zapier, Google Sheets, Slack or your database with Apify [integrations](https://docs.apify.com/platform/integrations) and webhooks.

### FAQ

**How does Mercado Libre Scraper work?**
It searches Mercado Libre exactly as a shopper would, reads each product card from the results, copies the visible data and organizes it into a structured dataset — only much faster, and at scale.

**Which countries are supported?**
17 Hispanic LATAM marketplaces: Argentina, Mexico, Colombia, Chile, Peru, Uruguay, Venezuela, Ecuador, Bolivia, Paraguay, Panama, Dominican Republic, Costa Rica, Guatemala, Honduras, Nicaragua and El Salvador. Set the `country` field to pick the marketplace. For Brazil (`mercadolivre.com.br`), use the dedicated **Mercado Livre Scraper** linked below.

**Is it legal to scrape Mercado Libre?**
The actor collects only **publicly available** product information (no login, no personal data). As with any scraping, you are responsible for how you use the data and for complying with applicable laws and terms. See [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

**Do I need a Mercado Libre account or login?**
No. No account, cookies or credentials — proxy and unblocking are handled automatically.

**How many results can I get per run?**
Each search-result page returns up to ~48 products and the actor paginates across pages. Use `maxItems` and `maxPages` to control volume; for broad coverage, run several specific keywords or different `sort` orders.

**Why are some fields `null`?**
Mercado Libre doesn't expose every field on every listing (e.g. `condition`, `coupon`, `reviewCount`). When a value isn't present on the card, the field is returned as `null` rather than a fabricated value.

**Can I get the data through an API?**
Yes — run it via the Apify API/clients to start runs and fetch the dataset programmatically. See **Integrations** above.

**Can I connect it to AI / MCP?**
Yes — expose it to ChatGPT, Claude and other assistants through the Apify MCP server so an AI agent can pull live product data on demand.

### Related Actors

Building a data pipeline? Pair Mercado Libre Scraper with:

- **[Mercado Livre Scraper](https://apify.com/gio21/mercado-livre-scraper)** — products and prices from Mercado Livre Brazil (`mercadolivre.com.br`).
- **[Liverpool Mexico Scraper](https://apify.com/gio21/liverpool-mx-scraper)** — products and prices from Liverpool, the Mexican department-store marketplace.
- **[Shopee Scraper](https://apify.com/gio21/shopee-scraper)** — products, prices, sold-volume estimates and sellers from Shopee.

***

### ⭐ Like this actor?

If it saved you time, please take 30 seconds to [leave a review on the Apify Store](https://apify.com/gio21/mercado-libre-scraper) — it's the single biggest way to support continued development.

# Actor input Schema

## `keyword` (type: `string`):

Product keyword to search on the chosen Mercado Libre marketplace, exactly as a shopper would type it. Plain text, no operators required. Example: "iphone" (also "notebook", "refrigerador", "celular samsung").

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

ISO country code of the Mercado Libre marketplace to scrape. Each country has its own catalog, currency and prices, so results differ per country. One country per run. Example: "MX" for Mexico. For Brazil use the dedicated Mercado Livre Scraper instead.

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

Hard cap on the total number of products to scrape across all pages. Stops early once reached. Integer >= 1. Example: 30 (default 50).

## `maxPages` (type: `integer`):

Maximum number of search-result pages to crawl; each page holds ~48 products. Limits depth independently of maxItems (whichever cap hits first wins). Integer >= 1. Example: 3 (default 5).

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

Order in which Mercado Libre returns the search results. Use price sorts to surface cheapest/priciest listings, or newest for fresh stock. Example: "price\_asc" (default "relevance").

## Actor input object example

```json
{
  "keyword": "iphone",
  "country": "AR",
  "maxItems": 50,
  "maxPages": 3,
  "sort": "relevance"
}
```

# Actor output Schema

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

All scraped Mercado Livre products with title, price, rating, reviews, seller, shipping, image, and URL.

# 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 = {
    "keyword": "iphone",
    "country": "AR",
    "maxItems": 50,
    "maxPages": 3,
    "sort": "relevance"
};

// Run the Actor and wait for it to finish
const run = await client.actor("gio21/mercado-libre-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 = {
    "keyword": "iphone",
    "country": "AR",
    "maxItems": 50,
    "maxPages": 3,
    "sort": "relevance",
}

# Run the Actor and wait for it to finish
run = client.actor("gio21/mercado-libre-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 '{
  "keyword": "iphone",
  "country": "AR",
  "maxItems": 50,
  "maxPages": 3,
  "sort": "relevance"
}' |
apify call gio21/mercado-libre-scraper --silent --output-dataset

```

## MCP server setup

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