Pricing
$1.00 / 1,000 results
MercadoLivre search $1/1000 results
Extract product listings from MercadoLivre search results β prices, discounts, ratings, seller names, shipping info, installment details, catalog IDs, and categories. Scrape any keyword, set how many results you need.
Pricing
$1.00 / 1,000 results
Rating
5.0
(1)
Developer
Actor stats
0
Bookmarked
53
Total users
22
Monthly active users
27 minutes ago
Last modified
Categories
Share
What does this MercadoLivre search scraper do?
This Actor extracts structured product data from MercadoLivre β Brazil's largest e-commerce marketplace β straight from its search results. Pass one or more keywords and get back clean JSON for every product, including title, price, discount, installments, rating, brand, seller, official-store and shipping info, FULL fulfillment, sponsored flag, and category.
Why scrape MercadoLivre search results?
- π Price monitoring β track price changes, discounts, and installment offers for any product category over time.
- π Competitor research β see which sellers, prices, and products rank for your target keywords.
- π Market analysis β aggregate listing data to find top-rated products, best-sellers, and high-volume sellers.
- π Lead generation β discover official brand stores and their catalogues at scale.
- π₯ Trend discovery β spot emerging products and categories by keyword before competitors do.
- π€ Automation β schedule runs and push results into spreadsheets, databases, or dashboards through Apify integrations.
Why an Actor instead of doing it yourself?
Unlike a manual search, this Actor turns MercadoLivre's keyword results into structured data at scale. MercadoLivre's official API no longer offers free, open product search (it requires authenticated, restricted access), and the website is built for browsing one page at a time β so collecting listings by hand or with a DIY scraper means fighting pagination, sponsored listings, and bot protection.
How to use this MercadoLivre search scraper
- Visit the Actor page on Apify and click Try for free β no credit card required.
- In the Input tab, type one or more search terms (e.g.
fitness,pets,mouse gamer). - Set Max Items to control how many products to scrape per term β you're charged per product returned.
- Click Start and wait a few seconds for the run to finish.
- Open the Output tab or download the dataset as JSON, CSV, Excel, or HTML.
To trigger a run via the Apify API:
curl-X POST \"https://api.apify.com/v2/acts/rise-and-code~apify-mercadolivre-search/runs?token=<YOUR_TOKEN>"\-H"Content-Type: application/json"\-d'{"searchTerms": ["fitness", "pets"],"maxItems": 100}'
Input
Configure the Actor in the Input tab or via JSON.
| Field | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | ["pets"] | Required. One or more search terms. Spaces are converted to dashes automatically. |
maxItems | integer | 50 | Maximum products to scrape per search term (50β10000). |
Example input:
{"searchTerms":["fitness","pets"],"maxItems":100}
Output
One dataset record is pushed per product listing. Download the dataset as JSON, CSV, Excel, or HTML from the Output tab or via the Apify API.
Output example
[{"searchTerm":"carregador celular","position":1,"productId":"MLB178925","itemId":"MLB3456789012","title":"Carregador Turbo 65W USB-C compatΓvel com Samsung","url":"https://www.mercadolivre.com.br/p/MLB178925","thumbnail":"https://http2.mlstatic.com/D_NQ_NP_123456-MLB789.jpg","seller":"Loja TechBrasil","isOfficialStore":true,"brand":"Samsung","price":89.9,"originalPrice":129.9,"currency":"BRL","discountPercentage":30,"installments":"ou 12x R$ 7,49 sem juros","coupon":"Cupom 5% OFF","rating":4.8,"ratingCount":3627,"shipping":"Frete grΓ‘tis","isFull":true,"highlight":"MAIS VENDIDO","isSponsored":false,"isInternational":false,"category":"MLB-CELL_PHONE_CHARGERS","scrapedAt":"2026-04-28T12:00:00.000Z"}//...]
Output fields
| Field | Type | Description |
|---|---|---|
searchTerm | string | The search term that produced this result |
position | number | 1-based position in search results (across pages) |
productId | string | null | Catalog/product-group ID (e.g. MLB178925). Groups all seller offers for the same product. null for listings not linked to a catalog entry. |
itemId | string | null | Individual listing ID (e.g. MLB3456789012). Unique per seller offer β equivalent to the wid parameter in the card URL. |
title | string | Product title |
url | string | Product page URL |
thumbnail | string | null | Product image URL |
seller | string | null | Seller or official store name |
isOfficialStore | boolean | Whether the seller carries the "Loja oficial" (official store) badge |
brand | string | null | Product brand (e.g. "Samsung"), from the page's JSON-LD. null for listings without a catalog/JSON-LD entry. |
price | number | null | Current price in BRL |
originalPrice | number | null | Original price before discount |
currency | string | Always "BRL" |
discountPercentage | number | null | Discount percentage (e.g. 30) |
installments | string | null | Instalment text |
coupon | string | null | Coupon badge on the card (e.g. "Cupom 5% OFF"). null when no coupon is offered. |
rating | number | null | Average user rating (0β5) |
ratingCount | number | null | Number of user ratings (e.g. 3627), from the page's JSON-LD. null when unavailable. |
shipping | string | null | Shipping label (e.g. "Frete grΓ‘tis", "ChegarΓ‘ grΓ‘tis amanhΓ£") |
isFull | boolean | Whether the listing ships from a MercadoLivre fulfillment center (the FULL badge) |
highlight | string | null | Badge text (e.g. "MAIS VENDIDO") |
isSponsored | boolean | Whether the listing is a paid ad |
isInternational | boolean | Whether the product is sold by a cross-border (international) merchant, indicated by the CBT badge on the card |
category | string | null | MercadoLivre category ID (e.g. "MLB-CELL_PHONE_CHARGERS"), extracted from the page's embedded state JSON. May be null if unavailable. |
scrapedAt | string | ISO 8601 timestamp of when the record was scraped |
How much does it cost to scrape MercadoLivre?
This Actor uses Apify's pay-per-event pricing: you pay fixed prices for what the Actor does, and you are not charged separately for Apify platform usage (compute, bandwidth, or other infrastructure). There are just two charges:
| Event | Price | When it applies |
|---|---|---|
| Per search | $0.04 | Once for each search term started |
| Per result | $0.001 ($1.00 / 1,000 items) | For each product returned to the dataset |
The per-search fee covers the fixed infrastructure every search relies on β premium residential IPs and the compute to reliably load and parse results β and applies on each term search starts.
Examples:
- One search term returning 50 products β
$0.04 + 50 Γ $0.001 = $0.09 - Two search terms returning 50 products each β
2 Γ $0.04 + 2 Γ 50 Γ $0.001 = $0.18
Apify's free plan includes $5 of free usage per month β enough to try the Actor without paying anything.
Tips to keep costs low
- Set
maxItemsto only what you need β you pay per product returned. - Each search term started incurs the per-search fee even if it returns few or no products, so prefer specific terms you know have matching listings.
FAQ
Is it legal to scrape MercadoLivre?
This Actor only collects publicly available product listing data β the same information visible to any visitor without logging in. No private user data is collected. Always comply with MercadoLivre's Terms of Service and applicable local laws. Do not use scraped data in ways that compete unfairly with MercadoLivre or its sellers.
Do I need an API key or MercadoLivre account?
No. The Actor works without any MercadoLivre credentials. You only need a free Apify account to run it.
Can I monitor prices on a schedule?
Yes. Use Apify Schedules to run the Actor automatically (e.g. daily) and store each run's dataset, then compare results over time to build price history.
Some fields come back as null β is that expected?
Yes. Not every listing includes all fields. For example, rating only appears when the product has reviews, and originalPrice only when a discount is active. brand and ratingCount are only available for listings tied to a product catalog entry, so individual seller offers and ads often leave them null. Missing fields are set to null rather than omitted so the schema is always consistent.
The scraper got bot-blocked β what can I do?
Blocks are rare: every run uses premium residential IPs and automatic retries to keep success rates high. If a run still comes back empty or partial, simply run it again β transient blocks usually clear on a retry.
Changelog
2026-06-29
- Fixed
sellerβ stripped the leading"Por "prefix from seller names (e.g."Por Samsung"now returns"Samsung").
2026-06-26
- Added
couponβ coupon badge text on the card (e.g."Cupom 5% OFF"). - Added
brandβ product brand (e.g."Samsung"). - Added
ratingCountβ number of user ratings (e.g.3627). - Added
isOfficialStoreβ whether the seller carries the "Loja oficial" (official store) badge. - Added
isFullβ whether the listing ships from a MercadoLivre fulfillment center (the FULL badge). - Removed
soldCountβ MercadoLivre's current search layout no longer exposes a sold/review count on the card. - Fixed
rating,discountPercentage,shipping,highlightandinstallments, which had stopped populating after MercadoLivre changed its card markup.
Support
If you encounter a bug or have any suggestion for this Actor or for a new one, please feel free to reach us at contact.riseandcode@gmail.com and we'll look into it ASAP. We respond to emails in English πΊπΈ and Portuguese π§π·.
