MercadoLibre Property Scraper - LatAm Real Estate Listings avatar

MercadoLibre Property Scraper - LatAm Real Estate Listings

Pricing

from $1.60 / 1,000 property listings

Go to Apify Store
MercadoLibre Property Scraper - LatAm Real Estate Listings

MercadoLibre Property Scraper - LatAm Real Estate Listings

Property listings from MercadoLibre in Venezuela, Uruguay, Paraguay and Guatemala. Asking price in the currency the seller quoted, dormitorios, baños, m² cubiertos, property type, venta or alquiler, departamento and ciudad, photos and a direct link. No code.

Pricing

from $1.60 / 1,000 property listings

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

5 days ago

Last modified

Share

MercadoLibre Property Scraper - LatAm Real Estate Listings 🏠

SIÁN Agency Store Portal Inmobiliario Scraper MercadoLibre Product Scraper Zonaprop Scraper

🎉 336,756 live property listings, including the 150,707 in Venezuela no other dataset reaches

For analysts, agencies and portals working Venezuela, Uruguay, Paraguay and Guatemala


🔎 What is the MercadoLibre Property Scraper — and when should you use it?

The MercadoLibre Property Scraper turns public MercadoLibre property listings in Venezuela, Uruguay, Paraguay and Guatemala into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

Use it when you need: Latin American sale and rental listings as rows. Each carries the asking price in the currency the seller actually quoted — dollars and local currency sit side by side in all four markets — plus a dollar figure converted at a live rate that is stamped on the row with its source. Bedrooms, bathrooms, covered area and price per square metre are separate number fields, and the row also carries the property type, whether it is for sale or to rent, the department and city, the cover photo and the whole photo set. Open each listing as well and the row gains the seller's own description, the complete attribute table with age, orientation, private area and parking, every photo at full size, and the map coordinates. Venezuela is where this matters most: 150,707 live listings and no other property data product, because the country's own portals are gone.

Use something else when: the property is not in Venezuela, Uruguay, Paraguay or Guatemala. Use Portal Inmobiliario Scraper for Chilean property, the MercadoLibre market this one does not offer. Use Encuentra24 Scraper for Central America and the Caribbean, including a far deeper Guatemalan corpus. Use Zonaprop Scraper for Argentina, the largest property market in the region. Four MercadoLibre markets only. Argentina, Brazil, Mexico and Chile are not offered. Bolivia is deliberately absent: its entire property section held 62 listings when this was built. There is no price, bedroom, area or sort filter and no paging, because MercadoLibre's robots file asks automated readers not to request those addresses. Depth comes from descending the portal's own place index instead, and every one of those values still arrives on the row for filtering afterwards. Seasonal and holiday rent exists in Uruguay only. The portal lists what is currently advertised, so there is no sold-price history.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/mercadolibre-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want MercadoLibre property listings and asking prices across four Latin American markets using the Apify Actor `sian.agency/mercadolibre-property-scraper`.
Use it when I need: Latin American sale and rental listings as rows. Each carries the asking price in the currency the seller actually quoted — dollars and local currency sit side by side in all four markets — plus a dollar figure converted at a live rate that is stamped on the row with its source. Bedrooms, bathrooms, covered area and price per square metre are separate number fields, and the row also carries the property type, whether it is for sale or to rent, the department and city, the cover photo and the whole photo set. Open each listing as well and the row gains the seller's own description, the complete attribute table with age, orientation, private area and parking, every photo at full size, and the map coordinates. Venezuela is where this matters most: 150,707 live listings and no other property data product, because the country's own portals are gone.
Don't use it when: the property is not in Venezuela, Uruguay, Paraguay or Guatemala — use portalinmobiliario-property-scraper or encuentra24-property-scraper or zonaprop-property-scraper instead.
How to call it: set `market` to `ve`, `uy`, `py` or `gt` — one market per run, because each MercadoLibre country site is its own marketplace with its own listings, place names and currency. Set `listingOperation` to `venta`, `alquiler` or, in Uruguay only, `alquiler-temporada`, and `propertyType` to one of `houses`, `apartments`, `land`, `offices`, `warehouses`, `farms`, `commercial-premises`, `rooms`, `buildings`, `townhouses`, `hotels`, `businesses`, `annexes`, `club-shares`, `garages`, `country-houses` or `other`, or leave it on `all`. Not every type exists in every market and a type the market does not publish is refused with the countries that do have it, rather than quietly returning the whole market. For location, name departments in `places` using their `<market>-<slug>` form such as `ve-distrito-capital` or `uy-maldonado`; the list is built from each portal's own place index and carries the listing count each place held. Leave it on `all` to sweep the market — when a place holds more than one request returns, the run descends into that place's own cities and neighbourhoods until `maxResults` is met. `includeDetails` opens each listing for its full record, for an extra charge per listing. To expand listings you already have, set `operation` to `detail` and pass whole listing addresses in `listingUrls`; to reproduce a search you built on the site, paste it into `searchUrls`.
Start with this input:
{
"operation": "search",
"market": "ve",
"propertyType": "apartments",
"listingOperation": "venta",
"places": [
"ve-distrito-capital"
],
"maxResults": 120
}
Ask me which of the four markets to read, whether they want listings for sale or to rent, which departments matter, and whether the full listing record is worth the extra per-listing charge, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • Pull apartments for sale in Distrito Capital, Venezuela and rank the neighbourhoods by median price per square metre.
  • Compare asking rents for two-bedroom apartments in Montevideo against Maldonado, in dollars, using the rate each row was converted at.
  • Sweep the whole Guatemalan property section and tell me which departments carry stock and what the median asking price is in each.

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/mercadolibre-property-scraper.md.

