ParseForge Scrapers

MercadoLibre Deals Scraper: 9 Countries

parseforge/mercadolibre-ofertas-scraper

E-commerce

Scrape MercadoLibre daily deals from Mexico, Argentina, Brazil, Colombia, Chile, Peru, Uruguay, Venezuela and Ecuador: price, original price, discount, seller, rating, sold quantity, shipping, installments. Optional customer reviews. Filter by category, price and deal type.

Run this scraper See the API call
Total runs
159
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the MercadoLibre Deals Scraper: 9 Countries return?

ParseForge

MercadoLibre Deals Scraper: 9 Countries

Scrape MercadoLibre daily deals from Mexico, Argentina, Brazil, Colombia, Chile, Peru, Uruguay, Venezuela and Ecuador. Each deal returns its title, current and original price, discount, seller, rating, sold quantity, shipping, installments and direct URL, with the customer reviews of the product on request. No login or API key. Export to CSV, JSON, Excel, or XML.

MercadoLibre's official API requires a registered app, OAuth tokens, and strict rate limits. This Actor reads the public offers page of each country directly and returns every deal in a clean, flat schema. It is built for pricing analysts, e-commerce sellers, and market researchers who need bulk deal data across Latin America without writing code.

Who uses it What they scrape MercadoLibre for
Pricing analysts Track discount depth and price moves by category, country and deal type.
E-commerce sellers See which sellers and brands win the daily and lightning deals in a category.
Market researchers Compare promotional intensity across nine Latin American markets.
Dropshippers Find high-volume deals (sold quantity, rating, FULL shipping) to source from.

What it does

  • 🌎 Nine countries: pick Mexico, Argentina, Brazil (mercadolivre.com.br), Colombia, Chile, Peru, Uruguay, Venezuela or Ecuador. Prices come in the local currency (MXN, ARS, BRL, COP, CLP, PEN, UYU, USD for Venezuela and Ecuador). Default is Mexico, as before.
  • 🏷️ Filters: category id, deal type (lightning or deal of the day), minimum and maximum price, free shipping, FULL fulfillment, interest-free installments.
  • 💬 Optional reviews: turn on "Include reviews" and every deal carries a reviews list with the latest reviews of the product (rating, text, date, likes, photo links). It does not change the price per deal.
  • 📦 Flat output: 35 fields per deal (36 with reviews), including discount percent, sold quantity, seller, official-store flag, shipping text and installments.
  • ✅ Clear failures: an unknown country, an impossible price range or a page that MercadoLibre blocks ends the run with a message instead of a run that looks fine and holds no data.

What it does not cover: keyword search and single product pages. MercadoLibre sends those to an account-verification wall for automated traffic, so this Actor reads the offers pages only.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with MercadoLibre deals data

💰 Monitor discounts.

A pricing analyst pulls the Mexican MLM1648 category every morning to see which sellers cut prices and how deep.

📊 Compare markets.

A market researcher runs the same category in Brazil, Argentina and Mexico to compare how often each market runs lightning deals.

🛒 Find volume deals.

A dropshipper filters for free shipping and reads soldQuantityMin and rating to find products that already sell.

🏪 Audit seller presence.

An e-commerce manager lists every official store that appears in a category deal feed and at what price points.

Input

Field What it does
country MX (default), AR, BR, CO, CL, PE, UY, VE or EC.
maxItems 1 to 1,000,000 deals (free users: 10).
category Optional category id of that country, for example MLM1648. Empty means all categories.
promotionType any (default), lightning or deal_of_the_day.
minPrice, maxPrice Price range in the local currency.
freeShippingOnly, fullShippingOnly, noInterestInstallmentsOnly Shipping and payment filters.
includeReviews, reviewsPerProduct Attach 1 to 50 reviews to every deal (default 5).
proxyConfiguration Optional. Runs work without one.

Output sample

{
  "title": "Colchón Individual Memory Foam 190 X 18 X 100cm Selectshop Color Blanco",
  "url": "https://www.mercadolibre.com.mx/colchon-individual-memory-foam-190-x-18-x-100cm-espuma-ergonomico-firme-ortopedico-selectshop-color-blanco/p/MLM63459375",
  "id": "MLM5946141710",
  "productId": "MLM63459375",
  "brand": "SELECTSHOP",
  "currentPrice": 1448,
  "previousPrice": 1999,
  "currency": "MXN",
  "discountText": "27% OFF",
  "discountPercent": 27,
  "rating": 4.6,
  "soldQuantityText": "+5mil vendidos",
  "soldQuantityMin": 5000,
  "seller": "Selectshop MX",
  "officialStore": true,
  "highlight": "OFERTA DEL DÍA",
  "promotionType": "DEAL_OF_THE_DAY",
  "freeShipping": true,
  "fullFulfillment": true,
  "shippingText": "Llega gratis mañana",
  "installmentsText": "6 meses sin intereses de 241.33",
  "installmentsCount": 6,
  "installmentsAmount": 241.33,
  "installmentsNoInterest": true,
  "country": "MX",
  "siteId": "MLM",
  "position": 1,
  "pageNumber": 1,
  "scrapedAt": "2026-09-28T20:30:00.000Z",
  "error": null
}

The full row has 35 fields: imageUrl, title, url, id, productId, brand, currentPrice, previousPrice, currency, discountText, rating, reviewsCount, seller, highlight, position, country, siteId, discountPercent, soldQuantityText, soldQuantityMin, officialStore, promotionType, freeShipping, fullFulfillment, shippingText, installmentsText, installmentsCount, installmentsAmount, installmentsNoInterest, couponText, variationsText, internationalShipping, pageNumber, scrapedAt, error. Fields the page does not show for a deal are null (reviewsCount, for example, is usually null on the offers page). With "Include reviews" a 36th field, reviews, holds the list.

