Mercado Libre Listings Scraper avatar

Mercado Libre Listings Scraper

Pricing

from $2.00 / 1,000 result items

Go to Apify Store
Mercado Libre Listings Scraper

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

karamelo

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

8

Monthly active users

2 days ago

Last modified

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 recordPrice
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.

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

  1. Open the Actor in Apify Console.
  2. Enter the product or query in keyword.
  3. Select one of the 18 marketplaces in country.
  4. Choose sort; use relevance to keep Mercado Libre's default order.
  5. Set maxPages.
  6. Use promoted to include or exclude sponsored results.
  7. To enrich listings, enable extractProductDetails and set maxProductDetails.
  8. 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

FieldTypeRequiredDefaultDescription
keywordstringYesiphoneProduct name or search phrase.
countrystringYesArgentina URLBase URL of one supported country marketplace.
sortstringNorelevanceListing order: relevance, price_asc, price_desc, or newest.
maxPagesintegerNo1Number of result pages to process, from 1 to 50.
promotedbooleanNotrueInclude sponsored listings. Set to false for organic-only results.
extractProductDetailsbooleanNofalseAfter all listings are saved, append enriched product records.
maxProductDetailsintegerNo10Maximum product pages to enrich, capped by the number of unique extracted listings.
includeReviewsbooleanNotrueInclude reviews found on enriched product pages.
includeQuestionsbooleanNotrueInclude questions and answers found on enriched product pages.
includeVariationsbooleanNotrueInclude product variations found on enriched product pages.
proxyConfigurationobjectNoApify Residential ProxyStandard 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.

CountryISOExact country value
ArgentinaARhttps://listado.mercadolibre.com.ar/
BoliviaBOhttps://listado.mercadolibre.com.bo/
BrazilBRhttps://lista.mercadolivre.com.br/
ChileCLhttps://listado.mercadolibre.cl/
ColombiaCOhttps://listado.mercadolibre.com.co/
Costa RicaCRhttps://listado.mercadolibre.co.cr/
Dominican RepublicDOhttps://listado.mercadolibre.com.do/
EcuadorEChttps://listado.mercadolibre.com.ec/
GuatemalaGThttps://listado.mercadolibre.com.gt/
HondurasHNhttps://listado.mercadolibre.com.hn/
MexicoMXhttps://listado.mercadolibre.com.mx/
NicaraguaNIhttps://listado.mercadolibre.com.ni/
PanamaPAhttps://listado.mercadolibre.com.pa/
ParaguayPYhttps://listado.mercadolibre.com.py/
PeruPEhttps://listado.mercadolibre.com.pe/
El SalvadorSVhttps://listado.mercadolibre.com.sv/
UruguayUYhttps://listado.mercadolibre.com.uy/
VenezuelaVEhttps://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

FieldTypeMeaning
modestringsearch for a listing record or product for an enriched product record.
thumbnailUrlstringPrimary image URL shown in search.
currencystringMarketplace currency code.
currentPricestringVisible current price without the currency symbol.
previousPricestringFormer price when shown.
discountstringVisible discount label.
vehicleYearstringVehicle model year, when applicable.
vehicleMileagestringVehicle mileage, when applicable.
downPaymentstringVisible initial payment for vehicle financing.
transmissionstringVehicle transmission, when applicable.
titlestringProduct title.
installmentsstringVisible installment terms.
promotionsstringCoupons and promotions joined into one value.
soldQuantityinteger or nullPublic sold-quantity signal.
freeShippingboolean or nullExplicit free-shipping status.
inStockboolean or nullStock status exposed in page metadata.
sellerNamestringSeller or store name.
isOfficialStorebooleanOfficial-store indicator.
skustringBest available stable product or listing identifier.
publicationIdstringMercado Libre publication identifier, also known as the listing/publication ID.
catalogProductIdstringCatalog product identifier.
userProductIdstringSeller product identifier.
variationIdstringListing variation identifier.
resultTypestringMarketplace result classification.
isPricePerQuantityboolean or nullQuantity-pricing indicator.
isInternationalPurchasebooleanInternational-purchase indicator.
searchKeywordstringKeyword used for the search.
ratingstring or numberVisible aggregate rating.
reviewCountstring or integerVisible number of ratings or reviews.
resultPositionintegerOne-based position across pages.
totalResultsstringVisible total result count or label.
productUrlstringDirect Mercado Libre product or listing URL.
shippingstringDelivery and shipping text.
highlightsstringCommercial badges and highlights.
availableInstringVisible variation availability.
shipsFromstringVisible shipping origin.
brandstringProduct brand.
categoryIdstringMercado Libre category identifier.
domainIdstringMercado Libre product-domain identifier.
sellerIdstringMercado Libre seller identifier.
sellerReputationstring or nullSeller reputation level when publicly available on enriched product records.
verticalstringMarketplace vertical label.
verticalIdstringMarketplace vertical identifier.
locationstringSeller or listing location.
scrapedAtstringISO 8601 extraction timestamp.
isPromotedbooleanWhether the result is sponsored. This field is included only when promoted is enabled.
countryCodestring or nullMarketplace country code on product records.
siteIdstring or nullMercado Libre site identifier.
productIdstring or nullProduct identifier extracted from the product URL.
descriptionstring or nullPlain-text listing description from the product page.
imagesarrayProduct image URLs.
availabilitystring or nullProduct availability.
conditionstring or nullNormalized condition: new, used, or refurbished.
ratingCountinteger or nullNumber of product ratings.
sellerPowerStatusstring or nullPower seller status.
officialStoreNamestring or nullOfficial store name.
attributesarray or nullTechnical product attributes as name/value pairs.
variationsarray or nullProduct variations when requested.
reviewsarray or nullPublic product reviews when requested.
questionsarray or nullPublic product questions and answers when requested.
returnPolicystring or nullReturn policy text when available.
shippingDetailsobject or nullStructured 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 os
from apify_client import ApifyClient
client = 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 without
promoted 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 promoted to false for organic ranking analysis.
  • Keep scrapedAt, searchKeyword, resultPosition, and productUrl in historical snapshots.
  • Interpret currentPrice together with currency; do not combine currencies without conversion.
  • Deduplicate with identifiers while remembering that listings, catalog products, and variations are separate entities.
  • Treat empty strings and null values 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.
  • maxProductDetails cannot 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.