📋 Overview

In Venezuela, MercadoLibre is what is left after the national property portals went dark. In Uruguay, Paraguay and Guatemala it sits alongside them and carries stock they do not. This Actor reads all four markets with one parser, one set of field names and one dataset.

What you get:

  • ✅ Four markets, one schema: Venezuela (150,707 live listings), Uruguay (184,742), Guatemala (707) and Paraguay (600), counted from each portal's own result counter on 2026-09-13.
  • 💱 Currency read per listing: Venezuelan sellers quote dollars and bolívares side by side. Every row carries what the seller actually wrote, plus a USD column with the rate and its source stamped on the row.
  • 🎯 Rooms and area as numbers: dormitorios, baños, covered m² and total m² are read from each listing's attribute line into separate columns. Covered and total area never get mixed up, and nothing is guessed from the title.
  • 📐 Price per m² already computed: sort a department by it the moment the run finishes.
  • 🌍 Enums read from the portal, per market: 17 property types and 66 departments, every one of them taken from MercadoLibre's own filter index rather than guessed.
  • 💰 Charged per row returned: failed and empty results are never billed.
  • ✨ Details on demand: switch them on and each listing brings its full seller description, complete attribute table, every photo and map coordinates.

✨ Features

  • 🌎 Market picker: Venezuela, Uruguay, Paraguay or Guatemala, one per run, each with its live listing count beside it.
  • 🏠 17 property types: casas, departamentos, terrenos, oficinas, galpones, locales, quintas, campos, cocheras, townhouses and more — each labelled with the countries that publish it.
  • 🤝 Venta, alquiler, or both: plus alquiler temporada, the seasonal-rent section Uruguay runs on its coast.
  • 📍 66 departments: every state and department in the four markets, each showing how many listings it held.
  • 🧭 Automatic depth: a department bigger than one request is descended into its own cities and neighbourhoods.
  • 🔗 Paste your own addresses: bring MercadoLibre search or listing URLs and the Actor reads those instead.
  • 📄 Detail mode: full seller description, complete attribute table, every photo, map coordinates.
  • 🆔 Stable listing IDs: MLV, MLU, MPY and MGT ID spaces, so two runs diff cleanly.
  • 📊 Run report: an HTML summary with the numbers, the failures and what the run cost.

🎬 Quick Start

Pick a market, pick a property type, pick venta or alquiler, and press Start. Everything else has a working default, so a bare run returns every property type for sale in Venezuela. Results land in the dataset as flat rows you can export as JSON, CSV or Excel.

curl -X POST https://api.apify.com/v2/acts/sian.agency~mercadolibre-property-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"operation":"search","market":"ve","propertyType":"houses","listingOperation":"venta","maxResults":100}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose your market

Venezuela, Uruguay, Paraguay or Guatemala. The live listing count sits beside each name, so you know what you are stepping into.

Step 2: Narrow it down

Property type, venta or alquiler, and one or more departments. Leave the place on "The whole market" to sweep everything.

Step 3: Set a maximum and press Start

The run stops at your number. Switch on details if you want the seller's description and the photos.

That's it! In a couple of minutes, you'll have:

  • A table of listings with prices, rooms, area and place
  • Price per m² already worked out for every row
  • Direct links and stable IDs for the ones worth following up

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch or detail
marketstringNove, uy, py or gt
propertyTypestringNoall, houses, apartments, land, offices and 13 more
listingOperationstringNoall, venta, alquiler, alquiler-temporada
placesarrayNoDepartments to sweep, or ["all"] for the whole market
maxResultsintegerNoStop after this many listings (1–20,000)
includeDetailsbooleanNoOpen each listing's own page for the full record
searchUrlsarrayNoYour own MercadoLibre search addresses
listingUrlsarrayNoListing addresses, for the detail operation

