Mercado Livre Brazil - Products, Prices, Sellers & Reviews avatar

Mercado Livre Brazil - Products, Prices, Sellers & Reviews

Pricing

from $2.00 / 1,000 product results

Go to Apify Store
Mercado Livre Brazil - Products, Prices, Sellers & Reviews

Mercado Livre Brazil - Products, Prices, Sellers & Reviews

Scrape Mercado Livre Brazil by keyword or URL. Filter by category, brand, price, condition, shipping, official store, and seller rating. Extract prices, discounts, instalments, stock, delivery, seller details, variants, specifications, and buyer reviews.

Pricing

from $2.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

19

Monthly active users

a day ago

Last modified

Categories

Share

Mercado Livre Brazil Scraper: Prices, Stock, Sellers and Buyer Opinions

Mercado Livre Brazil Scraper turns Mercado Livre Brazil (mercadolivre.com.br), Latin America's largest online marketplace, into structured product data. Search by keyword with the marketplace's own filters, or paste product, search, category and deals links. Every product comes back with its price, price before discount, discount percentage, instalment terms, shipping signals, seller and stock, and you can switch on full specifications, colour and model variants and buyer opinions per run. Export to JSON, CSV or Excel, pull the results through the API, or schedule the actor to track only what changed.

Why This Scraper?

  • Two ways in. Search by keyword with the marketplace's own filters, or paste product, search, category and deals links, or bare MLB product codes.
  • Full pricing picture. Price, price before discount, discount percentage and instalment terms come back with each product, plus free-shipping and marketplace-fulfilled signals on search and deals rows.
  • Full details on demand. Switch on the description, the complete specification table, colour and model variants with their own prices and stock, and seller reputation, and pay the enrichment charge only when you ask for them.
  • Buyer opinions. Collect the star breakdown and every opinion the marketplace publishes on the product page, with rating, text, date, country, helpful votes and photos.
  • Genuine filters. Price range, condition, shipping, seller quality, discount and interest-free instalments are the marketplace's own filters, applied at the source. Category and brand are matched against the site's own filter list for your keyword; set one of the two per run.
  • Honest search results. A row that only loosely matches your keyword is marked, so you can tell a genuine match from a loose one before you act on it.
  • Built for monitoring. Incremental mode returns only new and changed products on recurring runs, and a refused run fails loudly instead of quietly returning an empty dataset.

Use Cases

  • Price monitoring and repricing: track a product line's price, discount and stock across sellers to react to competitors.
  • Market and assortment research: pull a whole search result set or deals feed, with specifications and variants, to compare products at scale.
  • Review and reputation analysis: collect the star breakdown and buyer opinions for a product line to spot quality issues early.
  • Deal and catalogue feeds: read the marketplace's deals and category listings for a content site or price-comparison feed.
  • Recurring marketplace monitoring: schedule the actor and get only the new, updated or removed products since the last check.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
itemId"MLB70040749", the listing's own MLB code
catalogProductId"MLB18654321", the catalogue product code shared by every seller of the same product
title / url"Notebook Exemplo 15 I5 8GB 512GB" / the product's mercadolivre.com.br address
brand / model"Marca Exemplo" / "X15" (full details, or a pasted product link)
categoryId / categoryPath / breadcrumb"MLB1648" (search, browse and deals rows) / "Informática > Notebooks" / the full path (full details, buyer opinions, or a pasted product link)
price / originalPrice / discountPercent3749.41 / 4499.0 / 17
currency"BRL", always
installments / installmentsTextquantity, amount, total and interest-free flag on search and browse rows / the page's own instalment text on full-detail rows, "10x 374.94 sem juros"
condition"new", "used", "refurbished" or "open_box" (full details, or a pasted product link)
freeShipping / fulfillment / shippingTexttrue / false / "Chegando em 2 dias" (search and deals rows)
sellerName / officialStore"Loja Exemplo" / false
sellerseller id, type and reputation grade (full details, buyer opinions, or a pasted product link)
availableQuantity / stockStatus12 / "Últimas unidades disponíveis" (full details, buyer opinions, or a pasted product link)
soldQuantity340
images / videosmedia gallery addresses (a partial gallery on every record, the complete gallery and videos on full details, buyer opinions, or a pasted product link)
variantscolour and model variants, each with its own code, address, price and availability (full details, buyer opinions, or a pasted product link)
attributesthe full specification table, as name, value and group triples (full details, buyer opinions, or a pasted product link)
descriptionthe product description (full details, buyer opinions, or a pasted product link)
rating / reviewCount / ratingBreakdown4.7 (search cards too, when the product has ratings) / 184 / {"5": 124, "4": 47} (full details or buyer opinions)
reviewseach opinion the marketplace publishes on the product page: rating, text, date, country, helpful votes, photos (buyer opinions only)
exactMatch / searchFallbackpresent only on a keyword search row that is a loose match, false / true
changeType / changedFields / firstSeenAt / lastSeenAtincremental mode only

