
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape zonaprop.com.ar real-estate listings in Argentina: price and currency, expenses, m² total and covered, rooms, baths, garages, age, address, coordinates, amenities, agency, photos and publication date. From search URLs, listing URLs or filters.
Scrape real-estate listings from Zonaprop.com.ar, Argentina's largest property portal. You get price and currency, expenses, total and covered m², rooms, bathrooms, garages, age, address, coordinates, amenities, the agency, every photo and the publication date for apartments, houses, land and commercial property for sale or rent. You don't need a login, and the results come as clean rows ready for Excel, CSV or JSON.
| Field | What it does |
|---|---|
startUrls | Zonaprop search URLs or listing URLs (/propiedades/clasificado/..., /propiedades/emprendimiento/...) |
maxItems | Maximum listings for the run (0 = no limit) |
operation | venta (sale), alquiler (rent) or alquiler-temporal |
propertyType | e.g. departamentos, casas, ph, terrenos, locales-comerciales, oficinas-comerciales |
location | Barrio, city or province as Zonaprop names it (comma-separate several) |
priceMin / priceMax / priceCurrency | Price range in USD or ARS |
bedroomsMin / bathroomsMin | At least this many |
coveredAreaMin / coveredAreaMax | Covered m² range |
publishedWithin | Today, since yesterday, last 3 days, week, 15 days, month, 45 days |
publisherType | Agencies only or owners only |
sortBy | Relevance, newest, price up or down, most visited |
scrapeDetails | Open each listing page for the extra fields (default on) |
{
"operation": "alquiler",
"propertyType": "departamentos",
"location": "Palermo",
"priceMax": 1000000,
"bedroomsMin": 2,
"maxItems": 100
}
| Field | Description |
|---|---|
postingId, url, title | Zonaprop listing id, link and title |
operation, propertyType, postingType | Venta / Alquiler, Departamento / Casa / ..., PROPERTY or DEVELOPMENT |
price, currency, priceFormatted, prices | Main price and every price the listing shows |
expenses, expensesCurrency | Monthly expenses (expensas) |
totalAreaM2, coveredAreaM2 | Total and covered surface |
rooms, bedrooms, bathrooms, toilets, garages | Ambientes, dormitorios, baños, toilettes, cocheras |
age, ageYears | Building age as shown ("A estrenar" = new, 0 years) |
address, location, neighborhood, city, province, latitude, longitude | Where it is |
features, featureGroups | Every amenity, flat and grouped as on the site |
description | Full listing text |
publisherName, publisherType, publisherId, publisherUrl, publisherLogo, whatsapp | The agency, developer or owner |
photos, photoCount, videos | Photo URLs (1200 px with listing pages on) and video links |
publishedAt, publishedText, modifiedAt, views | Publication date, "Publicado hace ..." text, last update, view count |
Example (fictional data in the real shape):
[
{
"postingId": "60000001",
"url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-departamento-3-ambientes-con-balcon-en-palermo-60000001.html",
"title": "Departamento 3 ambientes con balcón en Palermo",
"generatedTitle": "Departamento · 72m² · 3 ambientes · 1 cochera",
"operation": "Venta",
"propertyType": "Departamento",
"postingType": "PROPERTY",
"price": 215000,
"currency": "USD",
"priceFormatted": "USD 215.000",
"prices": [
{
"operation": "Venta",
"amount": 215000,
"currency": "USD",
"formatted": "215.000"
}
],
"expenses": 180000,
"expensesCurrency": "ARS",
"totalAreaM2": 78,
"coveredAreaM2": 72,
"rooms": 3,
"bedrooms": 2,
"bathrooms": 1,
"toilets": 1,
"garages": 1,
"age": "15",
"ageYears": 15,
"layout": "Frente",
"orientation": "Norte",
"brightness": "Muy luminoso",
"address": "Gurruchaga 1800",
"addressVisibility": "EXACT",
"location": "Palermo Soho, Palermo, Capital Federal",
"neighborhood": "Palermo Soho",
"city": "Palermo",
"province": "Capital Federal",
"locationId": "V1-D-1003697",
"latitude": -34.5889,
"longitude": -58.4301,
"description": "Luminoso 3 ambientes al frente con balcón corrido, cocina integrada y cochera fija...",
"features": [
"Apto profesional",
"Parrilla",
"Ascensor",
"Balcón",
"Cocina",
"Living comedor",
"Aire acondicionado",
"Calefacción"
],
"featureGroups": {
"Características generales": [
"Apto profesional",
"Parrilla"
],
"Servicios": [
"Ascensor"
],
"Ambientes": [
"Balcón",
"Cocina",
"Living comedor"
],
"Características": [
"Aire acondicionado",
"Calefacción"
]
},
"developmentInfo": null,
"units": [],
"publisherId": "17000001",
"publisherName": "Inmobiliaria Ejemplo Palermo",
"publisherType": "agency",
"publisherUrl": "https://www.zonaprop.com.ar/inmobiliarias/inmobiliaria-ejemplo_17000001-inmuebles.html",
"publisherLogo": "https://imgar.zonapropcdn.com/empresas/1/00/17/00/00/01/130x70/logo.jpg",
"whatsapp": "54 11 0000-0000",
"premier": true,
"reserved": false,
"status": "ONLINE",
"photos": [
"https://imgar.zonapropcdn.com/avisos/1/00/60/00/00/01/1200x1200/2080000001.jpg",
"https://imgar.zonapropcdn.com/avisos/1/00/60/00/00/01/1200x1200/2080000002.jpg"
],
"photoCount": 24,
"videos": [],
"hasVideo": false,
"hasTour": false,
"hasPlans": true,
"publishedAt": "2026-09-28T14:05:11Z",
"publishedText": "Publicado hace 17 días",
"modifiedAt": "2026-10-12T00:00:00-0400",
"views": 412,
"postingCode": "EJ-1234",
"searchUrl": "https://www.zonaprop.com.ar/departamentos-venta-palermo.html",
"detailScraped": true,
"scrapedAt": "2026-10-15T05:30:53.000Z"
}
]
You pay $0.50 per 1,000 listings ($0.0005 per saved listing), plus the platform usage of the run (compute and datacenter proxy traffic).
Is it legal to scrape Zonaprop? The actor only reads public listing pages that anyone can open without an account. Check that your use of the data complies with Zonaprop's terms and the privacy law that applies to you.
Do I need a Zonaprop account or my own proxy? No. No login is used, and datacenter proxies are set up by default. The run moves to residential exits by itself if the site starts blocking.
How many listings can I get?
Practically all of them: Zonaprop itself stops at 9 pages (270 listings) per search, so bigger searches are split into price bands and merged without duplicates. In our tests a full run collected about 98% of the count Zonaprop displays; the run tells you when it saved noticeably fewer. Starting from a page URL (-pagina-3.html) keeps the site's order but stays within those 9 pages.
Why are some fields empty? Fields the publisher left out stay empty, for example garages for land, or coordinates when the address is hidden. With Open each listing page off, the full amenity list, all photos, videos, the exact publication date and the view count are not collected.
Can I schedule it or use it through the API? Yes. Schedule runs in the console, call it from the API, and get the results as JSON, CSV, Excel or through webhooks.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalSearch or listing URLs
Zonaprop search result URLs (e.g. https://www.zonaprop.com.ar/departamentos-venta-palermo.html, with any filters you set on the site) or single listing URLs (/propiedades/clasificado/...-12345678.html). Leave empty to use the filters below instead.
maxItemsintegerOptionaldefault 20Max results
Maximum number of listings to save in this run (0 = no limit). Big searches are split into price bands automatically, so you can go past the 270 listings the site itself shows per search.
Build a search without a URL. Set an operation or a location to use these; they are ignored otherwise.
operationenumOptionalOperation
Sale or rent. Defaults to sale when only a location is given.
propertyTypeenumOptionalProperty type
Leave empty for all property types.
locationstringOptionalLocation
A barrio, city or province as Zonaprop names it, e.g. Palermo, Capital Federal, GBA Norte, San Isidro, Córdoba. Separate several with commas. A name the site does not know is reported and skipped. Empty = all of Argentina.
priceMinintegerOptionalMinimum price
Lower price bound in the chosen currency.
priceMaxintegerOptionalMaximum price
Upper price bound in the chosen currency.
priceCurrencyenumOptionalPrice currency
Currency of the price bounds. Empty = the Zonaprop default (USD for sale, ARS for rent). Zonaprop converts listings priced in the other currency.
bedroomsMinintegerOptionalMinimum bedrooms
At least this many bedrooms (dormitorios).
bathroomsMinintegerOptionalMinimum bathrooms
At least this many bathrooms.
coveredAreaMinintegerOptionalMinimum covered area (m²)
Minimum covered surface in square metres.
coveredAreaMaxintegerOptionalMaximum covered area (m²)
Maximum covered surface in square metres.
publishedWithinenumOptionalPublished within
Only listings published in this window (Zonaprop counts from midnight, Buenos Aires time).
publisherTypeenumOptionalPublisher
Empty = every publisher.
sortByenumOptionalSort by
Order of results. Searches with more than 270 results are collected in price bands, so the order is only kept within each band.
scrapeDetailsbooleanOptionaldefault trueOpen each listing page
Adds the full description, every amenity (featureGroups), all photos in 1200 px, videos, the exact publication date and the view count. Turn off for a faster, cheaper run with the search-card fields only.
maxConcurrencyintegerOptionaldefault 10Max concurrency
Parallel requests.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for Zonaprop and are the cheapest. The run switches to residential exits by itself if the site starts blocking.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| url | any | Listing |
| title | any | Title |
| operation | any | Operation |
| propertyType | any | Type |
| price | any | Price |
| currency | any | Currency |
| expenses | any | Expenses (ARS) |
| totalAreaM2 | any | Total m² |
| coveredAreaM2 | any | Covered m² |
| rooms | any | Rooms |
| bedrooms | any | Bedrooms |
| bathrooms | any | Baths |
| garages | any | Garages |
| age | any | Age |
| address | any | Address |
| location | any | Location |
| latitude | any | Lat |
| longitude | any | Lng |
| publisherName | any | Publisher |
| publisherType | any | Publisher type |
| publishedAt | any | Published |
| views | any | Views |
| features | any | Amenities |
| photos | any | Photos |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One Zonaprop listing saved to the dataset. | $0.0005 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/zonaprop-scraper').call({
"startUrls": [
{
"url": "https://www.zonaprop.com.ar/departamentos-venta-palermo.html"
}
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/zonaprop-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/zonaprop-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Apartments to rent, cheapest first.
Listings with full details from a search URL.
Quick list without detail pages.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.