Example:

{
"operation": "search",
"market": "uy",
"propertyType": "apartments",
"listingOperation": "venta",
"places": ["uy-montevideo", "uy-maldonado"],
"maxResults": 500
}

Detail mode:

{
"operation": "detail",
"listingUrls": [
"https://casa.mercadolibre.com.uy/MLU-700095975-casa-en-venta-_JM"
]
}

📤 Output

Results are saved to the Apify dataset with 44 fields, including:

FieldTypeDescription
thumbnailstringCover photo
propertyTitlestringListing title as written
pricenumberAsking price or monthly rent
currencystringWhat the seller actually quoted
priceUsdnumberConverted to dollars, with fxRate and fxSource
pricePerM2numberPrice divided by covered area
bedroomsintegerDormitorios
bathroomsintegerBaños
coveredAreaM2numberBuilt area in m²
totalAreaM2numberPlot area in m²
propertyTypeLabelstringThe portal's own wording, e.g. "Casa en venta"
listingOperationstringventa, alquiler or alquiler-temporada
department / citystringDepartamento and the place inside it
latitude / longitudenumberMap position, with details on
propertyUrlstringDirect link
listingIdstringMLV / MLU / MPY / MGT, stable across runs

Example:

{
"thumbnail": "https://http2.mlstatic.com/D_NQ_NP_797991-MLV108317477375_032026-O.webp",
"listingId": "MLV1025378068",
"propertyUrl": "https://casa.mercadolibre.com.ve/MLV-1025378068-casa-con-amplio-frente-maxima-seguridad-dos-pisos-con-excelente-vista-_JM",
"propertyTitle": "Casa Con Amplio Frente Máxima Seguridad Dos Pisos Con Excelente Vista",
"headline": "Casa en venta",
"market": "ve",
"marketName": "Venezuela",
"siteCode": "MLV",
"propertyType": "houses",
"propertyTypeLabel": "Casa en venta",
"listingOperation": "venta",
"domainId": "MLV-INDIVIDUAL_HOUSES_FOR_SALE",
"price": 222000,
"currency": "USD",
"priceUsd": 222000,
"bedrooms": 5,
"bathrooms": 5,
"coveredAreaM2": 350,
"pricePerM2": 634.29,
"attributesText": ["5 habitaciones", "5 baños", "350 m² cubiertos"],
"department": "Distrito Capital",
"city": "Caracas - Libertador (suroeste)",
"status": "success"
}

💼 Use Cases & Examples

1. Price Venezuelan property where no one else publishes data

A valuation analyst needs comparables in a country whose property portals went dark.

Input: market Venezuela, houses for sale, Distrito Capital Output: rows out of the 87,791 that department holds, each with price, currency, rooms and m² Use: the only structured Venezuelan property dataset available anywhere — no Apify Store rival reads any Venezuelan property portal.

2. Track the Uruguayan coast through a season

A holiday-rental operator wants to watch Punta del Este from May to December.

Input: market Uruguay, alquiler temporada, Maldonado and Rocha Output: roughly 15,000 seasonal listings, with asking rent against bedrooms and floor area Use: weekly runs diffed on listing ID show what came on, what moved price and what let.

3. Sweep a small market completely

A regional agency wants all of Guatemala, not a sample.

Input: market Guatemala, every property type, sale and rent together Output: the country's whole MercadoLibre property stock — 707 listings Use: a true before-and-after every week rather than a slice. Paraguay works the same way at 600.

4. Build a comparables table with m² prices already computed

A mortgage desk needs sortable comparables without cleaning text first.

Input: any department, houses for sale Output: price, currency, bedrooms, bathrooms, covered m², and pricePerM2 Use: sort, filter and band in a spreadsheet. No parsing of listing titles.

5. Feed a property portal or a CRM with fresh stock

A listings aggregator needs a nightly delta.

Input: the same market and department every night, on a schedule Output: stable listing IDs, direct links, cover photos, full photo sets with details on Use: diff on listingId to get new, changed and gone.

6. Map where a market's money actually is

A developer wants asking price plotted at neighbourhood resolution.

Input: any department with includeDetails on Output: latitude, longitude, full seller description and the complete attribute table Use: a heat map of asking price per m², block by block.

7. Watch a competitor's stock across two countries

An agency operating in Uruguay and Paraguay wants both in one table.