Why choose this scraper

What you get
No API registration Reads the public offers pages directly, no OAuth or app setup.
Nine markets Same schema and filters in every country.
Reviews on request Rating, text, date, likes and photos, attached to each deal.
Same input as before Runs that only set maxItems or category still work and still return Mexico.

Configure the run

A first run with the defaults (Mexico, 10 deals):

{
 "maxItems": 10
}

Brazilian lightning deals under R$ 200 with free shipping and 5 reviews each:

{
 "country": "BR",
 "promotionType": "lightning",
 "maxPrice": 200,
 "freeShippingOnly": true,
 "includeReviews": true,
 "reviewsPerProduct": 5,
 "maxItems": 100
}

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the MercadoLibre Deals Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to MercadoLibre deals through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/mercadolibre-ofertas-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your category id belongs to the country you chose (MLM for Mexico, MLB for Brazil, MLA for Argentina). Try leaving the category field empty to confirm the Actor can reach the site. Also verify that your maxItems is set to a number greater than zero.

Why does the run stop before reaching my maxItems?

MercadoLibre may paginate a limited number of offers per category. If the category has fewer listings than your maxItems, the Actor will return everything available and finish cleanly.

Why are some prices or discounts missing in the output?

Some sellers do not display a discount or original price on their listing. The Actor returns whatever is publicly visible on the page; missing fields will appear as null or empty.

Why am I getting blocked or seeing errors?

Runs work without a proxy. If MercadoLibre asks for account verification the run ends with that message; set a residential proxy in the proxy option and start it again.

FAQ

Question Answer
Which countries work? Mexico, Argentina, Brazil, Colombia, Chile, Peru, Uruguay, Venezuela and Ecuador. Pick one per run with the country field.
What is a category slug and where do I find it? A category slug is the code in the MercadoLibre URL after the domain, like MLM1648 for electronics. Open the offers page of that country, click a category, and copy the category value from the address bar.
How many offers can I scrape in one run? Free Apify users can scrape up to 10 offers. Paid users can set maxItems up to 1,000,000 per run.
Do I need proxies to run this Actor? No. Runs work without one; the proxy option is there in case MercadoLibre starts asking for verification.
Can I scrape offers without specifying a category? Yes, leave the category field empty to scrape offers from all categories of the chosen country.
What data fields does each offer include? 35 fields: title, current and original price, currency, discount, rating, sold quantity, seller, shipping, installments, country and product URL, plus optional reviews.
Can I schedule this scraper to run daily? Yes, Apify schedules let you run this Actor hourly, daily, or weekly and receive the results by email or webhook.
Is this Actor affiliated with MercadoLibre? No, this is an independent tool that reads publicly available offer data from the MercadoLibre websites.
What output formats are supported? You can export your dataset to CSV, JSON, Excel, XML, or push it directly to a cloud storage integration.
How do I handle large scrapes without timeouts? Increase the Actor's run timeout in the Apify console settings. For runs over 100,000 items, consider using a higher memory tier.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by MercadoLibre, S.A. de C.V. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

What input does the MercadoLibre Deals Scraper: 9 Countries accept?

FieldTypeWhat it doesDefault
country string (9 options) MercadoLibre site to read the deals from. Default Mexico. MX
maxItems integer Free users: 10. Paid users: optional, max 1,000,000. 10
category string Optional category id of the chosen country (for example MLM1648 for Mexico). Leave empty for all categories. not set
promotionType string (3 options) Restrict to one kind of promotion. "Any" keeps every deal. any
minPrice number Only offers priced at or above this amount, in the local currency of the country. not set
maxPrice number Only offers priced at or below this amount, in the local currency of the country. not set
freeShippingOnly boolean Keep only offers with free shipping. false
fullShippingOnly boolean Keep only offers shipped from MercadoLibre warehouses (FULL). false
noInterestInstallmentsOnly boolean Keep only offers that can be paid in interest-free installments. false
includeReviews boolean Add a "reviews" list to every offer with its most recent customer reviews (rating, text, date, likes, photos). Does not change the price per offer. false
reviewsPerProduct integer How many reviews to attach when "Include reviews" is on (1-50). 5
proxyConfiguration object Optional. Runs work without a proxy; set one only if MercadoLibre starts asking for verification. {"useApifyProxy":false}

How much does the MercadoLibre Deals Scraper: 9 Countries cost?

from $4.00 per 1,000 results

Charged forWhat it isPrice each
MercadoLibre deal One MercadoLibre deal row (any of 9 countries) with up to 35 fields: price, original price, discount, sold quantity, seller, shipping, installments and optional latest reviews. $0.004 to $0.005

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the MercadoLibre Deals Scraper: 9 Countries API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST · run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~mercadolibre-ofertas-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "MX",
    "maxItems": 10,
    "promotionType": "any",
    "freeShippingOnly": false,
    "fullShippingOnly": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "country": "MX",
  "maxItems": 10,
  "promotionType": "any",
  "freeShippingOnly": false,
  "fullShippingOnly": false
}

What do users say about the MercadoLibre Deals Scraper: 9 Countries?

No reviews yet. Be the first.

How do I report an issue with the MercadoLibre Deals Scraper: 9 Countries?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run MercadoLibre Deals Scraper: 9 Countries on Apify All scrapers