Zonaprop Scraper | Argentina Real Estate Listings & API
Pricing
from $6.15 / 1,000 results
Zonaprop Scraper | Argentina Real Estate Listings & API
Scrape Zonaprop Argentina property listings for sale or rent: price in USD and ARS, expensas, ambientes, bedrooms, bathrooms, m2, address, barrio, coordinates, agent phone and WhatsApp. Datos inmobiliarios de departamentos y casas en venta o alquiler. Export JSON, CSV, Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Zonaprop Scraper: Argentina Real Estate Listings and API
Extract structured Argentina real estate data from Zonaprop (zonaprop.com.ar), the leading property portal in Argentina. This Zonaprop scraper turns any Zonaprop search into a clean dataset of property listings for sale or rent, with price in USD and ARS, expensas, ambientes, bedrooms, bathrooms, surface area, full address, neighborhood, map coordinates, and the agent phone, WhatsApp and agency profile. Point it at any Zonaprop search URL and every filter in that URL is respected automatically.
Ideal for property listings scraper workflows, datos inmobiliarios pipelines, market and price analysis, lead generation for inmobiliarias, CRM enrichment, and monitoring departamentos y casas en venta o alquiler across Buenos Aires, Capital Federal (CABA), Cordoba, Rosario, Mendoza, Mar del Plata and the provinces.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this scraper
- Quickstart
- Input reference
- Output reference
- Example output record
- How it compares
- Use cases
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor takes one or more Zonaprop search results URLs, paginates through the matching properties, and writes one normalized record per listing to the run's dataset. Any filter encoded in the URL (operation for sale or rent, property type, location, price band, rooms) is respected automatically, so you build the search on the Zonaprop site and paste the URL. You can also apply extra numeric filters (price, bedrooms, bathrooms, area) directly in the input.
Core fields (price, currency, price per square meter, operation, property type, ambientes, bedrooms, bathrooms, parking, area, location, city) come from the results page. When withDetails is on, each listing is opened and enriched with the full description, amenities, complete image gallery, map coordinates, dual currency price in USD and ARS, expensas, structured address and neighborhood, and the agent contact details (phone, WhatsApp, agency name, logo and profile). Prices are numeric and carry their currency, missing values are returned as null, never invented.
Why this scraper
- Dual currency. Both
priceUsdandpriceArswhen Zonaprop quotes them, plus the primarypriceandcurrency. - Investor metrics.
pricePerM2computed for you, plusexpensas(maintenance),ambientes,totalAreaM2andbuiltAreaM2. - Real contacts. Agent
agentPhoneandagentWhatsappas full numbers, plus the agency name, logo, id and profile. - Structured location.
address,neighborhood(barrio),zone,city,provinceandcountry, not just one raw string, plus mapcoordinates. - Batch and filters. Multiple search URLs per run and client side price, bedroom, bathroom and area filters that skip unwanted listings before any detail work.
Quickstart
Open the actor, paste this into the input, and press Run. It returns apartments for sale in Capital Federal with full detail.
{"startUrl": "https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html","withDetails": true,"maxListings": 50}
Build any search on zonaprop.com.ar (choose sale or rent, property type, location, price and room filters) and paste its URL into startUrl. Set withDetails to false for a faster run that returns only the core listing fields.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | string | one URL required | (example search) | A Zonaprop search results URL. Apply any filters on zonaprop.com.ar and paste the resulting URL. |
startUrls | array | no | (empty) | Optional batch of Zonaprop search URLs (strings or { "url": "..." } objects) scraped in one run. |
maxListings | integer | no | 50 | Maximum listings to collect across all URLs. Empty means no limit on paid plans. Free plans are capped at 10. |
withDetails | boolean | no | true | When on (paid plans), each listing detail page is fetched for description, amenities, gallery, coordinates, dual currency price, expensas, structured location and agent contacts. Off automatically on free plans. |
minPrice | integer | no | (none) | Keep only listings priced at or above this amount. |
maxPrice | integer | no | (none) | Keep only listings priced at or below this amount. |
priceCurrency | string | no | Any | Restrict to USD or ARS and apply the price band to that currency. |
minBedrooms | integer | no | (none) | Keep only listings with at least this many bedrooms. |
maxBedrooms | integer | no | (none) | Keep only listings with at most this many bedrooms. |
minBathrooms | integer | no | (none) | Keep only listings with at least this many bathrooms. |
minAreaM2 | integer | no | (none) | Keep only listings with total area at or above this many m2. |
maxAreaM2 | integer | no | (none) | Keep only listings with total area at or below this many m2. |
Output reference
One dataset item per listing. Types: string, number, boolean, string[], object, or null when the source value is absent. The description, amenities, images, coordinates, address, dual currency, agent* and publisher* fields are populated only when withDetails is on.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Primary listing image URL. |
title | string | Listing title as shown on Zonaprop. |
price | number | Primary price in the listing currency. |
currency | string | Currency of price, USD or ARS. |
priceUsd | number | Price in US dollars when quoted. |
priceArs | number | Price in Argentine pesos when quoted. |
pricePerM2 | number | Price per square meter, or null. |
maintenanceFee | number | Expensas (monthly maintenance), or null. |
maintenanceCurrency | string | Currency of the expensas, ARS. |
operationType | string | Operation, venta (sale) or alquiler (rent). |
propertyType | string | Property type, for example Departamento, Casa, PH. |
ambientes | number | Number of ambientes (rooms), or null. |
bedrooms | number | Number of bedrooms, or null. |
bathrooms | number | Number of bathrooms, or null. |
halfBathrooms | number | Number of half bathrooms (toilettes), or null. |
parkingSpaces | number | Number of parking spaces (cocheras), or null. |
numberOfFloors | number | Number of floors, or null. |
orientation | string | Orientation or disposition, for example Frente, Contrafrente, or null. |
propertyAge | number | Property age in years (0 for new build), or null. |
isNewProperty | boolean | true when the listing is a estrenar or under construction. |
status | string | Listing status, for example ONLINE. |
isReserved | boolean | true when the unit is marked reserved. |
publishedAt | string | ISO 8601 timestamp of when the listing was published. |
totalAreaM2 | number | Total area in square meters, or null. |
builtAreaM2 | number | Built or covered area in square meters, or null. |
address | string | Street address when the publisher shows it, or null. |
location | string | Full location string as shown on the card. |
neighborhood | string | Barrio, or null. |
zone | string | Zona or micro area, or null. |
city | string | City, for example Capital Federal. |
province | string | Province, or null. |
country | string | Country, Argentina. |
postingCode | string | Zonaprop reference code, or null. |
contactName | string | Contact person name when published separately, or null. |
listingId | string | Zonaprop listing id. |
url | string | Canonical listing URL. |
description | string | Full listing description (details mode). |
amenities | string[] | Amenity labels such as Parrilla, Ascensor, Patio (details mode). |
images | string[] | Full image gallery URLs (details mode). |
coordinates | object | { "lat", "lng" } map coordinates (details mode), or null. |
agentPhone | string | Agent phone number (details mode), or null. |
agentWhatsapp | string | Agent WhatsApp number (details mode), or null. |
agentEmail | string | Agent email (details mode), or null when not published. |
publisherName | string | Agency or publisher name (details mode). |
publisherLogo | string | Agency logo URL (details mode). |
publisher | object | Publisher profile: name, url, logo, publisherId, partialPhone, license, email, rating, reviewsCount. |
publisherId | string | Publisher id (details mode). |
publisherRating | number | Publisher rating (details mode), or null when unrated. |
isDevelopment | boolean | true when the item is a new development (emprendimiento). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed page fetch, a single item with a populated error is written instead. |
detailError | string | null normally. Set when the listing was returned but its detail page could not be enriched. |
Example output record
Real record from a live run (input {"startUrl": "https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html", "withDetails": true}). The description, amenities and images values are trimmed here for display; a real run returns the full text, all amenities and all image URLs.
{"imageUrl": "https://imgar.zonapropcdn.com/avisos/1/00/59/73/58/40/360x266/2068427256.jpg?isFirstImage=true","title": "Departamento · 208m² · 3 Ambientes · 1 Cochera · Venta - Palermo Chico","price": 450000,"currency": "USD","priceUsd": 450000,"priceArs": null,"pricePerM2": 2163,"maintenanceFee": 650000,"maintenanceCurrency": "ARS","operationType": "venta","propertyType": "Departamento","ambientes": 3,"bedrooms": 2,"bathrooms": 2,"halfBathrooms": 1,"parkingSpaces": 1,"numberOfFloors": 1,"orientation": "Contrafrente","propertyAge": 30,"isNewProperty": false,"status": "ONLINE","isReserved": false,"publishedAt": "2026-07-29T16:44:46Z","totalAreaM2": 208,"builtAreaM2": 208,"address": "Cerviño al 3900","location": "Palermo Chico, Palermo","neighborhood": "Palermo","zone": "Palermo Chico","city": "Capital Federal","province": null,"country": "Argentina","postingCode": "MAP4782617","contactName": null,"listingId": "59735840","url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-3-ambientes-con-dependencia-200-m-sup2--59735840.html","description": "Hermoso semi piso reciclado sobre Boulevard Cervino. Gran patio con parrilla. 2 dormitorios con dependencia. ...","amenities": ["Parrilla", "Laundry", "Internet / Wifi", "Encargado / Vigilancia", "Ascensor", "Patio", "Aire acondicionado"],"images": ["https://imgar.zonapropcdn.com/avisos/resize/1/00/59/73/58/40/1200x1200/2068427256.jpg?isFirstImage=true","https://imgar.zonapropcdn.com/avisos/resize/1/00/59/73/58/40/1200x1200/2068427258.jpg"],"coordinates": { "lat": -34.5787013, "lng": -58.4141907 },"agentPhone": "+541131809414","agentWhatsapp": "+541131809414","agentEmail": null,"publisherName": "Martin Pinus","publisherLogo": "https://imgar.zonapropcdn.com/empresas/1/00/17/62/27/87/130x70/logo.jpg","publisher": {"name": "Martin Pinus","url": "https://www.zonaprop.com.ar/inmobiliarias/martin-pinus_17622787-inmuebles.html","logo": "https://imgar.zonapropcdn.com/empresas/1/00/17/62/27/87/130x70/logo.jpg","publisherId": "17622787","partialPhone": "+54 1","license": null,"email": null,"rating": null,"reviewsCount": null},"publisherId": "17622787","publisherRating": null,"isDevelopment": false,"observedAt": "2026-09-05T14:39:52.235Z","error": null,"detailError": null}
How it compares
| Capability | This actor | Typical Zonaprop scrapers |
|---|---|---|
| Paste a Zonaprop search URL | Yes | Some |
| Multiple search URLs per run | Yes | Some |
| Price, bedroom, bathroom, area filters in input | Yes | Some |
| Dual currency price (USD and ARS) | Yes | Rare |
| Price per m2 computed | Yes | Rare |
| Expensas (maintenance) | Yes | Rare |
| Ambientes, bedrooms, bathrooms, half baths | Yes | Partial |
| Structured address, barrio, city, province | Yes | Partial |
| Map coordinates | Yes | Some |
| Agent phone and WhatsApp (full numbers) | Yes | Rare |
| Agency name, logo, id, rating | Yes | Partial |
| Full image gallery and amenities | Yes | Some |
| No charge on failure, spend cap respected | Yes | Varies |
Named actors compared on the Apify Store: ecomscrape/zonaprop-property-listings-scraper, memo23/zonaprop-scraper, ocrad/zonaprop-property-scraper, crawlerbros/zonaprop-scraper, majere11/zonaprop-scraper. This actor accepts their inputs (search URL, multiple URLs, operation, property type, location, price range, beds, baths, area, max results) and returns their outputs plus the extras above.
Use cases
- Real estate market analysis. Track prices, price per m2 and inventory for departamentos and casas by barrio.
- Investment research. Compare USD and ARS pricing, expensas and area to spot opportunities.
- Lead generation. Build lists of inmobiliarias and agents with phone and WhatsApp for outreach.
- CRM and portal enrichment. Feed clean, normalized listings into your own database or app.
- Price monitoring. Re-run on a schedule to watch new listings and price changes over time.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~zonaprop-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html","withDetails":true,"maxListings":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~zonaprop-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.zonaprop.com.ar/departamentos-alquiler-palermo.html","maxListings":300}'
Apify CLI:
apify call scrapers_lat/zonaprop-scraper \--input '{"startUrl":"https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per listing returned (
resultevent). Detail enrichment is billed per enriched listing (detailsevent). See the pricing tab. - No charge on failure. If a page fetch fails, the actor writes a single item with a populated
errorand does not charge for it. Listings whose detail page could not be enriched are still delivered and are not charged the details add-on. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run, and detail mode is off for them. Upgrade for higher
maxListingsand detail enrichment.
FAQ and troubleshooting
How do I filter by location, price or property type?
Build the search on zonaprop.com.ar using its own filters, then paste the resulting URL into startUrl. Every filter in the URL is applied automatically. You can also set minPrice, maxPrice, priceCurrency, minBedrooms, maxBedrooms, minBathrooms, minAreaM2 and maxAreaM2 in the input.
Can I scrape several searches at once?
Yes. Put multiple Zonaprop search URLs in startUrls and they are all scraped in one run.
What is the difference between the two modes?
With withDetails on (paid plans) each record includes the description, amenities, image gallery, coordinates, dual currency price, expensas, structured address and agent contacts. With it off you get the core listing fields only, which is faster.
Which currency is the price in?
Whatever the listing uses. currency is USD or ARS and price is the numeric amount. When both are quoted you also get priceUsd and priceArs.
Why are some fields null?
Not every listing publishes every field (for example an email, a rating, expensas or an exact address). Missing source values are returned as null, never invented.
How do I get more than 10 results?
Raise maxListings on a paid Apify plan. Free plans are capped at 10 records per run.
Is this an official Zonaprop tool? No. This actor is independent and has no affiliation with Zonaprop. It reads only data that is publicly available on the site.
Example tasks
Preconfigured templates for common scenarios. Open one and press Run, or use it as a starting point:
- Zonaprop CABA Commercial Units for Rent Scraper: Scrape commercial units for rent in Buenos Aires (CABA) from Zonaprop. Get prices, sizes, locations and listing links from Argentina.
- Zonaprop CABA Houses for Rent Scraper: Scrape houses for rent in Buenos Aires (CABA) from Zonaprop. Get prices, sizes, locations and listing links from Argentina real estate.
- Zonaprop CABA PH Homes for Sale Scraper: Scrape PH homes for sale in Buenos Aires (CABA) from Zonaprop. Get prices, surface area, rooms and listing links from Argentina.
- Zonaprop Cordoba Apartments for Sale Scraper: Scrape apartments for sale in Cordoba from Zonaprop. Collect prices, surface area, rooms and listing URLs from Argentina real estate.
- Zonaprop Mar del Plata Apartments Sale Scraper: Scrape apartments for sale in Mar del Plata from Zonaprop. Collect prices, surface, rooms and listing URLs from Argentina real estate.
- Zonaprop Palermo Apartments for Rent Scraper: Scrape apartments for rent in Palermo, Buenos Aires from Zonaprop. Get prices, sizes and listing links from Argentina real estate.
- Zonaprop Rosario Apartments for Rent Scraper: Scrape apartments for rent in Rosario from Zonaprop. Get monthly prices, sizes, locations and listing links from Argentina real estate.
- Zonaprop CABA Apartments for Rent: Apartments for rent in Buenos Aires (CABA) from Zonaprop.
- Zonaprop CABA Apartments for Sale: Apartments for sale in Buenos Aires (CABA) from Zonaprop.
- Zonaprop CABA Houses for Sale: Houses for sale in Buenos Aires (CABA) from Zonaprop.
Related scrapers
- InfoCasas Real Estate Listings Scraper: Infocasas real estate listings across Uruguay, Paraguay and more.
- Urbania Peru Property Listings Scraper: Urbania property listings in Peru with price, operation and property type.
- Adondevivir Peru Property Listings Scraper: Adondevivir property listings in Peru with price, operation and property type.
- MercadoLibre Product Listings Scraper: Products, prices and seller data from MercadoLibre across LATAM.
- Quince Product Scraper: Quince.com products with prices, discounts, variants and images.
- Rappi Restaurants & Stores Scraper: Restaurants and stores from Rappi with name, category and rating.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Zonaprop Scraper: datos inmobiliarios de Argentina y API
Extrae datos inmobiliarios de Argentina desde Zonaprop (zonaprop.com.ar), el portal de propiedades lider de Argentina. Este scraper de Zonaprop convierte cualquier busqueda de Zonaprop en un dataset limpio de propiedades en venta o alquiler, con precio en USD y ARS, expensas, ambientes, dormitorios, baños, superficie, direccion, barrio, coordenadas del mapa y el telefono del agente, WhatsApp y perfil de la inmobiliaria. Apuntalo a cualquier URL de busqueda de Zonaprop y cada filtro de esa URL se respeta de forma automatica.
Ideal para flujos de scraper de propiedades, pipelines de datos inmobiliarios, analisis de mercado y precios, generacion de leads para inmobiliarias, enriquecimiento de CRM y monitoreo de departamentos y casas en venta o alquiler en Buenos Aires, Capital Federal (CABA), Cordoba, Rosario, Mendoza, Mar del Plata y las provincias.
📥 Entrada · 📤 Salida · 💰 Precios · ▶️ Ejemplos
Que hace
El actor toma una o varias URLs de resultados de busqueda de Zonaprop, recorre las paginas de propiedades que coinciden y escribe un registro normalizado por aviso en el dataset de la ejecucion. Cualquier filtro codificado en la URL (operacion de venta o alquiler, tipo de propiedad, ubicacion, rango de precio, ambientes) se respeta de forma automatica, asi que armas la busqueda en el sitio de Zonaprop y pegas la URL. Tambien podes aplicar filtros numericos extra (precio, dormitorios, baños, superficie) directamente en la entrada.
Los campos principales (precio, moneda, precio por metro cuadrado, operacion, tipo de propiedad, ambientes, dormitorios, baños, cochera, superficie, ubicacion, ciudad) vienen de la pagina de resultados. Cuando withDetails esta activo, cada aviso se abre y se enriquece con la descripcion completa, las comodidades, la galeria de imagenes completa, las coordenadas del mapa, el precio en doble moneda USD y ARS, las expensas, la direccion y el barrio estructurados y los datos de contacto del agente (telefono, WhatsApp, nombre de la inmobiliaria, logo y perfil). Los precios son numericos y llevan su moneda, los valores faltantes se devuelven como null, nunca inventados.
Por que este scraper
- Doble moneda. Tanto
priceUsdcomopriceArscuando Zonaprop los publica, mas elpriceprincipal ycurrency. - Metricas para inversores.
pricePerM2calculado, masexpensas(mantenimiento),ambientes,totalAreaM2ybuiltAreaM2. - Contactos reales.
agentPhoneyagentWhatsappcomo numeros completos, mas el nombre de la inmobiliaria, logo, id y perfil. - Ubicacion estructurada.
address,neighborhood(barrio),zone,city,provinceycountry, no solo un texto crudo, mas lascoordinatesdel mapa. - Lote y filtros. Varias URLs de busqueda por ejecucion y filtros de precio, dormitorios, baños y superficie del lado del cliente que descartan avisos no deseados antes de cualquier trabajo de detalle.
Inicio rapido
Abri el actor, pega esto en la entrada y presiona Run. Devuelve departamentos en venta en Capital Federal con detalle completo.
{"startUrl": "https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html","withDetails": true,"maxListings": 50}
Arma cualquier busqueda en zonaprop.com.ar (elegi venta o alquiler, tipo de propiedad, ubicacion, precio y filtros de ambientes) y pega su URL en startUrl. Configura withDetails en false para una ejecucion mas rapida que devuelve solo los campos principales.
Referencia de entrada
| Campo | Tipo | Requerido | Predeterminado | Descripcion |
|---|---|---|---|---|
startUrl | string | una URL requerida | (busqueda de ejemplo) | Una URL de resultados de Zonaprop. Aplica filtros en zonaprop.com.ar y pega la URL. |
startUrls | array | no | (vacio) | Lote opcional de URLs de Zonaprop (strings u objetos { "url": "..." }) que se procesan en una ejecucion. |
maxListings | integer | no | 50 | Maximo de avisos a recolectar en todas las URLs. Vacio significa sin limite en planes pagos. Los planes gratuitos se limitan a 10. |
withDetails | boolean | no | true | Cuando esta activo (planes pagos), cada pagina de detalle se busca para descripcion, comodidades, galeria, coordenadas, precio en doble moneda, expensas, ubicacion estructurada y contactos del agente. Se desactiva solo en planes gratuitos. |
minPrice | integer | no | (ninguno) | Conserva solo avisos con precio igual o mayor a este monto. |
maxPrice | integer | no | (ninguno) | Conserva solo avisos con precio igual o menor a este monto. |
priceCurrency | string | no | Any | Restringe a USD o ARS y aplica el rango de precio a esa moneda. |
minBedrooms | integer | no | (ninguno) | Conserva solo avisos con al menos esta cantidad de dormitorios. |
maxBedrooms | integer | no | (ninguno) | Conserva solo avisos con como maximo esta cantidad de dormitorios. |
minBathrooms | integer | no | (ninguno) | Conserva solo avisos con al menos esta cantidad de baños. |
minAreaM2 | integer | no | (ninguno) | Conserva solo avisos con superficie total igual o mayor a estos m2. |
maxAreaM2 | integer | no | (ninguno) | Conserva solo avisos con superficie total igual o menor a estos m2. |
Referencia de salida
Un item de dataset por aviso. Tipos: string, number, boolean, string[], object, o null cuando el valor de origen esta ausente. Los campos description, amenities, images, coordinates, address, la doble moneda, agent* y publisher* se completan solo cuando withDetails esta activo.
| Campo | Tipo | Descripcion |
|---|---|---|
imageUrl | string | URL de la imagen principal del aviso. |
title | string | Titulo del aviso como se muestra en Zonaprop. |
price | number | Precio principal en la moneda del aviso. |
currency | string | Moneda de price, USD o ARS. |
priceUsd | number | Precio en dolares cuando se publica. |
priceArs | number | Precio en pesos argentinos cuando se publica. |
pricePerM2 | number | Precio por metro cuadrado, o null. |
maintenanceFee | number | Expensas (mantenimiento mensual), o null. |
maintenanceCurrency | string | Moneda de las expensas, ARS. |
operationType | string | Operacion, venta o alquiler. |
propertyType | string | Tipo de propiedad, por ejemplo Departamento, Casa, PH. |
ambientes | number | Cantidad de ambientes, o null. |
bedrooms | number | Cantidad de dormitorios, o null. |
bathrooms | number | Cantidad de baños, o null. |
halfBathrooms | number | Cantidad de toilettes, o null. |
parkingSpaces | number | Cantidad de cocheras, o null. |
numberOfFloors | number | Cantidad de plantas, o null. |
orientation | string | Orientacion o disposicion, por ejemplo Frente, Contrafrente, o null. |
propertyAge | number | Antiguedad en años (0 para a estrenar), o null. |
isNewProperty | boolean | true cuando el aviso es a estrenar o en construccion. |
status | string | Estado del aviso, por ejemplo ONLINE. |
isReserved | boolean | true cuando la unidad esta marcada como reservada. |
publishedAt | string | Marca de tiempo ISO 8601 de cuando se publico el aviso. |
totalAreaM2 | number | Superficie total en metros cuadrados, o null. |
builtAreaM2 | number | Superficie construida o cubierta en metros cuadrados, o null. |
address | string | Direccion cuando el publicador la muestra, o null. |
location | string | Texto de ubicacion completo como se muestra en la tarjeta. |
neighborhood | string | Barrio, o null. |
zone | string | Zona o micro area, o null. |
city | string | Ciudad, por ejemplo Capital Federal. |
province | string | Provincia, o null. |
country | string | Pais, Argentina. |
postingCode | string | Codigo de referencia de Zonaprop, o null. |
contactName | string | Nombre de contacto cuando se publica por separado, o null. |
listingId | string | Id del aviso en Zonaprop. |
url | string | URL canonica del aviso. |
description | string | Descripcion completa del aviso (modo detalle). |
amenities | string[] | Comodidades como Parrilla, Ascensor, Patio (modo detalle). |
images | string[] | URLs de la galeria completa de imagenes (modo detalle). |
coordinates | object | Coordenadas del mapa { "lat", "lng" } (modo detalle), o null. |
agentPhone | string | Telefono del agente (modo detalle), o null. |
agentWhatsapp | string | WhatsApp del agente (modo detalle), o null. |
agentEmail | string | Email del agente (modo detalle), o null cuando no se publica. |
publisherName | string | Nombre de la inmobiliaria o publicador (modo detalle). |
publisherLogo | string | URL del logo de la inmobiliaria (modo detalle). |
publisher | object | Perfil del publicador: name, url, logo, publisherId, partialPhone, license, email, rating, reviewsCount. |
publisherId | string | Id del publicador (modo detalle). |
publisherRating | number | Calificacion del publicador (modo detalle), o null sin calificacion. |
isDevelopment | boolean | true cuando el item es un emprendimiento nuevo. |
observedAt | string | Marca de tiempo ISO 8601 de cuando se recolecto el registro. |
error | string | null en exito. Ante una falla de descarga, se escribe un item con error completo en su lugar. |
detailError | string | null normalmente. Se completa cuando el aviso se devolvio pero su pagina de detalle no se pudo enriquecer. |
Ejemplo de registro de salida
Registro real de una ejecucion en vivo (entrada {"startUrl": "https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html", "withDetails": true}). Los valores de description, amenities e images estan recortados aca para mostrar; una ejecucion real devuelve el texto completo, todas las comodidades y todas las URLs de imagen.
{"imageUrl": "https://imgar.zonapropcdn.com/avisos/1/00/59/73/58/40/360x266/2068427256.jpg?isFirstImage=true","title": "Departamento · 208m² · 3 Ambientes · 1 Cochera · Venta - Palermo Chico","price": 450000,"currency": "USD","priceUsd": 450000,"priceArs": null,"pricePerM2": 2163,"maintenanceFee": 650000,"maintenanceCurrency": "ARS","operationType": "venta","propertyType": "Departamento","ambientes": 3,"bedrooms": 2,"bathrooms": 2,"halfBathrooms": 1,"parkingSpaces": 1,"numberOfFloors": 1,"orientation": "Contrafrente","propertyAge": 30,"isNewProperty": false,"status": "ONLINE","isReserved": false,"publishedAt": "2026-07-29T16:44:46Z","totalAreaM2": 208,"builtAreaM2": 208,"address": "Cerviño al 3900","location": "Palermo Chico, Palermo","neighborhood": "Palermo","zone": "Palermo Chico","city": "Capital Federal","province": null,"country": "Argentina","postingCode": "MAP4782617","contactName": null,"listingId": "59735840","url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-3-ambientes-con-dependencia-200-m-sup2--59735840.html","coordinates": { "lat": -34.5787013, "lng": -58.4141907 },"agentPhone": "+541131809414","agentWhatsapp": "+541131809414","publisherName": "Martin Pinus","publisherId": "17622787","isDevelopment": false,"observedAt": "2026-09-05T14:39:52.235Z","error": null,"detailError": null}
Como se compara
| Capacidad | Este actor | Scrapers de Zonaprop tipicos |
|---|---|---|
| Pegar una URL de busqueda de Zonaprop | Si | Algunos |
| Varias URLs de busqueda por ejecucion | Si | Algunos |
| Filtros de precio, dormitorios, baños, superficie en la entrada | Si | Algunos |
| Precio en doble moneda (USD y ARS) | Si | Raro |
| Precio por m2 calculado | Si | Raro |
| Expensas (mantenimiento) | Si | Raro |
| Ambientes, dormitorios, baños, toilettes | Si | Parcial |
| Direccion, barrio, ciudad, provincia estructurados | Si | Parcial |
| Coordenadas del mapa | Si | Algunos |
| Telefono y WhatsApp del agente (numeros completos) | Si | Raro |
| Nombre, logo, id y calificacion de la inmobiliaria | Si | Parcial |
| Galeria de imagenes completa y comodidades | Si | Algunos |
| Sin cargo ante falla, tope de gasto respetado | Si | Varia |
Actores comparados en la Apify Store: ecomscrape/zonaprop-property-listings-scraper, memo23/zonaprop-scraper, ocrad/zonaprop-property-scraper, crawlerbros/zonaprop-scraper, majere11/zonaprop-scraper. Este actor acepta sus entradas (URL de busqueda, varias URLs, operacion, tipo de propiedad, ubicacion, rango de precio, dormitorios, baños, superficie, maximo de resultados) y devuelve sus salidas mas los extras de arriba.
Casos de uso
- Analisis de mercado inmobiliario. Segui precios, precio por m2 e inventario de departamentos y casas por barrio.
- Investigacion de inversion. Compara precios en USD y ARS, expensas y superficie para detectar oportunidades.
- Generacion de leads. Arma listas de inmobiliarias y agentes con telefono y WhatsApp para contacto.
- Enriquecimiento de CRM y portales. Alimenta avisos limpios y normalizados en tu propia base o app.
- Monitoreo de precios. Reejecuta de forma programada para vigilar avisos nuevos y cambios de precio en el tiempo.
Ejecutar via API y CLI
Inicia una ejecucion y espera a que termine, luego lee el dataset. Reemplaza <TOKEN> con tu token de API de Apify.
Ejecucion sincronica que devuelve los items del dataset en una llamada:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~zonaprop-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html","withDetails":true,"maxListings":25}'
Iniciar una ejecucion asincronica:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~zonaprop-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.zonaprop.com.ar/departamentos-alquiler-palermo.html","maxListings":300}'
Apify CLI:
apify call scrapers_lat/zonaprop-scraper \--input '{"startUrl":"https://www.zonaprop.com.ar/departamentos-venta-capital-federal.html"}'
Obtener resultados
Cada ejecucion escribe en un dataset. Obtene los items como JSON, CSV o Excel cambiando format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginar datasets grandescurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> se devuelve como defaultDatasetId en el objeto de la ejecucion. Usa offset y limit para recorrer conjuntos grandes. clean=true descarta campos vacios e internos.
Facturacion y limites
- Pago por resultado. Se cobra por aviso devuelto (evento
result). El enriquecimiento de detalle se cobra por aviso enriquecido (eventodetails). Ver la pestaña de precios. - Sin cargo ante falla. Si una descarga falla, el actor escribe un item con
errorcompleto y no lo cobra. Los avisos cuya pagina de detalle no se pudo enriquecer se entregan igual y no se cobra el add-on de detalle. - Tope de gasto respetado. Configura
maxTotalChargeUsden la ejecucion; al alcanzarlo, el actor deja de emitir y cobrar mas resultados facturables. - Los planes gratuitos de Apify se limitan a 10 registros por ejecucion, y el modo detalle esta desactivado para ellos. Mejora el plan para mayor
maxListingsy enriquecimiento de detalle.
Preguntas frecuentes
Como filtro por ubicacion, precio o tipo de propiedad?
Arma la busqueda en zonaprop.com.ar con sus propios filtros y pega la URL resultante en startUrl. Cada filtro de la URL se aplica de forma automatica. Tambien podes configurar minPrice, maxPrice, priceCurrency, minBedrooms, maxBedrooms, minBathrooms, minAreaM2 y maxAreaM2 en la entrada.
Puedo scrapear varias busquedas a la vez?
Si. Pone varias URLs de busqueda de Zonaprop en startUrls y se procesan todas en una ejecucion.
Cual es la diferencia entre los dos modos?
Con withDetails activo (planes pagos) cada registro incluye la descripcion, comodidades, galeria de imagenes, coordenadas, precio en doble moneda, expensas, direccion estructurada y contactos del agente. Con el desactivado obtenes solo los campos principales, que es mas rapido.
En que moneda esta el precio?
La que usa el aviso. currency es USD o ARS y price es el monto numerico. Cuando se publican ambas tambien obtenes priceUsd y priceArs.
Por que algunos campos son null?
No todos los avisos publican todos los campos (por ejemplo un email, una calificacion, expensas o una direccion exacta). Los valores de origen ausentes se devuelven como null, nunca inventados.
Como obtengo mas de 10 resultados?
Aumenta maxListings en un plan pago de Apify. Los planes gratuitos se limitan a 10 registros por ejecucion.
Es una herramienta oficial de Zonaprop? No. Este actor es independiente y no tiene afiliacion con Zonaprop. Solo lee datos que estan disponibles de forma publica en el sitio.
Mas scrapers en scrapers.lat
Construido y mantenido por scrapers.lat, donde publicamos scrapers para plataformas publicas de Estados Unidos y America Latina: registros de empresas, datos de gobierno, finanzas, e-commerce y mas. Explora el catalogo o pedi un scraper a medida en scrapers.lat.
