Skip to content

Mercado Libre Scraper

Try for free

Extract Mercado Libre and Mercado Livre data from all 18 Latin American marketplaces: products, prices, discounts, sellers, official stores, daily deals and buyer reviews with ratings and photos. Export data, run via API, schedule runs, or connect it to AI workflows.

Mercado Libre Scraper extracts public Mercado Libre and Mercado Livre data from all 18 Latin American marketplaces without the official API: product cards from search and category pages, full product details, buyer reviews with ratings and photos, official store catalogs and today's deals. No login, no API key and no Mercado Libre developer account are needed. Export to JSON, CSV or Excel, run it via API, schedule runs, or plug it into n8n, Make, Zapier, Google Sheets or an AI agent through MCP.

How Mercado Libre Scraper works: search, product details, reviews, deals and official store modes into one dataset

What is Mercado Libre Scraper?

Mercado Libre (mercadolibre.com.mx, .com.ar, .cl, .com.co, .com.pe … and Mercado Livre mercadolivre.com.br) is the largest e-commerce marketplace in Latin America. Its official API requires an app, OAuth tokens and seller permissions, and since 2024 the public search and item endpoints return 403 forbidden for anonymous calls.

Five modes in one Actor:

ModeWhat you getInput
🔍 Products from searchProduct cards: title, price, original price, discount %, installments, rating, review count, units sold, seller, official-store flag, condition, image, position, pagekeywords or search / category URLs
📦 Product detailsEverything on the product page: price, stock, specifications (60+ attributes), description, gallery, variations, seller reputation, shipping, warranty, category pathproduct URLs or IDs
⭐ ReviewsEvery buyer review: stars, text, variant bought, date, helpful votes, photos, plus the product's rating breakdown and AI-summary statusproduct URLs or IDs
🔥 Deals (Ofertas)Today's deals page of any country: discounted products with old/new price, discount %, seller, rating, sold quantitycountry or /ofertas URL
🏪 Official storeStore profile (brand, official store ID, seller ID, creation date, status) and its featured products/tienda/... URL

Reviews, deals and official-store pages are fetched with plain HTTP requests and use no proxy traffic. Search and product pages sit behind Mercado Libre's bot gate, so the Actor opens them in a real browser through residential proxies of the matching country. That platform usage is billed on top of the per-result price at your plan rates. You never see a CAPTCHA, a "log in to continue" wall or a proof-of-work challenge in your results, and blocked pages are retried automatically.

What data can Mercado Libre Scraper extract?

🔍 Product cards (search, category, deals, store)

FieldExample
titleApple iPhone 15 128 GB Negro
price / originalPrice / discountPercent12919 / 16999 / 24
currencyMXN
installmentsText12 meses sin intereses de $1,076
rating / reviewCount / soldQuantity4.9 / 1846 / 5000 (units sold as Mercado Libre rounds them: +5 mil → 5000; empty for items with no sales yet)
seller / isOfficialStoreKritech / true
conditionReacondicionado
freeShipping / fullShipping / isSponsoredtrue / false / false
labels["OFERTA DEL DÍA"]
variationsTextDisponible en 4 colores
productId / itemIdMLM27172677 / MLM2120627201
url / imageUrlproduct link, main picture
position / page / searchTerm / totalResults2 / 1 / iphone 15 / 759
siteId / countryMLM / MX

📦 Product details

Everything above plus description, specs (flat object with all technical specifications: brand, model, memory, screen, battery, dimensions…), specGroups, images (full gallery), variations, availableQuantity, stockText, availability, shippingText, logisticType, listingType, categoryId, categoryPath, breadcrumb, warranty, returnAvailable, dealIds and a seller object with id, name, url, officialStoreId, reputationLevel (e.g. 5_green), powerSellerStatus (platinum), statusTitle (MercadoLíder Platinum) and sales volume.

⭐ Reviews

FieldExample
rating5
textExcelente compra. El colchón viene tal cual en las imágenes…
variantColor: negro · Talla: XXL
createdAt / dateText2026-06-13T22:30:12Z / Hace 2 meses
likes96
images["https://http2.mlstatic.com/D_NQ_NP_715568-MLA98663772743_112025-O.webp"]
productId / productUrl / countryMLM4700406170 / link / MX

One extra product_rating row per product holds ratingAverage, ratingCount, reviewsWithText, ratingBreakdown (count and % per star), picturesCount and aiSummaryStatus (whether Mercado Libre has generated an AI summary of the reviews).

🏪 Official stores

name, brandName, officialStoreId, sellerId, storeType, status, hasDebts, hasModerations, createdAt, tags, homeUrl, searchUrl and the featured products of the store home page.

