MercadoLibre Scraper - Prices & Discounts, incl. Mercado Livre
Pricing
from $0.001 / actor run started
MercadoLibre Scraper - Prices & Discounts, incl. Mercado Livre
Export products from MercadoLibre and Mercado Livre category and deals pages in 14 Latin American countries: title, current and previous price, discount label, item ID, image, link, shipping and installment text. For price monitoring, promotion tracking and assortment research.
Pricing
from $0.001 / actor run started
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
MercadoLibre Scraper
MercadoLibre Scraper extracts product cards from category, browse and deals pages across Latin America, including Brazil's Mercado Livre, for price monitoring, promotion tracking and assortment research. Paste the pages you want to monitor and receive structured product titles, prices, discounts, identifiers, images and shipping information. Each product remains associated with its source page and country, so a run covering several markets can be filtered afterwards. No MercadoLibre account, developer application or access token is needed.
MercadoLibre Scraper input
Use category or deals URLs copied from the MercadoLibre website. The urls
field is a list. The default example uses the Argentine phones category and
the Brazilian electronics category. You can also collect a deals page such as
https://www.mercadolibre.com.ar/ofertas. The actor reads the cards rendered on
each supplied page. It does not open the product detail pages or automatically
walk through deeper category pages.
The optional products_per_url setting limits the number of cards returned per
page. Its default is 200, with values from 1 to 1000. A page normally contains
fewer cards than that setting, so increasing the limit cannot create products
that the page does not show. max_urls defaults to 50 and supports up to 300
unique URLs. Repeated URLs, including repetitions differing only by a fragment,
are processed once. Result rows from different source pages remain separate.
The default input, which also produced the example row below, looks like this:
{"urls": ["https://www.mercadolibre.com.ar/c/celulares-y-telefonos","https://www.mercadolivre.com.br/c/eletronicos-audio-e-video"],"products_per_url": 200,"max_urls": 50,"concurrency": 5,"retries": 3}
concurrency defaults to 5 and controls how many pages are read at the same
time, up to 15. retries defaults to 3 and supports up to 8 attempts per URL.
The optional country is a two-letter country code for the request origin.
The result's country field describes the MercadoLibre site, rather than this
request setting. A page that cannot be read is reported individually, while
other supplied pages can still return products.
MercadoLibre Scraper output: fields and a real example
Each row includes title, item_id, price, original_price, discount,
currency_symbol, url, image_url, badge, shipping, installments,
site, country, source_url and position. Text fields can be null when
the card does not show that information. The previous price is present only
when it is higher than the current price. The discount field preserves the
label shown on the card; it is not a newly calculated percentage.
The additional fields source, product_id, currency and fetched_at make
results easier to combine with other data. product_id mirrors the MercadoLibre
identifier in item_id. currency gives the site's ISO currency code, helping
distinguish Argentine pesos from Mexican pesos or Colombian pesos, even when
all three display the same currency symbol. fetched_at records the retrieval
time in UTC. Prices include the cents displayed on the card.
This row was retrieved from the Argentine phones category on 3 October 2026:
{"item_id": "MLA77558235","title": "Soporte De Celular Para Moto Metal Antivibracion Bcsp05negro Negro","price": 84000,"original_price": 140000,"discount": "40% OFF","currency_symbol": "$","url": "https://www.mercadolibre.com.ar/soporte-de-celular-para-moto-metal-antivibracion-bcsp05negro-negro/p/MLA77558235","image_url": "https://http2.mlstatic.com/D_Q_NP_2X_740180-MLA116328199525_082026-AB.webp","badge": null,"shipping": "Llega gratis mañana domingo","installments": "Mismo precio 6 cuotas de $14.000","site": "MLA","country": "AR","source_url": "https://www.mercadolibre.com.ar/c/celulares-y-telefonos","position": 1,"source": "mercadolibre-scraper","product_id": "MLA77558235","currency": "ARS","fetched_at": "2026-10-03T17:17:46.537Z"}
Products appear in the supplied URL order and then in page order. position
starts at one for the complete run. The default dataset contains the product
rows. The key-value store also contains summary, with URL counts, product
counts, the country breakdown, price coverage and an average price, and errors
when a supplied URL is invalid or unreadable. Average prices mix currencies
when the run covers several countries; use them only when the country
breakdown contains one country, or convert the prices yourself afterwards.
Pricing and free-plan limit
The existing price is $0.001 for starting a run and $0.0025 for each delivered product. For example, the live 3 October sample with 77 products corresponds to one start event and 77 product events. A run returning zero products has no product charge, while its start charge still applies. An invalid URL does not create a paid product row. Non-paying Apify users receive at most 10 results per run; paying users retain the requested limits. The run output explains when the free-plan cap was reached.
Countries covered and use cases
Supported MercadoLibre sites cover Argentina, Brazil, Mexico, Colombia, Chile, Uruguay, Peru, Venezuela, Ecuador, Bolivia, Paraguay, Costa Rica, Panama and the Dominican Republic. Product identifiers are site-specific. Compare products within the same site using their identifiers; an identifier from another country is not automatically the same catalogue entry.
Schedule the same categories to track price changes and visible promotions. Keep the retrieval timestamp with each saved row so you can compare observations over time. The previous price and discount label help distinguish a displayed promotion from a change in the current price. Images and product links also provide a starting point for a catalogue assembled from public listing pages. The actor returns what those pages show and does not claim sales volumes, private seller statistics, stock history, seller details or product reviews.
MercadoLibre Scraper compared with other options
The official MercadoLibre API. MercadoLibre offers a developer API for sellers and integrators. It requires registering an application and handling access tokens, and it is built around managing your own listings, orders and questions. MercadoLibre Scraper needs none of that: it returns what a shopper sees on a public category or deals page, including the struck-through previous price, the discount label, the shipping line and the installment offer as displayed.
Copying data by hand or with a browser extension. That works for one page once. A scheduled run reads up to 300 pages across several countries in one go and delivers the same fields every time, as JSON, CSV or Excel from the dataset.
Writing your own scraper. Open-source scripts are a good start, but category page markup changes and the 14 country sites differ in currency, identifiers and layout. This actor normalises them into one row format with an ISO currency code and the site code, so Argentine, Mexican and Colombian pesos never get mixed up.
Other Store actors. Several actors open individual product pages for reviews, questions or seller details. MercadoLibre Scraper deliberately reads listing pages only: one page yields dozens of products, which keeps runs fast and the price per product low. Combine it with a detail scraper when you need reviews for a short list of items.
FAQ
Can I use keyword search URLs?
Yes. Keyword search URLs such as listado.mercadolibre.com.ar/iphone-15
can return product cards, subject to the same per-URL result limit.
If MercadoLibre returns a verification page instead, the actor reports that
URL as unreadable and continues with the other URLs. A successful run can
therefore contain zero products and an explanatory error entry.
Why does a category return fewer products than my limit?
The limit is an upper bound. The actor extracts the cards currently rendered
on that page. Some category pages are navigation pages with no product grid;
they are listed separately in urlsWithoutProductGrid. Supplying more valid
category pages expands coverage without assuming that one page is a complete
catalogue.
Are the prices converted into one currency?
No. Prices retain the site's currency and the displayed symbol. The currency
field makes that currency explicit. If you compare prices between countries,
apply your own exchange rate and record the date of that conversion.
Why can two runs disagree on prices or product order?
MercadoLibre pages change as promotions, availability and featured products change. Every run is a fresh observation of the supplied pages. Keep product identifiers, source URLs and timestamps when building a history, and expect the visible assortment to vary between observations.
Is this the same as the MercadoLibre API?
No. The official API is meant for sellers and partners who manage their own listings and need an application with access tokens. This actor reads the public category and deals pages instead, so you get the prices, discounts and promotion labels shoppers see, without registering anything. Results are available through the Apify API, so you can still call it from your own code.
Does it work for Mercado Livre in Brazil?
Yes. Use category or deals URLs from mercadolivre.com.br. Brazilian rows carry
site MLB, country BR and currency BRL, with the same fields as every other
country.
Which formats can I download?
The dataset can be exported as JSON, CSV, Excel, XML or HTML, or read through the Apify API. Scheduled runs and webhooks let you feed results into a spreadsheet, database or price-monitoring workflow.