MercadoLibre Search Scraper avatar

MercadoLibre Search Scraper

Under maintenance

Pricing

$2.65 / 1,000 products

Go to Apify Store
MercadoLibre Search Scraper

MercadoLibre Search Scraper

Under maintenance

Search Mercado Libre and Mercado Livre by keyword or results URL. Save product prices, sellers, shipping, ratings, images, and search positions in a clean dataset.

Pricing

$2.65 / 1,000 products

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

1

Bookmarked

68

Total users

19

Monthly active users

17 hours

Issues response

6 hours ago

Last modified

Share

🔎 Collect Mercado Libre search product data

MercadoLibre Search Scraper helps ecommerce teams, sellers, agencies, and researchers collect products from Mercado Libre and Mercado Livre search pages. Search by keyword or use a results URL. Get prices, sellers, shipping, ratings, images, and search positions in a clean dataset.

📦 Mercado Libre product-card data

Each dataset row is one product card from a Mercado Libre or Mercado Livre results page. It can include product details, price, seller, shipping, ratings, search rank, sponsored status, and visible variations. Some values are null when the card does not show them. The Actor does not guess missing values.

When the same product appears more than once, the Actor saves its first eligible match and ignores later matches.

  1. Choose Keyword search or Results URLs as the Target.
  2. Add keywords or search, category, or filtered results URLs.
  3. For keywords, choose a market and sort order.
  4. Add a delivery ZIP or postal code if location matters.
  5. Set the product limit and first page.
  6. Run the Actor and open the dataset.

Keyword searches can use relevance, lowest price, highest price, or newest order. A submitted results URL keeps its marketplace, category, location, sort order, and other filters. Leave Product limit empty to save all available product cards until the source is exhausted. It reads results pages, not product detail pages or homepages.

⚙️ Input

Input fields

FieldTypeWhat it does
targetstringChooses keywordSearch or resultsUrls. Options for the other target are ignored.
targetsstring arraySets one or more product keywords for keywordSearch.
startUrlsobject arraySets search, category, or filtered results URLs for resultsUrls. Each object contains a url.
startUrls[].urlstringSets one search, category, or filtered results URL inside a startUrls object.
countrystringSets the marketplace for keyword searches. A full results URL keeps its own country domain.
sortBystringOrders keyword results by relevance, low price, high price, or newest.
postalCodestringApplies a delivery ZIP or postal code. Leave it empty for general market results.
maxResultsintegerStops after this many products are saved across all keywords or URLs. Leave it empty to return all available products until the source is exhausted.
startPageintegerStarts each input at this results page. The default is 1.
conditionstringKeeps all products or filters cards to new or used condition.
minPricenumberKeeps cards at or above this amount in the local market currency. Leave it empty for no minimum.
maxPricenumberKeeps cards at or below this amount in the local market currency. Leave it empty for no maximum.
freeShippingbooleanKeeps only listings that advertise free shipping when true.
officialStorebooleanKeeps only listings marked as marketplace official stores when true.

Default input

This input comes from the successful current-beta run used for the product-row example:

{
"target": "keywordSearch",
"targets": [
"iphone"
],
"country": "mx",
"sortBy": "relevance",
"maxResults": 5,
"startPage": 1,
"condition": "any"
}

🧾 Output

The Output tab links to the saved product rows.

Run output

FieldTypeWhat it does
resultsstringOpens the results table with product listings, prices, sellers, shipping, ratings, images, and result positions.

Dataset row fields

