MercadoLibre Search Scraper — Price, Seller & Rating
Pricing
from $4.00 / 1,000 product listeds
MercadoLibre Search Scraper — Price, Seller & Rating
Scrape MercadoLibre search results across 11 LATAM countries: title, price, discount, seller, rating, reviews, free shipping, installments, and result position. Keyword or search URL. MCP-ready.
Pricing
from $4.00 / 1,000 product listeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
5
Monthly active users
5 days ago
Last modified
Categories
Share
MercadoLibre Search Scraper is an Apify Actor for MercadoLibre search results across 11 LATAM countries. It accepts free-text keywords or MercadoLibre search and category URLs, then returns one dataset record per product card. Each record can include title, price, discount, seller, rating, reviews count, free shipping, installments, condition, thumbnail, sponsored status, result position, and country. The output is structured search-result data that fits analysis, monitoring, enrichment, and Apify MCP workflows.
Best fit and connected workflows
This Actor fits workflows that begin with MercadoLibre discovery and continue into downstream analysis:
- Price and promotion monitoring for keyword searches in a chosen marketplace.
- Market research that compares ranking position, seller identity, rating, and ad placement.
- Assortment and catalog scans across multiple keywords or pasted filtered result URLs.
- AI agent workflows that need compact result-card data with clear provenance.
- Discovery-first pipelines that hand selected
urloritemIdvalues to detail-enrichment tooling.
For downstream enrichment, the verified connected Actor is MercadoLibre Product and Seller Data Scraper. Use this search scraper to find candidate products, then pass selected MercadoLibre records onward when you want deeper product and seller detail data.
Practical scenario
A retail analyst in Mexico starts with the keyword celular samsung and asks for the first 50 cards sorted by relevance. The Actor returns records with position, title, price, sellerName, rating, reviewsCount, freeShipping, and url. The analyst sees which listings appear first, compares seller signals and shipping flags, and then opens selected url values for a closer review or a downstream detail scrape.
Input
| Field | Type | Purpose |
|---|---|---|
searchQueries | array of strings | Free-text MercadoLibre keywords, one per line. Each keyword runs against the selected country. Defaults to celular. |
startUrls | array of strings | MercadoLibre search or category result URLs. The country is read from each URL domain. |
country | string | Marketplace country for keyword searches. Options: MX, AR, BR, CL, CO, UY, PE, EC, VE, BO, PY. |
sort | string | Keyword-search ordering: relevance, price_asc, price_desc, or most_recent. |
maxResults | integer | Maximum product cards across all queries and URLs combined. Default 50, max 5000. |
enableCaptchaSolver | boolean | Uses 2captcha handling when MercadoLibre serves a reCAPTCHA wall on retry. Default true. |
proxyConfiguration | object | Proxy setting for the primary fetch attempts. Residential proxying is supported through Apify Proxy and the actor's fallback path. |
Focused input example
{"searchQueries": ["celular samsung", "notebook gamer"],"country": "MX","sort": "price_asc","maxResults": 100,"enableCaptchaSolver": true,"proxyConfiguration": {"useApifyProxy": true}}
Output
Each dataset item represents one MercadoLibre search-result card.
| Field | Type | Meaning |
|---|---|---|
position | integer | 1-based rank of the result in the run. |
itemId | string | MercadoLibre item id, for example MLM1422978828. |
title | string | Product title shown on the card. |
price | number | Current card price. |
currency | string | Marketplace currency code, for example MXN. |
originalPrice | number | Struck-through price before discount, when shown. |
discountPercent | integer | Discount percentage when shown. |
condition | string | Item condition when shown. |
sellerName | string | Seller or public store name when shown. |
rating | number | Average star rating 0-5 when shown. |
reviewsCount | integer | Number of reviews when shown. |
freeShipping | boolean | Whether the card advertises free shipping. |
shippingText | string | Raw shipping label from the card. |
installments | string | Installments text from the card. |
thumbnail | string | Product image URL. |
isSponsored | boolean | Whether the card is an ad or promoted listing. |
url | string | Product page URL, with click-trackers unwrapped where possible. |
country | string | Marketplace country code. |
Illustrative output record
{"position": 5,"itemId": "MLM63043376","title": "Celular Motorola Moto G06 256gb 4gb Color Verde","price": 2117,"currency": "MXN","originalPrice": 5999,"discountPercent": 64,"sellerName": "Telmov","rating": 4.8,"reviewsCount": 124,"freeShipping": true,"shippingText": "Llega gratis hoy","installments": "24 meses de $127.94","thumbnail": "https://http2.mlstatic.com/D_Q_NP_2X_927719-MLA100483414444_122025-E.webp","isSponsored": false,"url": "https://www.mercadolibre.com.mx/celular-motorola-moto-g06-256gb-4gb-color-verde/p/MLM63043376","country": "MX"}
How it works
This Actor renders MercadoLibre results pages in Firefox and parses search-result cards from the page. It supports two input paths:
- keyword searches using
searchQueries - pasted MercadoLibre search or category URLs using
startUrls
For keyword searches, the selected country sets the marketplace domain and a matching in-country residential exit IP. The Actor paginates through results until it reaches maxResults. The live contract also shows keyword-search sort order support.
Implementation facts from the live contract:
- Proxy ladder: Apify Proxy, then DataImpulse country-pinned residential, then a fresh-IP retry on suspicious-traffic pages, then 2captcha on
/captcha/wall. - The Actor parses both poly-card and legacy
ui-searchmarkup. - Input validation is soft-fail.
- Cost-cap logging and
safePushDataare part of the build.
Pricing
This Actor uses Pay per event plus Apify platform usage. The live Pricing tab is the source of truth for current charges.
The contract defines two event types:
- Actor start
- Product listed
A simple example: if a run returns fifty product cards, the billed activity includes one actor-start event and fifty product-listed events. The total depends on the live Pricing tab, and Apify platform usage is billed separately according to your Apify plan and execution resources.
Use with AI agents (MCP)
This Actor is MCP-ready and exposes a focused tool for MercadoLibre search-result discovery. The exact Actor identity is khadinakbar/mercadolibre-search-scraper.
The tool collects public MercadoLibre result cards from keyword searches or pasted search/category URLs. It is useful when an agent needs a narrow input, predictable row-level output, and record provenance for follow-up workflows.
Search MercadoLibre for
notebook gamerin Mexico, return the first 25 organic results sorted by price ascending, and include seller, rating, shipping, and URL for each card.
Output interpretation:
positionshows the card order in the run.price,originalPrice, anddiscountPercentcapture pricing and promotion signals when MercadoLibre displays them.sellerName,rating, andreviewsCountseparate marketplace visibility from seller reputation signals.freeShipping,shippingText, andinstallmentscapture checkout-relevant card details.isSponsoredmarks promoted listings.urlanditemIdprovide public references for follow-up workflows.
Provenance and scope:
- Records come from MercadoLibre search-result pages, not product detail pages.
startUrlspreserve the URL's own filters and country.- Keyword searches use the chosen
country. - Pagination continues until the requested result count is reached or the marketplace result flow ends.
Cost guidance:
- Keep
maxResultsaligned with the number of cards your agent truly needs. - Each returned card contributes to
product-listedcharges. - The live Pricing tab remains the authority for current event pricing.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/mercadolibre-search-scraper').call({searchQueries: ['celular'],country: 'MX',sort: 'relevance',maxResults: 10,});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Best results and outcome guidance
Use keyword searches when you want a consistent query across a chosen marketplace. Use startUrls when you already built filters in MercadoLibre and want the Actor to continue from that exact results page.
Helpful routing choices:
- Use
countryfor keyword searches so the marketplace and residential exit IP align. - Use
sort: price_ascorprice_descwhen price comparison matters. - Use
maxResultsto match the number of cards your workflow actually needs. - Use
enableCaptchaSolvertogether with residential proxy settings for broader coverage on challenging pages. - Use the returned
urloritemIdwhen a downstream workflow needs detail enrichment.
Continue the workflow
- Then use MercadoLibre Product and Seller Data Scraper to continue from MercadoLibre Search Scraper — Price, Seller & Rating discovery into content data for the selected records.
- Then use Myntra Product Scraper to extend MercadoLibre Search Scraper — Price, Seller & Rating with a neighboring commerce research source when the brief calls for Myntra data.
Design note
I found that the dataset view includes both isSponsored and freeShipping, which makes it straightforward to separate promotion signals from fulfillment signals in the same record.
FAQ
When should I use searchQueries instead of startUrls?
Use searchQueries for a clean keyword workflow. Use startUrls when you already have a MercadoLibre search or category URL with filters applied.
Can this Actor help me discover items before a detail scrape?
Yes. It returns public search-result cards, including url and itemId, which fit a discovery-to-enrichment workflow.
How do I work with multiple countries?
Choose the country for keyword searches, or provide country-specific MercadoLibre URLs in startUrls. The output includes the resolved country field.
What is the practical difference between rating and reviewsCount?
rating is the average star score shown on the card. reviewsCount is the number of reviews when MercadoLibre displays it.
How do I route filtered searches?
Create the filtered MercadoLibre results page in your browser, then paste that URL into startUrls so the Actor keeps the encoded filters.
Responsible use
Use the Actor in ways that align with MercadoLibre terms, applicable law, and your own data-handling policies. The Actor works with publicly visible search-result pages and returns publicly displayed card data. Keep request volumes proportional to the workflow, and prefer maxResults values that match your actual analysis needs.