Supported Mercado Libre marketplaces

Every country runs on its own domain and currency. Prices are returned exactly as the marketplace shows them and are never converted, so a Brazilian row is in BRL and a Mexican row in MXN.

CountrySite IDDomainCurrency
🇲🇽 MexicoMLMmercadolibre.com.mxMXN
🇧🇷 BrazilMLBmercadolivre.com.brBRL
🇦🇷 ArgentinaMLAmercadolibre.com.arARS
🇨🇱 ChileMLCmercadolibre.clCLP
🇨🇴 ColombiaMCOmercadolibre.com.coCOP
🇵🇪 PeruMPEmercadolibre.com.pePEN
🇺🇾 UruguayMLUmercadolibre.com.uyUYU
🇪🇨 EcuadorMECmercadolibre.com.ecUSD
🇻🇪 VenezuelaMLVmercadolibre.com.veVES
🇧🇴 BoliviaMBOmercadolibre.com.boBOB
🇵🇾 ParaguayMPYmercadolibre.com.pyPYG
🇩🇴 Dominican RepublicMRDmercadolibre.com.doDOP
🇨🇷 Costa RicaMCRmercadolibre.co.crCRC
🇵🇦 PanamaMPAmercadolibre.com.paUSD
🇬🇹 GuatemalaMGTmercadolibre.com.gtGTQ
🇭🇳 HondurasMHNmercadolibre.com.hnHNL
🇸🇻 El SalvadorMSVmercadolibre.com.svUSD
🇳🇮 NicaraguaMNImercadolibre.com.niNIO

Mix countries freely in one run: pick a country for keyword searches and paste URLs from any other marketplace. Each row carries siteId and country so you can split the dataset afterwards.

How much does it cost to scrape Mercado Libre?

Pricing on scrape.ly: the event prices below are what this Actor charges. Platform usage (compute, proxy, browser) is billed on top at your plan rates.

The Actor uses scrape.ly's pay-per-event pricing: you pay per result. Platform usage (compute, proxy, browser) is billed on top at your plan rates.

EventPricePer 1,000
Product (search card, deal or store product)$0.0025$2.50
Product detail (full product page)$0.025$25
Review$0.001$1

Gated pages use a browser and residential proxies; that platform usage is billed on top. Bronze, Silver and Gold Store tiers get a discount on top.

Bulk export: what 50,000 products actually cost

This Actor is built for bulk jobs — put hundreds of inputs into one run, or call it from the API on a schedule. There is no fee per run and no fee per page: you pay for the rows you keep, and error rows are free. That is what decides the bill once you pull a whole market rather than a single store.

How to scrape Mercado Libre

  1. Open Mercado Libre Scraper on scrape.ly and click Try for free (a free scrape.ly account is enough).
  2. Choose What to scrape – for example Products from search.
  3. Pick the Country (Mexico, Brazil, Argentina, Chile, Colombia, Peru, Uruguay, Ecuador, Venezuela, Bolivia, Paraguay, Dominican Republic, Costa Rica, Panama, Guatemala, Honduras, El Salvador, Nicaragua).
  4. Type your Search keywords or paste Mercado Libre URLs (search results, categories, products, official stores or the deals page). You can mix countries: every URL keeps its own marketplace.
  5. Set Max products and, for reviews, Max reviews per product, then click Start.
  6. When the run finishes, open the Output tab and download the dataset as JSON, CSV, Excel, XML or HTML, or read it through the API.

⬇️ Input

Mercado Libre Scraper input form: mode, country, search keywords, URLs, max products, reviews filters

Search Mexico for two keywords, new items only, sorted by price, 200 products per keyword:

{
  "mode": "search",
  "country": "MX",
  "searchTerms": ["iphone 15", "galaxy s24"],
  "condition": "new",
  "sort": "price_asc",
  "maxItems": 200
}

Full product pages for a list of products (URLs from any country, or bare IDs like MLB3568040961):

{
  "mode": "product",
  "startUrls": [
    "https://www.mercadolibre.com.mx/apple-iphone-15-128-gb-negro/p/MLM27172677",
    "https://produto.mercadolivre.com.br/MLB-3568040961-_JM"
  ]
}

All reviews of a product, newest first, only 1-star reviews:

{
  "mode": "reviews",
  "startUrls": ["MLM4700406170"],
  "maxReviewsPerProduct": 5000,
  "reviewsRating": "1",
  "reviewsSort": "date_desc"
}

Today's deals in Brazil and an official store in Argentina in one run (auto mode picks the right parser by URL):

{
  "startUrls": [
    "https://www.mercadolivre.com.br/ofertas",
    "https://www.mercadolibre.com.ar/tienda/samsung"
  ],
  "maxItems": 100
}

Search filters

sort (relevance, price_asc, price_desc), condition (any, new, used), minPrice, maxPrice, freeShippingOnly, officialStoresOnly, includeSponsored. Filters are translated into Mercado Libre's own URL segments (_OrderId_PRICE, _PriceRange_1000-5000, _CostoEnvio_Gratis, _Tienda_all) so results match what a shopper sees. Turn on Fetch full product details to open every search result and merge the product page into the row (billed as product details).

⬆️ Output

Mercado Libre Scraper output table: product, price, discount, rating, seller, official store, condition, product ID

One product card from search:

{
  "type": "product",
  "title": "Apple iPhone 15 128 GB Negro",
  "url": "https://www.mercadolibre.com.mx/apple-iphone-15-128-gb-negro/p/MLM27172677",
  "productId": "MLM27172677",
  "itemId": "MLM2120627201",
  "siteId": "MLM",
  "country": "MX",
  "currency": "MXN",
  "price": 12919,
  "originalPrice": 16999,
  "discountPercent": 24,
  "installmentsText": "12 meses sin intereses de $1,076",
  "condition": null,
  "rating": 4.8,
  "reviewCount": null,
  "seller": "Kritech",
  "isOfficialStore": true,
  "freeShipping": false,
  "isSponsored": false,
  "labels": [],
  "imageUrl": "https://http2.mlstatic.com/D_Q_NP_2X_669616-MLA95935383067_102025-E.webp",
  "position": 2,
  "page": 1,
  "searchTerm": "iphone 15",
  "totalResults": 759,
  "scrapedAt": "2026-09-03T04:30:25.570Z"
}

Reviews come back one row per buyer, with the exact product variant that was bought:

Mercado Libre reviews output: stars, review text, variant bought, date, helpful votes, product ID

One review:

{
  "type": "review",
  "reviewId": 2954413987,
  "productId": "MLM4700406170",
  "siteId": "MLM",
  "country": "MX",
  "rating": 5,
  "text": "Material: fresco pero no es algodón, no trae encaje…",
  "variant": "Color: negro blanco piel marrón · Talla: XXL",
  "dateText": "Hace 2 meses",
  "createdAt": "2026-06-13T22:30:12Z",
  "likes": 96,
  "images": [],
  "scrapedAt": "2026-09-03T04:27:28.979Z"
}

Deals mode returns the same product shape, with the pre-discount price and the discount percentage filled in:

Mercado Libre deals output: product, price, previous price, discount percent, rating, units sold, seller, country

Rows carry a type (product, product_detail, deal, review, product_rating, store, error) so you can filter one dataset in a spreadsheet or in code. Pages that could not be scraped are reported as error rows with the URL and reason instead of silently disappearing. A search Mercado Libre itself has no results for comes back as one free notice row (kind: "no-results"), so you can tell an empty search from a page that failed. A run that reaches its timeout before every page is read ends with one free notice row (kind: "timeout") saying how many rows were written; the pages it did not reach are not charged.

🔁 Get only new products — schedule it

A one-off export is useful once; a feed is useful every day. Fill Only new rows — memory name (for example my-products-watch) and the Actor remembers every product row it has delivered under that name. Every later run with the same name writes — and charges — only rows you have not received before; rows delivered earlier are skipped for free.

  1. Run once with the memory name to load the history.
  2. Open the run → Actions → Schedule (or Schedules) and set daily or hourly.
  3. Read the new rows from the run's dataset, or connect a webhook, n8n, Make or Zapier to the run.

Each memory name is separate, so one schedule per hotel list, keyword set or market never mixes with another. To start over, use a new name.

Use cases for Mercado Libre data

Price monitoring and repricing

Feed the dataset into Google Sheets or your repricing tool.

Market and competitor research

Search a category in several countries in one run, compare sellers, official stores, sold quantities and ratings, and spot which products win the first positions (position, isSponsored).

Review mining and product quality

Pull thousands of reviews with star ratings, purchase variants and photos, then run sentiment analysis or feed them to an LLM to find recurring complaints before you source a product.

Catalog enrichment

Product details include brand, model, 60+ specifications, gallery images and category path — enough to build or enrich your own catalog or a comparison site.

Seller and store intelligence

Official-store mode returns store IDs, creation dates and status; product details include seller reputation (5_green), MercadoLíder level and sales volume, so you can qualify suppliers and partners.

AI agents and RAG

