MercadoLibre Product Scraper avatar

MercadoLibre Product Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
MercadoLibre Product Scraper

MercadoLibre Product Scraper

Scrape products from MercadoLibre across 11 Latin American countries. Returns product title, price, currency, condition, seller, thumbnail, and permalink.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(8)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

9

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

MercadoLibre Scraper

Scrape products from MercadoLibre — Latin America's largest e-commerce marketplace. Returns product ID, title, URL, price, currency, condition, seller, thumbnail, rating, and more. Supports Argentina, Brazil, and Mexico.

What it does

  • Scrapes MercadoLibre search results across 3 LatAm country sites (AR, BR, MX)
  • Extracts product ID, title, URL, price, currency, thumbnail, rating, reviews, seller, brand, and shipping info
  • Hardcoded residential proxy handles MercadoLibre's account-verification block wall
  • Automatic session rotation — up to 6 retries on flagged sessions
  • Clean, non-null output — empty fields are omitted from records

Input

FieldTypeDefaultDescription
countryenumARWhich MercadoLibre site to scrape: AR (Argentina), BR (Brazil), MX (Mexico)
searchQuerystring"iphone"Free-text keyword (required unless startUrls is set)
conditionenumanyany / new / used
priceMinintegerMinimum price in local currency
priceMaxintegerMaximum price in local currency
startUrlsarrayDirect MercadoLibre search URLs (override structured filters)
maxItemsinteger50Maximum results to return (1–1000)

Example input

{
"country": "BR",
"searchQuery": "notebook",
"priceMin": 2000,
"priceMax": 10000,
"maxItems": 20
}

Output

Each product is a JSON record with the following fields (missing fields are omitted, never null):

FieldTypeAlways presentDescription
idstringMercadoLibre item ID (e.g. MLA1018500855)
titlestringProduct title
urlstringFull product URL
countryCodestringCountry code (e.g. AR)
scrapedAtstringUTC ISO 8601 scrape timestamp
pricenumberCurrent price in local currency
originalPricenumberStrikethrough / original price (before discount)
currencystringCurrency code (e.g. ARS, BRL, MXN)
currencySymbolstringCurrency symbol as displayed on the site
discountPercentagenumberPercentage off (0–100)
thumbnailstringProduct image URL
sellerNamestringSeller / brand name
brandstringBrand attribute
shippingLabelstringShipping badge text (e.g. Envío gratis, Frete grátis)
ratingnumberSeller or product star rating
reviewsCountnumberNumber of reviews

Sample output

{
"id": "MLA1018500855",
"title": "iPhone 13 128 GB 4 GB RAM Blanco estelar Apple - Distribuidor Autorizado",
"url": "https://articulo.mercadolibre.com.ar/MLA-1018500855-iphone-13-128-gb-...",
"countryCode": "AR",
"price": 999999,
"currency": "ARS",
"currencySymbol": "$",
"thumbnail": "https://http2.mlstatic.com/D_Q_NP_2X_787642-MLA95698363690_102025-E.webp",
"sellerName": "DistribuidorOficial",
"shippingLabel": "Envío gratis",
"scrapedAt": "2026-04-14T06:38:23Z"
}

FAQ

Do I need a proxy? No configuration needed — an Apify residential proxy is applied automatically, matching the selected country. MercadoLibre blocks direct datacenter access and even many residential sessions, so the scraper rotates proxy session IDs up to 6 times per run on flagged sessions. The first half of attempts use the target country's residential pool; the second half falls back to any residential IP for resilience.

Why only 3 countries? At the time of writing, MercadoLibre's smaller-market sites (Chile, Colombia, Peru, Uruguay, Venezuela, Ecuador, Dominican Republic, Costa Rica) return a hard-block response on every residential session in Apify's pool. Only AR, BR, and MX reliably serve scrapable HTML. The scraper's country enum has been trimmed accordingly.

How many results can I get per run? Up to 1,000 items (theoretically). Each search page returns 40–50 cards; the scraper paginates via the MercadoLibre page index when maxItems exceeds a single page. Practical cap depends on how deep the search goes before MercadoLibre starts returning "no more results".

Does the scraper call MercadoLibre's public API? No. api.mercadolibre.com now returns 403 for anonymous traffic. The scraper uses the HTML search listings page (listado.mercadolibre.com.ar/<query>, etc.) and parses the poly-card server-rendered product tiles.

What happens if the target site is blocked? The scraper retries with a fresh residential session. If all 6 retries fail, the run exits with a fail status and no records — the residential pool was exhausted for that country. Rerun in a few minutes.

How fresh is the data? Every run hits the live search page. Prices and availability are always current.

Use cases

  • Price monitoring — daily runs to track competitor prices in AR/BR/MX
  • Trend research — ingest product names and prices across major keywords
  • Cross-border arbitrage — compare pricing between AR, BR, and MX markets
  • Inventory alerts — monitor specific SKUs via the startUrls override

Notes

  • Pricing is configured in the Apify UI (pay-per-result).
  • MercadoLibre's HTML can change; if the scraper starts returning 0 items, check the poly-card class markers in src/main.py:parse_search_html.
  • The daily Apify test run uses country=AR, searchQuery=iphone, maxItems=5.