Mercado Libre Listings Scraper
Pricing
from $2.00 / 1,000 result items
Mercado Libre Listings Scraper
Extract Mercado Libre search listings across Latin America. Get products, prices, reviews, seller details, ratings, shipping, and detailed product enrichment.
Pricing
from $2.00 / 1,000 result items
Rating
0.0
(0)
Developer
karamelo
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
8
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Mercado Libre product data across Latin America
Mercado Libre Listings Scraper turns public search results from 18 Latin American Mercado Libre marketplaces into structured records ready for price monitoring, market research, seller analysis, catalog work, and data pipelines.
Enter a keyword, choose a country marketplace and sort order, set a page limit, and decide whether sponsored results should be included. The Actor always saves matching search listings first. Optional product detail enrichment then adds publicly available product information to a capped number of those results, including descriptions, images, attributes, seller details, availability, and condition. Vehicle listings can also include year, mileage, transmission, and down payment when those values are publicly shown.
Actor ID:
karamelo/mercado-libre-listings-scraper
Coverage: Argentina, Bolivia, Brazil, Chile, Colombia, Costa Rica, Dominican Republic, Ecuador, Guatemala, Honduras, Mexico, Nicaragua, Panama, Paraguay, Peru, El Salvador, Uruguay, and Venezuela
Exports: JSON, CSV, Excel, XML, RSS, and JSONL through the Apify Dataset
Pricing
This Actor uses pay-per-result pricing. Platform usage is included.
| Output record | Price |
|---|---|
| Search listing | $2.00 per 1,000 records |
| Enriched product detail | $6.00 per 1,000 records |
Every saved search record is charged as a search listing. When product detail enrichment is enabled, each additional saved product record is charged at the enriched product-detail rate. For example, 1,000 search listings and 100 enriched product records are charged as 1,000 search listings plus 100 enriched product details.
What data does it extract?
For each visible search result, the Actor can collect:
- product title, image, brand, and direct Mercado Libre public URL;
- current price, previous price, currency, and discount;
- visible coupons, promotions, and installment terms;
- sold quantity and free-shipping signals;
- delivery text, availability, stock status, and shipping origin;
- seller name, seller ID, official-store status, and location;
- rating, review count, and commercial highlights;
- listing, catalog product, user product, variation, and SKU identifiers;
- category, domain, vertical, result type, and ranking position;
- quantity-pricing and international-purchase indicators;
- vehicle year, mileage, transmission, and down payment where relevant.
Field availability depends on the category, listing, country, and information Mercado Libre exposes on the search page. Missing text values are returned as empty strings; unavailable booleans and counts can be null.
Every record includes mode. Search listing records use "search"; enriched product detail records use "product". Product records preserve the values already extracted from their source listing and add detail-page data without replacing existing listing fields such as sellerName.
Search records omit product-detail-only fields. Those fields appear only on records with mode: "product", so consumers can filter on mode before reading product enrichment columns.
Common use cases
Price, discount, and promotion monitoring
Schedule the same search and compare currentPrice, previousPrice, discount, promotions, and scrapedAt over time.
Competitive intelligence and share of search
Combine sellerName, sellerId, sellerReputation, sellerPowerStatus, isOfficialStore, resultPosition, soldQuantity, and rating to study seller visibility and marketplace competition.
Product and demand research
Use searchKeyword, totalResults, categoryId, domainId, and highlights to identify active categories, promoted offers, and public demand signals.
Catalog matching and deduplication
Use sku, publicationId, catalogProductId, userProductId, and variationId to connect related records and maintain consistent history.
Analytics and AI workflows
Export results to spreadsheets, databases, BI tools, alerting systems, RAG pipelines, or autonomous agents. Keep scrapedAt and productUrl with each record for traceability.
Quick start
- Open the Actor in Apify Console.
- Enter the product or query in
keyword. - Select one of the 18 marketplaces in
country. - Choose
sort; userelevanceto keep Mercado Libre's default order. - Set
maxPages. - Use
promotedto include or exclude sponsored results. - To enrich listings, enable
extractProductDetailsand setmaxProductDetails. - Click Start and open the Dataset tab when the run finishes.
Example input for Argentina:
{"keyword": "iphone","country": "https://listado.mercadolibre.com.ar/","sort": "relevance","maxPages": 3,"promoted": false,"extractProductDetails": true,"maxProductDetails": 10}
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | Yes | iphone | Product name or search phrase. |
country | string | Yes | Argentina URL | Base URL of one supported country marketplace. |
sort | string | No | relevance | Listing order: relevance, price_asc, price_desc, or newest. |
maxPages | integer | No | 1 | Number of result pages to process, from 1 to 50. |
promoted | boolean | No | true | Include sponsored listings. Set to false for organic-only results. |
extractProductDetails | boolean | No | false | After all listings are saved, append enriched product records. |
maxProductDetails | integer | No | 10 | Maximum product pages to enrich, capped by the number of unique extracted listings. |
includeReviews | boolean | No | true | Include reviews found on enriched product pages. |
includeQuestions | boolean | No | true | Include questions and answers found on enriched product pages. |
includeVariations | boolean | No | true | Include product variations found on enriched product pages. |
proxyConfiguration | object | No | Apify Residential Proxy | Standard Apify Proxy settings. Custom proxy URLs are rejected. |
relevance uses Mercado Libre's standard ranking and does not add a sort marker to the search. Choose price_asc for the lowest prices first, price_desc for the highest prices first, or newest for the newest listings first.
Supported marketplaces
The country input takes the complete URL, not an ISO code.
| Country | ISO | Exact country value |
|---|---|---|
| Argentina | AR | https://listado.mercadolibre.com.ar/ |
| Bolivia | BO | https://listado.mercadolibre.com.bo/ |
| Brazil | BR | https://lista.mercadolivre.com.br/ |
| Chile | CL | https://listado.mercadolibre.cl/ |
| Colombia | CO | https://listado.mercadolibre.com.co/ |
| Costa Rica | CR | https://listado.mercadolibre.co.cr/ |
| Dominican Republic | DO | https://listado.mercadolibre.com.do/ |
| Ecuador | EC | https://listado.mercadolibre.com.ec/ |
| Guatemala | GT | https://listado.mercadolibre.com.gt/ |
| Honduras | HN | https://listado.mercadolibre.com.hn/ |
| Mexico | MX | https://listado.mercadolibre.com.mx/ |
| Nicaragua | NI | https://listado.mercadolibre.com.ni/ |
| Panama | PA | https://listado.mercadolibre.com.pa/ |
| Paraguay | PY | https://listado.mercadolibre.com.py/ |
| Peru | PE | https://listado.mercadolibre.com.pe/ |
| El Salvador | SV | https://listado.mercadolibre.com.sv/ |
| Uruguay | UY | https://listado.mercadolibre.com.uy/ |
| Venezuela | VE | https://listado.mercadolibre.com.ve/ |
Run one task per country when comparing markets. This keeps each currency, domain, ranking, result count, and marketplace condition separate.
Output example
{"mode": "search","thumbnailUrl": "https://http2.mlstatic.com/D_NQ_NP_EXAMPLE-O.webp","currency": "ARS","currentPrice": "89999","previousPrice": "119999","discount": "25% OFF","vehicleYear": "","vehicleMileage": "","downPayment": "","transmission": "","title": "Example iPhone","installments": "6 interest-free installments","promotions": "","soldQuantity": 25,"freeShipping": true,"inStock": null,"sellerName": "EXAMPLE STORE","isOfficialStore": true,"sku": "MLA987654321","publicationId": "MLA123456789","catalogProductId": "MLA987654321","userProductId": "MLAU555","variationId": "MLA-VAR-1","resultType": "ORGANIC","isPricePerQuantity": false,"isInternationalPurchase": false,"searchKeyword": "iphone","rating": "4.8","reviewCount": 320,"resultPosition": 1,"totalResults": "96","productUrl": "https://www.mercadolibre.com.ar/example-product/p/MLA987654321","shipping": "Free delivery","highlights": "","availableIn": "","shipsFrom": "","brand": "Example Brand","categoryId": "MLA1000","domainId": "MLA-HEADPHONES","sellerId": "SELLER-7","vertical": "CORE","verticalId": "CORE","location": "Buenos Aires","scrapedAt": "2026-08-11T10:00:00.000Z",}
Output fields
| Field | Type | Meaning |
|---|---|---|
mode | string | search for a listing record or product for an enriched product record. |
thumbnailUrl | string | Primary image URL shown in search. |
currency | string | Marketplace currency code. |
currentPrice | string | Visible current price without the currency symbol. |
previousPrice | string | Former price when shown. |
discount | string | Visible discount label. |
vehicleYear | string | Vehicle model year, when applicable. |
vehicleMileage | string | Vehicle mileage, when applicable. |
downPayment | string | Visible initial payment for vehicle financing. |
transmission | string | Vehicle transmission, when applicable. |
title | string | Product title. |
installments | string | Visible installment terms. |
promotions | string | Coupons and promotions joined into one value. |
soldQuantity | integer or null | Public sold-quantity signal. |
freeShipping | boolean or null | Explicit free-shipping status. |
inStock | boolean or null | Stock status exposed in page metadata. |
sellerName | string | Seller or store name. |
isOfficialStore | boolean | Official-store indicator. |
sku | string | Best available stable product or listing identifier. |
publicationId | string | Mercado Libre publication identifier, also known as the listing/publication ID. |
catalogProductId | string | Catalog product identifier. |
userProductId | string | Seller product identifier. |
variationId | string | Listing variation identifier. |
resultType | string | Marketplace result classification. |
isPricePerQuantity | boolean or null | Quantity-pricing indicator. |
isInternationalPurchase | boolean | International-purchase indicator. |
searchKeyword | string | Keyword used for the search. |
rating | string or number | Visible aggregate rating. |
reviewCount | string or integer | Visible number of ratings or reviews. |
resultPosition | integer | One-based position across pages. |
totalResults | string | Visible total result count or label. |
productUrl | string | Direct Mercado Libre product or listing URL. |
shipping | string | Delivery and shipping text. |
highlights | string | Commercial badges and highlights. |
availableIn | string | Visible variation availability. |
shipsFrom | string | Visible shipping origin. |
brand | string | Product brand. |
categoryId | string | Mercado Libre category identifier. |
domainId | string | Mercado Libre product-domain identifier. |
sellerId | string | Mercado Libre seller identifier. |
sellerReputation | string or null | Seller reputation level when publicly available on enriched product records. |
vertical | string | Marketplace vertical label. |
verticalId | string | Marketplace vertical identifier. |
location | string | Seller or listing location. |
scrapedAt | string | ISO 8601 extraction timestamp. |
isPromoted | boolean | Whether the result is sponsored. This field is included only when promoted is enabled. |
countryCode | string or null | Marketplace country code on product records. |
siteId | string or null | Mercado Libre site identifier. |
productId | string or null | Product identifier extracted from the product URL. |
description | string or null | Plain-text listing description from the product page. |
images | array | Product image URLs. |
availability | string or null | Product availability. |
condition | string or null | Normalized condition: new, used, or refurbished. |
ratingCount | integer or null | Number of product ratings. |
sellerPowerStatus | string or null | Power seller status. |
officialStoreName | string or null | Official store name. |
attributes | array or null | Technical product attributes as name/value pairs. |
variations | array or null | Product variations when requested. |
reviews | array or null | Public product reviews when requested. |
questions | array or null | Public product questions and answers when requested. |
returnPolicy | string or null | Return policy text when available. |
shippingDetails | object or null | Structured free-shipping status and shipping text. |
soldQuantity can be rounded or summarized by Mercado Libre. totalResults preserves the visible value and does not guarantee that every matching result can be exported.
Use the Actor through the Apify API
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('karamelo/mercado-libre-listings-scraper').call({keyword: 'iphone',country: 'https://listado.mercadolibre.com.ar/',sort: 'relevance',maxPages: 3,promoted: false,extractProductDetails: true,maxProductDetails: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('karamelo/mercado-libre-listings-scraper').call(run_input={'keyword': 'iphone','country': 'https://listado.mercadolibre.com.ar/','sort': 'relevance','maxPages': 3,'promoted': False,'extractProductDetails': True,'maxProductDetails': 10,})items = list(client.dataset(run['defaultDatasetId']).iterate_items())print(items)
cURL
curl -X POST \"https://api.apify.com/v2/acts/karamelo~mercado-libre-listings-scraper/run-sync-get-dataset-items?format=json&clean=true" \-H "Authorization: Bearer APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword": "iphone","country": "https://listado.mercadolibre.com.ar/","sort": "relevance","maxPages": 3,"promoted": false,"extractProductDetails": true,"maxProductDetails": 10}'
MCP and agent workflows
Expose the Actor to an MCP-compatible client through Apify's hosted MCP server:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=karamelo/mercado-libre-listings-scraper"}}}
The hosted server requests Apify authorization when the client first connects. Keep API tokens outside source files and shared configuration.
Example agent request:
Search for "gaming laptop" on Mercado Libre Mexico, process two pages withoutpromoted listings, and compare current price, discount, installments, shipping,rating, seller, and product URL.
Automation and integrations
- Use Schedules to capture recurring price and ranking snapshots.
- Use Webhooks to notify another system when a run succeeds or fails.
- Export Dataset records to Google Sheets, Excel, databases, or data warehouses.
- Connect the Actor to Make, Zapier, BI tools, or AI-agent workflows.
Tips for consistent results
- Begin with one or two pages to confirm that the selected marketplace exposes the fields you need.
- Set
promotedtofalsefor organic ranking analysis. - Keep
scrapedAt,searchKeyword,resultPosition, andproductUrlin historical snapshots. - Interpret
currentPricetogether withcurrency; do not combine currencies without conversion. - Deduplicate with identifiers while remembering that listings, catalog products, and variations are separate entities.
- Treat empty strings and
nullvalues as unavailable data, not zero values. - Use a reasonable schedule and page limit for your research goal.
Limitations
- Product detail enrichment is optional and only visits URLs from listings extracted in the same run.
maxProductDetailscannot produce more product records than the number of unique listing URLs extracted.- Slow or unavailable product pages are skipped after bounded attempts so they do not hold up the complete run.
- Reviews, questions, variations, descriptions, and exact inventory depend on what Mercado Libre exposes publicly on each product page.
- Sold quantity, total results, shipping, and delivery estimates can be rounded or summarized.
- Category, location, availability, experiments, and marketplace layout changes affect which fields are visible.
- A page can return fewer unique records when Mercado Libre hides, duplicates, or removes results.
- Set a timeout of at least 100 seconds for the selected search and enrichment scope.
FAQ
Which Mercado Libre countries are supported?
All 18 marketplaces listed above are supported. Supply the complete marketplace URL through country.
Can I compare the same query across countries?
Yes. Run one task per country, then combine the datasets while retaining currency, searchKeyword, scrapedAt, and productUrl.
Can it extract coupons and promotions?
Yes, when they appear in public search data. They are combined in promotions.
Does it return sold quantity?
Yes, through soldQuantity when Mercado Libre exposes the signal. The value can be rounded.
Can promoted listings be removed?
Yes. Set promoted to false. Included sponsored listings are marked with isPromoted: true.
Can it extract product details?
Yes. Set extractProductDetails to true and choose maxProductDetails. The Actor saves every search listing first, then appends up to that many product records. Use mode to distinguish the two record types.
How do I create a price monitor?
Save a task with stable input, schedule recurring runs, and compare price fields and scrapedAt by publicationId, catalogProductId, or sku.
Can I download JSON results?
Yes. Select JSON in the Dataset export options, or request JSON through the Dataset items API.
Can I download CSV files?
Yes. Select CSV in the Dataset export options, or request CSV through the Dataset items API.
Can I download Excel files?
Yes. Select Excel in the Dataset export options, or request Excel through the Dataset items API.
Responsible use
Collect only public information and follow applicable laws, privacy rules, marketplace terms, and reasonable request rates. Avoid collecting unnecessary personal data. This independent Actor is not affiliated with, sponsored by, or endorsed by Mercado Libre or Apify.
Support
For a reproducible support request, include the marketplace, maxPages, promoted, product detail settings, run ID, and the expected field. Do not share tokens, cookies, proxy URLs, or credentials.