Flat rows with literal field names and a minimal set of required inputs make the Actor easy to call from an AI agent through the scrape.ly MCP server or the API.

Integrations

  • API – start a run and read the dataset with any HTTP client. Python example:

  • JavaScript – npm i scrapely-client, then client.actor('freshowl21/mercadolibre-scraper').call(input).

  • n8n, Make, Zapier, Google Sheets, Airtable, Slack, webhooks – use the scrape.ly integrations to trigger runs and push results.

  • MCP – add the scrape.ly MCP server to Claude, ChatGPT, Cursor or any MCP client and let the agent call freshowl21/mercadolibre-scraper with a keyword and a country.

  • Scheduling and monitoring – scrape.ly schedules, run notifications and dataset diffs work out of the box.

Error items and troubleshooting

Mercado Libre protects search and product pages with a bot gate. The Actor opens those pages in a real browser through residential proxies of the matching country, warms up the session on the marketplace home page and retries with a fresh browser identity whenever a page comes back blocked. Only after several failed attempts does a URL end up in the dataset as an error row:

{
  "type": "error",
  "url": "https://www.mercadolibre.com.mx/apple-iphone-15/p/MLM27172677",
  "error": "blocked (403, 2581 bytes)",
  "kind": "item",
  "scrapedAt": "2026-09-03T05:12:44.101Z"
}

Common cases and what to do:

What you seeWhat it meansFix
error rows for a few productsThose pages stayed blocked after the retriesRe-run just those URLs; the gate is per-IP and usually passes on a second run
Empty dataset in search modeThe keyword returns no listings on that marketplaceCheck the keyword on the site itself, or use a listing URL
rating and reviewCount are nullSearch cards only show what the card showsTurn on Fetch full product details or use Product details mode
Reviews mode returns only a rating rowThe product has ratings but no written reviewsLook at reviewsWithText in the product_rating row
Fewer results than Max productsThe query ran out of pages before the capBroaden the keyword or remove filters

🤖 For AI Agents & LLM Apps

Compact reference for agents calling this Actor through the scrape.ly MCP server or the scrape.ly API (freshowl21/mercadolibre-scraper).

Purpose: returns Mercado Libre listings, reviews and rating summaries across the Latin American marketplaces — by search term or by product URL — with price, instalment offer, discount, seller and shipping promise. Use it to answer "what does this cost in Mexico today", "who sells it officially", "how do buyers rate it" and "which listings are paid placements".

Minimal input:

{ "searchTerms": ["iphone 15"], "country": "MX", "maxItems": 50 }

Output: one row per listing — type, title, url, productId, itemId, country, currency, price, originalPrice, discountPercent, installmentsText, brand, condition, soldQuantity, rating, reviewCount, seller, isOfficialStore, freeShipping, fullShipping, shippingText, isSponsored, labels, location, imageUrl, position, page, searchTerm, totalResults, scrapedAt. Review rows carry text, variant, createdAt, likes and images; rating rows carry ratingAverage, ratingCount and ratingBreakdown; store rows describe official stores; unreadable pages arrive as type: "error".

Behaviors an agent should know:

  • mode defaults to auto: search terms run search mode, product URLs run product mode. Ask for reviews explicitly when you want review rows.
  • country selects the marketplace, the site code and the currency. Prices are in local currency — Brazilian reais and Mexican pesos are not comparable numbers.
  • installmentsText matters more than price in this region: most purchases are made in interest-free instalments, so quote it when a user asks about affordability.
  • isSponsored marks paid placements. Exclude them with includeSponsored: false before drawing conclusions about organic ranking, and note that position is the rank as displayed, sponsored rows included.
  • maxItems (default 50) caps listings; maxReviewsPerProduct (default 100) caps reviews separately.
  • Per-product detail fetching was withdrawn in September 2026: a detail page is a full browser render behind a residential proxy and cost more to fetch than it was priced at. To get a full product page, pass the product URL in Start URLs — that path is unchanged.
  • officialStoresOnly, freeShippingOnly, condition and the price range are applied to the rows the Actor collects, because Mercado Libre blocks its own filtered listing URLs. The run walks extra pages to still reach your maxItems.
  • Review text is Spanish or Portuguese depending on the country. Translate before sentiment scoring.

Data sent outside scrape.ly

To collect the data, this Actor sends requests through a residential proxy provider (DataImpulse) and, as a last resort, a backup proxy service, which receive the Mercado Libre page addresses being requested. Only what is needed for the request is sent; no scrape.ly credentials, account data or results are shared.

❓ FAQ

Is it legal to scrape Mercado Libre?