Input: two runs, one per market, into the same dataset Output: one set of field names across both, IDs that never collide (MLU against MPY) Use: portfolio reporting without reconciling two schemas.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/mercadolibre-property-scraper').call({
operation: 'search',
market: 'uy',
propertyType: 'apartments',
listingOperation: 'venta',
places: ['uy-montevideo'],
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/mercadolibre-property-scraper').call(
run_input={
'operation': 'search',
'market': 'gt',
'propertyType': 'all',
'listingOperation': 'all',
'maxResults': 707,
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['propertyTitle'], item['price'], item['currency'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~mercadolibre-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","market":"py","propertyType":"houses","listingOperation":"venta"}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: a weekly schedule
  2. HTTP Request: start the Actor with your market and departments
  3. Process: diff the rows on listingId against last week's dataset
  4. Action: write new and re-priced listings to your CRM, or send an alert

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 listings per run — every field, every market, same quality
  • No credit card required
  • Enough to see the schema and check a department before you commit
  • Unlimited listings per run, up to the size of the market you chose
  • Whole-market sweeps: Guatemala and Paraguay finish in a few hundred rows
  • Pay-per-result: only successful rows are charged, never failures or empty results

💰 Two events, and you only ever pay for the second one when you ask for it: Property Listing for each search row, Property Detail for each listing page you choose to open.

🔗 View current pricing


❓ Frequently Asked Questions

Q: Which MercadoLibre countries does this cover? A: Venezuela, Uruguay, Paraguay and Guatemala. Chilean property is Portal Inmobiliario and Argentina is Zonaprop.

Q: Why is Bolivia not on the list? A: Because it would not be honest to sell it. MercadoLibre Bolivia's entire property section held 62 listings when this Actor was built — 40 for sale and 22 to rent. If it grows, it will be added.

Q: How many listings do I get per run? A: As many as you ask for, up to the size of the market you chose. Each request returns 48 listings, and the Actor keeps going into deeper places until your maximum is reached or the place index runs out. Free Apify accounts are capped at 25 per run.

Q: Why is there no price or bedroom filter? A: MercadoLibre's robots.txt asks general crawlers not to request its price-range, sort, bedroom, bathroom and area addresses, and this Actor respects that. Every row comes back with price, currency, bedrooms, bathrooms and area as separate typed fields, so filtering in your spreadsheet or database takes one sort.

Q: Why does it not go past the first page of results? A: Same reason. The portal's pagination address is one of the forms its robots.txt asks crawlers not to request. Depth comes from the place index instead: the Actor descends from a department into its cities and neighbourhoods, which is exactly how the portal's own indexable structure is laid out.

Q: Are prices in local currency or dollars? A: Both, per row. The currency field carries what the seller actually quoted — dollars are common in all four markets and dominant in some. A separate USD field converts anything quoted locally at a live rate, and that rate and its source are stamped on the row.

Q: What does turning on details add? A: The complete seller description instead of the title, the full attribute table, every photo at full size, and the map coordinates. It costs one extra request per listing and bills the detail event once per listing.

Q: Can I paste my own search address? A: Yes. Paste a MercadoLibre property search address from any of the four markets and the Actor reads that instead of composing its own. Addresses carrying pagination or price-range tokens are refused with an explanation rather than quietly ignored.

Q: What happens if I pick a property type a market does not have? A: The run says so and returns no rows for it. MercadoLibre answers an unknown type segment with the whole corpus, so a type that was silently ignored would look exactly like a type that matched everything — and you would pay for thousands of rows that are not what you asked for.

Q: Do I pay for listings that fail? A: No. Rows are charged only after they are produced. Failed and empty results are never billed.

Q: Which listing IDs do I get? A: MercadoLibre's own, in each market's ID space — MLV for Venezuela, MLU for Uruguay, MPY for Paraguay, MGT for Guatemala. They are stable, so diffing two runs on the ID tells you what is new, what changed price and what has gone.

Q: What output formats are available? A: JSON, CSV and Excel, exported straight from the Apify dataset, or read over the API.


🐛 Troubleshooting

A run returns no rows

  • The combination may be genuinely empty. Widen the place, or set the property type to "Every property type".
  • Alquiler temporada exists in Uruguay only.
  • Check the place you picked belongs to the market you picked — mismatches are skipped and named in the run log.

A pasted address is refused

  • It carries one of the portal's pagination, sort or price-range tokens. Paste the plain department or city address instead; the Actor walks the place index from there.

Fewer distinct properties than rows in Guatemala

  • Real cross-posting on the portal: the same property is often published by more than one advertiser. Deduplicate on title and area if you need unique properties.

Only 25 rows came back

  • That is the free-account cap. Add credits or a payment method in Apify Console → Billing.

A listing page came back without its full record

  • The run continues and keeps the search row. Re-run detail mode on that listing address.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

MercadoLibre and Mercado Libre are trademarks of MercadoLibre, Inc. This Actor is not affiliated with, endorsed by, or sponsored by MercadoLibre.


🤝 Support

Join our active support community


Built by SIÁN Agency | More Tools