Opinion authors are never returned: the marketplace does not publish a name or profile with a product opinion, so none is invented. Loose-match marking (exactMatch / searchFallback) applies to keyword searches in search mode; a pasted search-result link returns its rows exactly as the marketplace ranked them, unmarked.

How to Use

  1. Pick a mode: search (by keyword, with the marketplace's own filters) or url (paste product, search, category or deals links, or bare MLB codes).
  2. For search mode, fill in your keywords and any filters. For url mode, paste your links.
  3. Turn on Fetch full details and Fetch buyer opinions if you want the full specification table, variants, stock, seller reputation and published opinions. Each opens the product page and adds the Detail enrichment charge.
  4. Set Max products (and optionally Max result pages per search) to size the run, then click Start.

Keyword search with filters:

{
"mode": "search",
"queries": ["notebook"],
"category": "Notebooks",
"condition": "new",
"maxPrice": 4000,
"freeShippingOnly": true,
"maxItems": 50
}

Paste a product link, with full details and opinions:

{
"mode": "url",
"urls": ["https://www.mercadolivre.com.br/notebook-exemplo/p/MLB70040749"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 30
}

A deals or category link:

{
"mode": "url",
"urls": ["https://www.mercadolivre.com.br/ofertas"],
"maxItems": 200
}

Recurring incremental monitoring:

{
"mode": "search",
"queries": ["tenis corrida"],
"incrementalMode": true,
"stateKey": "tenis-corrida-watch",
"emitExpired": true
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/mercadolivre-com-br-scraper").call(
run_input={"mode": "search", "queries": ["notebook"], "maxItems": 20})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["title"], product["price"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/mercadolivre-com-br-scraper').call({
mode: 'search', queries: ['notebook'], maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Connection and cost shape

Search result pages and product pages are served by the marketplace only to a Brazilian consumer-grade connection, so the default connection for this actor is the Residential proxy group, country Brazil, and that is what these two page types need. Category and deals pages need no such connection and work on any tier. A search page or a product page also gets its own fresh connection, because the marketplace retires a connection after it has served one such page, so each product page you enrich carries its own cost. Max products is the run's one hard cap; Max result pages per search bounds how deep a search walk goes when you want a shallower, cheaper pull.

Resume and recurring updates

Two different things.

  • Resume from a previous run (resumeFromRunId) continues one specific interrupted run. Paste its run or dataset id and the products already collected there are skipped, so they are neither returned nor billed again. Raise Max result pages per search when you resume a deep pull, because the pages the previous run covered still count against it.
  • Incremental mode (incrementalMode) is for recurring monitoring of the same search. The first run returns everything as NEW. Later runs return NEW and UPDATED products (with changedFields naming what moved), and suppress UNCHANGED ones unless Emit unchanged is on. Emit expired additionally tombstones products that a run no longer finds as EXPIRED, but only once a run has completely scanned the tracked search: never when Max products capped it, never after a resume, and never when a run collected nothing. REAPPEARED is only produced for a product that was previously tombstoned this way and is then found again in a later run, so a monitoring campaign that never turns on Emit expired will never see a REAPPEARED row. State is kept per keyword-and-filter setup; use State key to name a campaign or to deliberately share one.

reviews bodies are excluded from change detection: a popular product carries many opinion rows, and tracking every one would rewrite the record on every new opinion. Nothing is lost: rating, reviewCount and ratingBreakdown are all tracked, so a new or deleted opinion still marks the product UPDATED.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. If the picker is empty, you have not authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch or url.
queriesarraynone (prefill: ["notebook"])Keywords to search, search mode only. Each is searched separately and results are merged and de-duplicated.
urlsarraynone (prefill: a sample product link)Links to scrape, url mode only: product pages, search pages, deals pages, category pages, or bare MLB codes.
categorystringnoneNarrow a keyword search to one marketplace category, by the name the site shows in its own filter.
brandstringnoneNarrow a keyword search to one brand, by the name the site shows in its own filter.
conditionstringanyany, new, used, refurbished or open_box.
minPriceintegernoneMinimum price in reais, search mode only.
maxPriceintegernoneMaximum price in reais, search mode only.
freeShippingOnlybooleanfalseReturn only products the marketplace ships free.
fulfillmentOnlybooleanfalseReturn only products stocked and shipped from the marketplace's own warehouses.
officialStoresOnlybooleanfalseReturn only listings sold by an official brand store.
bestSellersOnlybooleanfalseReturn only listings from sellers the marketplace flags as top-rated.
minDiscountPercentintegernoneReturn only products discounted by at least this percentage (5 to 60).
interestFreeInstallmentsbooleanfalseReturn only products payable in interest-free instalments.
sortBystringrelevancerelevance, price_asc or price_desc.
fetchDetailsbooleanfalseOpen each product page for description, full specifications, variants, stock, seller reputation and the complete gallery. Charged once per product as Detail enrichment.
fetchReviewsbooleanfalseCollect buyer opinions. Opens the product page the same way fetchDetails does, and is charged the same Detail enrichment event when it is the only toggle on.
maxReviewsPerProductinteger20Cap on opinions collected per product (1 to 500).
maxItemsinteger20Hard cap on products returned and billed for, across every keyword or link (1 to 10000).
maxPagesinteger0Optional bound on result pages walked per keyword or search link. 0 means unlimited: the walk goes as deep as the marketplace serves and stops on Max products or the site's own end of results.
resumeFromRunIdstringnoneContinue one specific interrupted run without re-billing what it already collected.
incrementalModebooleanfalseReturn only new and changed products on recurring runs of the same search.
stateKeystringnoneName or share an incremental-mode monitoring campaign. Left empty, a key is derived automatically from the search and filter setup.
emitUnchangedbooleanfalseAlso return (and bill) products that did not change, marked UNCHANGED.
emitExpiredbooleanfalseAlso return (and bill) products no longer found, marked EXPIRED, once a run has completely scanned the tracked search.
proxyobjectResidential proxy group, country BrazilConnection settings. Search results and product pages need this tier; category and deals pages work on any tier.
mcpConnectorsarraynoneOptional: send a summary of each product to apps you authorized under Integrations.
notionParentPageUrlstringnoneNotion connector only: page under which product pages are created.
maxNotifyListingsinteger50Cap on products written to each connector per run. Does not affect the dataset (1 to 500; higher values are capped at 500).

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"itemId": "MLB70040749",
"catalogProductId": "MLB18654321",
"title": "Notebook Exemplo 15 I5 8GB 512GB SSD Win 11",
"url": "https://www.mercadolivre.com.br/notebook-exemplo/p/MLB70040749",
"brand": "Marca Exemplo",
"model": "X15",
"categoryId": "MLB1648",
"categoryPath": "Informática > Notebooks",
"price": 3749.41,
"originalPrice": 4499.0,
"discountPercent": 17,
"currency": "BRL",
"installments": { "text": "10x R$ 374,94 sem juros", "currency": "BRL" },
"installmentsText": "10x R$ 374,94 sem juros",
"condition": "new",
"freeShipping": true,
"fulfillment": true,
"shippingText": "Chegando em 2 dias",
"sellerName": "Loja Exemplo",
"officialStore": false,
"seller": { "name": "Loja Exemplo", "sellerId": "998877", "type": "normal", "reputation": "green" },
"availableQuantity": 12,
"stockStatus": "Últimas unidades disponíveis",
"soldQuantity": 340,
"images": ["https://http2.mlstatic.com/D_NQ_NP_123456-O.webp"],
"variants": [{ "axis": "COLOR", "axisLabel": "Cor", "name": "Cinza", "productId": "MLB70040750", "price": 3749.41, "available": true }],
"attributes": [{ "name": "Marca", "value": "Marca Exemplo", "group": "Geral" }],
"description": "Notebook com processador Exemplo, 8GB de RAM e SSD de 512GB.",
"rating": 4.7,
"reviewCount": 184,
"ratingBreakdown": { "5": 124, "4": 47, "3": 8, "2": 3, "1": 2 },
"reviews": [{ "reviewId": "a1b2", "rating": 5, "text": "Excelente produto", "date": "2026-01-05", "country": "BR", "helpfulCount": 12, "images": [], "videoCount": 0 }],
"scrapedAt": "2026-01-05T12:00:00+00:00"
}

Plan Requirement

The default connection uses the Residential proxy group, country Brazil, which search result pages and product pages need. Reaching that tier requires an Apify plan that includes residential proxies; without it the connection itself is refused. Category and deals links keep working on any plan when a run contains only those links. If your plan does not include the residential tier, the run tells you so plainly and names the working alternative, rather than sending you back to a preset your plan cannot use.

FAQ

How much does it cost?

You pay per product returned, with the Detail enrichment surcharge billed only when full details or buyer opinions are switched on, plus one Actor start charge per run. The Pricing tab shows the current rates. Use Max products to cap the cost of any run.

This actor collects only publicly available marketplace data. You are responsible for how you use it: follow Mercado Livre's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product listings, prices and specifications are generally facts, but images, descriptions and opinions may be subject to third-party rights.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only NEW and UPDATED products (UNCHANGED ones are suppressed and not billed unless you turn that on too). Turn on Emit expired if you also want to know when a tracked product disappears; it is only produced once a run has completely scanned the tracked search.

A /c/<slug> category page is a marketing landing that carries no product listings at all. The actor reads the landing to find which category it names, then reads that category's deals feed, which is where its products live, and logs that this is what happened. A keyword search or a pasted lista.mercadolivre.com.br search link is the way to walk a category's full listing set.

Why did my run fail instead of returning an empty dataset?

A search that genuinely has no matches still succeeds with zero rows. A run fails only when result pages were refused rather than empty. If your connection lacks the Residential Brazil tier the run stops immediately and tells you so. If that tier is selected but your plan is not entitled to it, the run confirms the refusal at the connection gateway and tells you a paid plan is required, rather than asking you to restore a preset your plan cannot use. If pages start failing partway through a full-details or buyer-opinions run, full details are switched off for the rest of that run and the remaining products come back with their catalogue fields only, uncharged for enrichment.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 More scrapers you might like

Pair this actor with these related scrapers from the same team:

🛒 Americanas Brazil
Scrape Americanas Brazil (americanas.com.br) by keyword, department or pasted link...
⚽ Netshoes Brazil
Scrape sportswear and footwear from netshoes.com.br. Search by keyword with the store's...
🔌 Casas Bahia Brazil Electronics & Home Goods Scraper
Scrape products from Casas Bahia Brazil by keyword, department, or URL. Filter by brand...
🛒 Drogasil Brazil Pharmacy, Health & Beauty Scraper
Scrape Drogasil (drogasil.com.br) medicines, health and beauty products by keyword...
🏠 ZAP Imóveis Brazil Property Scraper
From $1/1K. Scrape Zap Imóveis property listings across sale, rental, and new...
🏠 QuintoAndar Scraper
Scrape QuintoAndar property listings across Brazil with 80+ fields, including rent, sale...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.