The Actor only collects data that is publicly visible to any visitor: listings, prices, specifications, store pages and reviews that buyers chose to publish. It does not log in, does not access accounts and does not collect private data. Personal data in reviews is limited to what Mercado Libre shows publicly. You are responsible for using the data in line with local law (LGPD in Brazil, LFPDPPP in Mexico, GDPR if you process EU residents' data) and Mercado Libre's terms; consult a lawyer for your specific case.

Which countries are supported?

All 18 Mercado Libre marketplaces: Mexico (MLM), Brazil (MLB), Argentina (MLA), Chile (MLC), Colombia (MCO), Peru (MPE), Uruguay (MLU), Ecuador (MEC), Venezuela (MLV), Bolivia (MBO), Paraguay (MPY), Dominican Republic (MRD), Costa Rica (MCR), Panama (MPA), Guatemala (MGT), Honduras (MHN), El Salvador (MSV) and Nicaragua (MNI). Prices stay in the local currency and are not converted.

Do I need a proxy or a browser?

No. Search and product pages are opened in a browser through residential proxies of the matching country automatically, and reviews, deals and stores are fetched without any proxy. The browser and proxy usage is billed on top of the per-result price at your plan rates.

Why do some fields come back empty?

Search cards only contain what Mercado Libre shows on the card: a listing without reviews has rating: null, a card without a discount has originalPrice: null. Use Product details (or Fetch full product details) for the complete record.

How many results can one search return?

Mercado Libre paginates listings 48 per page and stops around 2,000 results per query. Use narrower keywords, category URLs or price ranges to go deeper.

Can I get the whole catalog of a seller?

Yes: paste the seller's listing URL (for example https://listado.mercadolibre.com.mx/_CustId_49477299 or https://listado.mercadolibre.com.mx/tienda/apple/) as a start URL in search mode. Official store mode returns the store profile and its featured products.

Can I use the Actor with the scrape.ly API, MCP or n8n?

Yes. See the Integrations section. The input is plain JSON; startUrls accepts URLs or bare product IDs.

If you call the synchronous endpoint (run-sync-get-dataset-items), give it enough time: a plain search answers in under a minute, but a run with filters or with Fetch full product details walks extra pages in a browser and can take several minutes. Either raise the timeout parameter of the call, or start the run asynchronously and read the dataset when it finishes.

Does it return one row per product?

Yes. Each product, review, deal or store is one row with a type field. Product details from Fetch full product details are merged into the product row.

What happens if Mercado Libre blocks a page?

Blocked sessions are retired and the page is retried with a fresh browser identity and IP (up to three loads per page); a search page that is still blocked gets one more try through an unblocking service when enough results are still wanted from that search. If it still fails, you get an error row with the URL and you are not charged for it. If Mercado Libre refuses four pages in a row, the run stops instead of grinding on: the searches it did not get to are listed in the NOT_ATTEMPTED record and named in the status message, and they are not charged — run them again later.

How do I scrape Mercado Livre in Brazil?

Set Country to Brazil, or paste any mercadolivre.com.br URL. Brazilian listings live on lista.mercadolivre.com.br and product pages on produto.mercadolivre.com.br; both are recognised automatically, and results come back in BRL with Portuguese field values.

Can I scrape Mercado Libre without an API key?

Yes. That is the point of this Actor. Mercado Libre's own API needs an application, OAuth tokens and seller permissions, and its anonymous endpoints have returned 403 forbidden since 2024. This Actor reads the same public pages a shopper sees, so you only need an scrape.ly account.

What is the difference between productId and itemId?

productId (also called the catalog product, e.g. MLM27172677) is the catalogue entry that groups every seller offering the same product. itemId (e.g. MLM2120627201) is one seller's individual listing. Search cards carry both when the listing belongs to a catalogue; marketplace-only listings have just an itemId.

Can I track price history?

The Actor returns the current state of a page. Schedule a daily or hourly run on scrape.ly, keep each dataset, and you build your own history with scrapedAt as the timestamp. scrape.ly's dataset storage and integrations make it easy to append everything to one sheet or database.

How often can I run it?

As often as your plan allows. For search and product pages, spread heavy jobs out rather than hammering a marketplace: the built-in concurrency limit defaults to three pages at a time.

Does it collect buyer questions and answers?

No. Mercado Libre only renders the question thread for logged-in users, and this Actor never logs in. Reviews, ratings and the AI review summary status are collected instead.

Can I scrape a whole category?

Yes. Copy a category listing URL from the site (anything starting with listado. or lista., or a /c/ category page) and paste it into Mercado Libre URLs. Pagination is followed automatically up to your Max products limit.

Related actors

//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.