FieldTypeWhat it does
productIdstring or nullProduct ID, when available.
titlestringProduct title shown on the card.
urlstringPublic product URL.
imageUrlstring or nullMain product image URL.
searchRankintegerOne-based position for the submitted target.
pageNumberintegerResults page where the product was found.
sourceTargetstringKeyword or URL whose first eligible match saved the row.
sourceUrlstringResults page where the product was found.
countrystringTwo-letter marketplace country code.
postalCodestring or nullDelivery ZIP or postal code used for the result.
currencystringCurrency code for the current price.
currentPricenumberCurrent price shown on the card.
previousPricenumber or nullEarlier price shown for a promotion.
discountPercentnumber or nullDiscount percentage shown on the card.
installmentsTextstring or nullVisible installment or payment text.
shippingTextstring or nullVisible shipping or delivery text.
freeShippingboolean or nullWhether the card says shipping is free.
sellerNamestring or nullVisible seller or official-store name.
isOfficialStorebooleanWhether the card marks an official store.
isSponsoredbooleanWhether source markup marks the product as sponsored.
ratingnumber or nullProduct rating, when shown.
reviewCountinteger or nullReview or rating count, when shown.
categoryIdstring or nullMercado Libre category ID, when available.
conditionstring or nullProduct condition, when shown.
variationsobject arrayChoices shown on the card, such as colors or styles.
variations.idstring or nullSource ID for a choice.
variations.labelstring or nullVisible choice name.
variations.imageUrlstring or nullImage URL for a choice.

Example product row

This is one full row from the same successful current-beta run:

{
"productId": "MLM2059326676",
"title": "iPhone 14 Pro (sólo eSIM) 128 GB negro espacial - Excelente (Reacondicionado)",
"url": "https://www.mercadolibre.com.mx/iphone-14-pro-solo-esim-128-gb-negro-espacial-excelente-reacondicionado/p/MLM2059326676",
"searchRank": 3,
"pageNumber": 1,
"sourceTarget": "iphone",
"sourceUrl": "https://listado.mercadolibre.com.mx/iphone",
"country": "mx",
"postalCode": null,
"currency": "MXN",
"currentPrice": 8699,
"previousPrice": 19000,
"discountPercent": 54,
"installmentsText": "15 meses sin intereses de $579.93",
"shippingText": "Envío gratis",
"freeShipping": true,
"sellerName": null,
"isOfficialStore": false,
"isSponsored": false,
"rating": null,
"reviewCount": null,
"imageUrl": "https://http2.mlstatic.com/D_Q_NP_2X_750141-MLA104269458595_012026-E.webp",
"categoryId": "MLM1051",
"condition": "Reacondicionado",
"variations": []
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each product saved to the dataset. Empty searches, skipped inputs, and products that are not saved do not create this product charge. Set Product limit to cap how many products can be saved and charged.

🔌 Integrations

Export Apify datasets as JSON, CSV, Excel, XML, RSS, or HTML. You can also use the Apify API, schedules, webhooks, Zapier, Make, Google Sheets, and other Apify integrations.

❓ FAQ

Can I use a product detail URL?

No. Use a search, category, or filtered results URL. Product detail URLs and marketplace homepages are skipped.

Why can a rating, seller, or shipping field be empty?

Mercado Libre does not show every value on every product card. The Actor leaves a value empty instead of guessing it.

Why do results change by ZIP or postal code?

Product order, availability, and shipping text can depend on location. Add a delivery ZIP or postal code when you need that location context.

Does it collect product details, reviews, or Q&A?

No. It reads product cards on results pages. It does not collect full descriptions, full image galleries, specifications, stock, units sold, seller reputation, review text, Q&A, or details not shown on the card.

Do I need a Mercado Libre login or API key?

No Mercado Libre login or API key is needed for the public results pages this Actor reads.

Should I use the official Mercado Libre API instead?

Use the official API when it gives you the fields and access you need. Use this Actor when you need public product cards, visible order, and card-level fields from results pages.

Can I continue from a later page?

Yes. Set startPage to begin on a later results page. This can help continue a search or skip earlier pages.

📝 Changelog

0.2: Flexible search targets and product filters

  • Added a Results URLs target for search, category, and filtered results pages.
  • Added condition, price, free-shipping, and official-store filters.
  • Leave Product limit empty to collect all available product cards.

v0.1

  • Added delivery ZIP/postal code support.
  • Improved search scraping.

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré