Mercado Libre Deals & Best Sellers Scraper
Mercado Libre and Mercado Livre deals and best sellers as rows: price, discount, instalments, free shipping, Full and seller, in nine countries.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
country,sources,category(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00075 per listing = $0.75 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Listing returned | One Mercado Libre deal or best-seller listing returned in the dataset. | $0.00075 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-14, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
country | Which Mercado Libre site to read. The other Latin American sites have no deals page. | string |
sources | Deals are the site's Ofertas page, 48 a page. Best sellers are the lists on its Más vendidos page, up to 20 per category, picked by Mercado Libre. Leave it empty for deals only. | array |
category | A top-level category, such as MLA1051 (Celulares y Teléfonos in Argentina) or MLB1051 in Brazil. Deals are then only that category's. For best sellers it keeps only that category's list, if the page shows one. | string |
promotionType | Leave it empty for every kind of deal. | string |
minPrice | In the site's own currency, for example 10000 for 10,000 Argentine pesos. Deals only. | integer |
maxPrice | In the site's own currency. Deals only. | integer |
installments | The instalment options the deals page offers. Leave it empty for any. Deals only. | string |
freeShipping | Only deals that show free shipping. Deals only. | boolean |
fullOnly | Only deals shipped by Mercado Libre's Full service. Deals only. | boolean |
maxPages | Deals pages to read, 48 deals each. The deals page goes no further than page 22, about 1,048 deals for one set of filters. | integer |
maxItems | The most listings returned in one run, deals and best sellers together. Each listing returned is one charge. | integer |
What you get
A structured dataset — each result includes fields like:
thumbnailtitlepricecurrencyoriginalPricediscountPercentsellerofficialStorefreeShippingfullFulfillmentpromotionbestSellerRankcategoryNamesourceitemIdurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Mercado Libre Scraper: the deals page and the best-seller lists, as rows
Pick one of nine Mercado Libre sites and get one row per listing off two pages the site publishes to everyone: Ofertas, the deals board, and Más vendidos, the best-seller lists. Each deal row carries the price now, the price before, the discount, instalments, shipping, the seller or brand on the card, its rating and the sold count, with a link and a photo.
There is no keyword box. Mercado Libre's search, item and catalog pages want a signed-in account, so "iphone 15" is not something this can answer. It reads the two open pages, nothing else.
| Input | A country, then deals, best sellers or both |
| Output | One row per listing |
| Ceiling | 2,000 listings per run |
| Account needed | None |
| Price | $0.75 per 1,000 listings, flat on every plan |
🛒 What Mercado Libre Scraper does
Deals. 48 a page, in the order the site shows them, narrowed by the filters the deals page itself offers: a top-level category, lightning deals or the deal of the day, a price range, instalment terms, free shipping, and Full. One set of filters reaches about 1,048 deals and then the page stops, however many it claims to have. Argentina's counted 11,246 on 13 September 2026. The status message tells you when you have hit that wall, and a category or a price band opens the rest.
Best sellers. The lists on the Más vendidos page: up to 20 products per category, for the six to ten categories Mercado Libre chooses to put there. Argentina's had 103 products in six lists, Brazil's 154 in ten. That page takes no filters. A category ID keeps only its list, when the page carries one.
Nine sites: Argentina, Brazil, Mexico, Chile, Colombia, Peru, Uruguay, Ecuador and Venezuela. Venezuela publishes no best-seller page, so it is deals only there.
📥 What you give it
{
"country": "AR",
"sources": ["deals"],
"category": "MLA1051",
"maxPrice": 500000,
"freeShipping": true,
"maxItems": 200
}
| Field | Default | What it is |
|---|---|---|
country | none, box starts at AR | Which site to read. AR, BR, MX, CL, CO, PE, UY, EC or VE. |
sources | none, box starts at deals | deals, bestSellers, or both. |
category | none | A top-level category ID such as MLA1051 for phones in Argentina, MLB1051 in Brazil. Open the deals page, click a category, and the address bar shows it. It has to belong to the country you picked. |
promotionType | none | lightning or deal_of_the_day. Empty means every kind. |
minPrice, maxPrice | none | In the site's own currency, so 10000 is 10,000 Argentine pesos. Deals only. |
installments | none | yes, no_interest, good_financing or campaign_co_funded. Deals only. |
freeShipping | off | Only deals showing free shipping. Deals only. |
fullOnly | off | Only deals shipped by Mercado Libre's Full service. Deals only. |
maxPages | 22 | Deals pages to read, 48 each. 22 is the wall described above. |
maxItems | 1000, box starts at 48 | Listings in one run, up to 2,000, deals and best sellers together. |
If the deals page does not recognise a filter value it quietly shows everything instead. The run checks that each filter you set actually got applied. When one did not, you get no rows, nothing is charged, and the status message names the filter. Nobody should pay for the whole board because a category ID had a typo in it.
📤 What you get back
A real deal row from a recent run, with the photo URL cut short:
{
"source": "deals",
"country": "AR",
"siteId": "MLA",
"itemId": "MLA2692124128",
"productId": "MLA57692573",
"userProductId": "MLAU3347695717",
"title": "Combo Hidrolavadora Aspiradora Electrica Alta presion Trent HLT307 + VC19K Amarillo 50hz",
"price": 159365,
"currency": "ARS",
"originalPrice": 457354.91,
"discountPercent": 65,
"installmentsCount": 6,
"installmentAmount": 35854,
"installmentsInterestFree": false,
"freeShipping": true,
"fullFulfillment": true,
"shippingText": "Llega gratis mañana",
"seller": "TRENT",
"officialStore": true,
"rating": 4.9,
"soldText": "+5mil vendidos",
"soldAtLeast": 5000,
"promotion": "deal_of_the_day",
"highlight": "OFERTA DEL DÍA",
"dealEndsAt": null,
"bestSellerRank": null,
"categoryId": null,
"categoryName": null,
"leafCategoryId": null,
"position": 1,
"page": 1,
"url": "https://www.mercadolibre.com.ar/combo-hidrolavadora.../p/MLA57692573",
"thumbnail": "https://http2.mlstatic.com/D_Q_NP_2X_639539-MLA109280515034...",
"scrapedAt": "2026-09-20T19:01:40.776Z"
}
| Field | What it is |
|---|---|
soldText, soldAtLeast | The site's rounded label, and that label as a number. +5mil vendidos becomes 5000. It is a floor, not a count. |
seller | The name printed on the card, which is often a brand or its official store rather than the trading account. |
originalPrice, discountPercent | The crossed-out price and the badge, both as the card shows them. |
dealEndsAt | Set on lightning deals, null otherwise. |
bestSellerRank, leafCategoryId | Best-seller rows only. |
categoryId, categoryName | On deals, the category you filtered on. On best sellers, the list the row came from. |
position, page | Where the card sat on the deals page, or its place in the list. |
scrapedAt | When the run started reading. |
Best-seller rows carry less than deal rows. That page prints no seller, rating, sold count, shipping text or instalments, so those fields come back null.
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A listing | _sample is absent | yes |
| The sample row | _sample: true | no |
Run it with no country and you get the one sample row, a real Argentine deal, so you can see the shape before committing to anything.
There are no diagnostic rows. The run's status message carries the reasons: why it stopped, whether you reached the 1,048-deal wall, any page that would not load, any filter the site did not apply, and how many rows were skipped or seen twice. RUN_REPORT in the key-value store holds the same thing broken down per source, per page and per filter.
▶️ How to run it
1. Open Mercado Libre Scraper and click Try for free. 2. Pick a Country. 3. Under What to read, choose deals, best sellers or both. 4. Add a Category ID or a price range if you want a slice rather than the whole board, set Maximum listings, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$0.75 per 1,000 listings. Flat on every Apify plan, no volume tiers.
You pay per listing row delivered. A deal that did not match your filters, a listing the site showed twice, a page that would not load, a run where the site ignored a filter, and the sample row are all free.
💡 What people use it for
- Watching a category's discounts day by day, on a schedule, and keeping the ones that repeat.
- Tracking a brand's own deals by filtering on its category and matching
seller. - Pulling the best-seller lists once a week to see what moves in and out of the top 20.
- Comparing the same catalog product across countries, since
productIdis per site but the title
and photo line up.
- Finding lightning deals as they appear, with Deal type set and the run scheduled hourly.
🚧 What it does not do
- No keyword search and no sorting. The deals page offers neither, so rows come in Mercado
Libre's order.
- No seller ID, reputation, item condition or location. These cards do not print them.
- Best sellers carry fewer fields, because that page shows fewer.
- About 1,048 deals per filter set. Splitting by category or price band is the way past it.
- Only the lists the hub page shows. A single category's own best-seller page is not readable.
- Prices are a snapshot. Lightning deals often end within hours, and
dealEndsAtsays when. - Card order differs between visitors, so two runs of the same filters can disagree on position.
- One country per run.
- The deals board can reshuffle mid-run, so a deal moving between pages may be seen twice, which
is dropped, or missed.
🧭 Which marketplace scraper do you need?
| If you want | Use |
|---|---|
| Mercado Libre deals and best sellers | This one |
| Magazine Luiza products and prices in Brazil | Magazine Luiza Scraper |
| Brazilian classified ads | OLX Brazil Scraper |
| Amazon best sellers and movers | Amazon Bestsellers Scraper |
| AliExpress product listings | AliExpress Products Scraper |
❓ Questions people ask
How do I get only phones on sale in Brazil? Country BR, category MLB1051.
Why fewer deals than the page claims? The board stops at about 1,048 for one filter set. Split the run by category or by price band.
Can I get the lightning deals every morning? Yes. Schedule it with Deal type on lightning deals. Each run returns what is on the board at that moment.
Can I search for a product? No. Search results need an account, so they are not covered here.
Which countries have best sellers? All of them except Venezuela, which publishes deals only.
Is scraping Mercado Libre legal? These are public pages. Mercado Libre's terms of use restrict automated collection and reuse, so read them against what you plan to do. Apify's write-up on scraping and the law is a starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID, the country and the filters you used. The status message usually names the problem on its own.