MercadoLibre Scraper
Pricing
from $3.00 / 1,000 dataset items
MercadoLibre Scraper
Scrape MercadoLibre & MercadoLivre products across 18 Latin-American countries by keyword or today's deals — title, price, discount, rating, units sold, seller, shipping and images as structured JSON. Multi-country, resumable. Pay only for the results you get.
Pricing
from $3.00 / 1,000 dataset items
Rating
0.0
(0)
Developer
axly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract product data from MercadoLibre and MercadoLivre across 18 Latin-American country marketplaces — by keyword search or from the daily Ofertas (deals) feed. Every product comes back as a clean, structured JSON row with price, discount, rating, units sold, seller, shipping and images.
Built on MercadoLibre's own structured "polycard" data (not fragile HTML scraping), so the output stays consistent and complete.
Who it's for
- Resellers & price monitors — watch competitor prices, discounts and stock velocity (units sold) across countries and categories.
- E-commerce & market analysts — build pricing and catalog datasets per country for benchmarking and trend analysis.
- Deal aggregators & affiliates — the Ofertas feed is a high-volume, low-cost source of live discounts.
- Developers — a stable JSON schema you can wire straight into a database, Google Sheets, or an AI agent.
Output fields
| Field | Type | Description |
|---|---|---|
item_id | string | MercadoLibre item id (e.g. MLA1673586949) |
product_id | string | Catalog product id (e.g. MLA57692573), when catalogued |
title | string | Product title |
url / permalink | string | Product page URL |
price | number | Current price in the site's local currency |
original_price | number | Pre-discount price, when on sale |
currency | string | Currency id (ARS, BRL, MXN, …) |
discount | string | Discount label (e.g. 65% OFF) |
installments | string | Installment offer text |
rating | number | Average review score (0–5) |
sold_label | string | Raw sold label (e.g. +5mil vendidos) |
sold_count | number | Units sold, parsed to an integer floor |
seller | string | Seller / store name |
official_store | boolean | Whether it's an official brand store |
shipping | string | Shipping label (e.g. Llega gratis mañana) |
free_shipping | boolean | Free-shipping flag |
fulfillment | boolean | Fulfilled by MercadoLibre (FULL) |
variations | string | Variation summary, when present |
promotions | string | Promotion label, when present |
images | array | Product image URLs |
position | number | Position in the result list |
listing_type | string | e.g. ORGANIC_ITEM |
site | string | Country site id (MLA, MLB, MLM, …) |
source | string | search:<query> or deals |
scraped_at | string | ISO-8601 timestamp |
Use cases
- Cross-border price benchmarking — run the same keyword on MLA, MLB and MLM and compare prices, discounts and sold counts side by side.
- Discount monitoring — schedule the Ofertas feed hourly per category and alert on new lightning deals.
- Best-seller research — sort by
best_sellersand readsold_countto find what's actually moving in a category. - Catalog building — page through a category to seed a product database with images, sellers and prices.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["notebook"] | Keywords or full listado.* search URLs |
site | enum | MLA | Country marketplace (18 options) |
maxItems | integer | 200 | Total product rows to return |
sortBy | enum | relevance | relevance, price_asc, price_desc, best_sellers, newest |
condition | enum | all | all, new, used |
freeShippingOnly | boolean | false | Only free-shipping products |
priceMin / priceMax | integer | — | Local-currency price band |
scrapeDeals | boolean | false | Also scrape today's Ofertas feed |
dealsCategory | string | — | Category id to scope deals (e.g. MLA1652) |
proxyConfiguration | proxy | Residential (site country) | Search needs a residential IP |
Example input
{"searchQueries": ["notebook", "zapatillas nike"],"site": "MLA","sortBy": "best_sellers","condition": "new","maxItems": 500,"scrapeDeals": true,"dealsCategory": "MLA1652"}
Example output row
{"item_id": "MLA57692573","product_id": "MLA57692573","title": "Combo Hidrolavadora Aspiradora Electrica Trent HLT307 + VC19K","permalink": "https://www.mercadolibre.com.ar/.../p/MLA57692573","price": 158239,"original_price": 458789,"currency": "ARS","discount": "65% OFF","rating": 4.8,"sold_label": "+5mil vendidos","sold_count": 5000,"seller": "TRENT","official_store": true,"free_shipping": true,"fulfillment": true,"images": ["https://http2.mlstatic.com/D_Q_NP_2X_639539-....webp"],"site": "MLA","source": "deals","scraped_at": "2026-09-25T12:00:00Z"}
Scheduling & integrations
Run it on a schedule (hourly/daily) from the Apify Console, or trigger it via the API. Pipe results to Google Sheets, Make, Zapier, Airbyte or S3, or pull the dataset directly:
https://api.apify.com/v2/datasets/<datasetId>/items?format=json
Use it from an AI assistant (MCP)
The actor is callable from AI agents through the Apify MCP server — an
assistant can run "scrape MercadoLibre for iphone 15 in Mexico, best sellers,
top 100" and read back structured rows, no code required.
Notes on coverage & anti-bot
- Keyword search is protected by MercadoLibre's IP-reputation gate, so the actor routes it through an Apify Residential proxy in the site's country (enabled by default). It rotates the exit IP automatically if a request is challenged.
- The Ofertas (deals) feed is open and works without a proxy — a reliable, low-cost source even if search is throttled.
- MercadoLibre caps any single search at ~1000 results; narrow by category, price band or condition to go deeper.
FAQ
Which countries are supported? All 18 MercadoLibre sites: Argentina, Brazil, Mexico, Chile, Colombia, Peru, Uruguay, Venezuela, Ecuador, Bolivia, Paraguay, Costa Rica, Guatemala, Panama, Dominican Republic, Honduras, Nicaragua and El Salvador.
Do I need my own proxies? No. A residential proxy is built in for search. The deals feed needs no proxy at all.
How fresh is the data? Every row is fetched live at run time and stamped with
scraped_at.
Can I get more than 1000 results for one keyword? MercadoLibre itself caps a search at ~1000 organic results. Split by category, price range or condition to cover more of the catalog.
Is it reliable? The actor reads MercadoLibre's own structured product data and checkpoints its progress, so runs resume cleanly after interruptions.
Is scraping this legal? The actor collects only public product data. You are responsible for using the output in line with MercadoLibre's terms and applicable law.