Zonaprop Scraper — Avisos Inmobiliarios de Argentina
Pricing
from $3.00 / 1,000 results
Zonaprop Scraper — Avisos Inmobiliarios de Argentina
Extrae avisos inmobiliarios de Zonaprop (Argentina) con precio normalizado, superficie, ambientes, ubicacion y datos de contacto. Filtra por barrio, operacion y rango de precio.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Juan ignacio Veltri
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extrae avisos inmobiliarios de Zonaprop (Argentina) con precio normalizado, superficie, ambientes, ubicacion y datos de contacto. Filtra por barrio, operacion y rango de precio.
Devuelve datos limpios y estructurados, sin captchas, sin sesiones y sin mantener proxies.
En cada aviso: precio con moneda ya normalizada, expensas, superficie en m², ambientes, dormitorios, baños, cocheras, barrio y foto de portada.
Activando "Entrar a cada aviso": además el contacto de la inmobiliaria (nombre, teléfono y perfil), la dirección exacta y todas las fotos. Cuesta un request extra por aviso y tiene un recargo por resultado.
Qué hace
- Busca por filtros o por URL. Filtrás en el sitio, pegás la URL y el Actor devuelve exactamente ese resultado. O cargás ubicación, operación y rango de precio y arma la búsqueda solo.
- Precios normalizados de verdad.
USD 185.000,R$ 1.250.000y$ 89.500salen como número + código de moneda ISO. Los avisos "a consultar" se marcan cononRequest: trueen vez de inventar un0. - Formato unificado. Todos los Actors de esta familia devuelven el mismo schema, así que podés cruzar varios portales y países sin escribir un mapeo por cada uno.
- Sin resultados basura. Un aviso sin título ni precio no se guarda ni se cobra.
- Modo monitoreo. Con "Incluir avisos ya vistos" apagado, cada run devuelve sólo lo que se publicó desde el anterior.
- Deduplicado. El mismo aviso, aunque aparezca en varias páginas o con parámetros de tracking distintos, sale una sola vez.
Ejemplo de salida
{"id": "zonaprop_a1b2c3d4e5f6a7b8","url": "https://www.zonaprop.com.ar/propiedades/clasificado/ejemplo-123456.html","source": "zonaprop","country": "AR","scrapedAt": "2026-08-19T14:32:10.512Z","title": "Departamento 2 ambientes con balcón","operation": "sale","propertyType": "apartment","price": { "amount": 185000, "currency": "USD", "raw": "USD 185.000", "onRequest": false },"totalAreaM2": 59,"rooms": 2,"bedrooms": 1,"bathrooms": 1,"parkingSpaces": 1,"images": ["https://..."],"location": { "neighborhood": "Palermo", "city": "Capital Federal", "country": "AR", "latitude": null, "longitude": null },"contact": { "agencyName": null, "phones": [], "emails": [], "isAgency": null },"listingId": "59105482"}
Cómo se usa
1. Por URL de listado (más preciso)
Filtrá en Zonaprop Scraper — Avisos Inmobiliarios de Argentina como lo harías a mano, copiá la URL de resultados y pegala en URLs de listado.
{"startUrls": [{ "url": "https://www.zonaprop.com.ar/departamentos-venta-palermo.html" }],"maxItems": 500}
2. Por filtros
{"locations": ["Palermo", "Belgrano"],"operation": "sale","priceMin": 100000,"priceMax": 300000,"sortBy": "newest","maxItems": 1000}
3. Monitoreo diario de avisos nuevos
Programalo con un Schedule y activá includeSeen: false: cada run devuelve sólo lo que apareció desde el anterior.
{"startUrls": [{ "url": "https://www.zonaprop.com.ar/departamentos-venta-palermo.html" }],"sortBy": "newest","includeSeen": false,"maxPagesPerUrl": 3}
Parámetros
| Campo | Tipo | Default | Para qué sirve |
|---|---|---|---|
startUrls | array | — | URLs de listado ya filtradas. Si las cargás, se ignoran los filtros. |
searchQuery | string | — | Texto libre de búsqueda. |
locations | array | [] | Barrio, ciudad o provincia. Genera una búsqueda por cada una. |
operation | enum | any | sale, rent, temporary_rent, any. |
propertyTypes | array | [] | Vacío = todos los tipos. |
priceMin / priceMax | integer | — | En la moneda del portal. |
sortBy | enum | relevance | newest es el mejor para monitoreo. |
maxItems | integer | 200 | Corta el run al llegar. 0 = sin tope. Es tu control de gasto. |
maxPagesPerUrl | integer | 20 | Páginas de listado por URL de arranque. |
scrapeDetails | boolean | false | Entra a cada aviso: más datos, un request por aviso. |
includeSeen | boolean | true | false devuelve sólo avisos nuevos respecto de runs anteriores. |
proxyTier | enum | datacenter | Nivel inicial de proxy. |
maxProxyTier | enum | residential | Poné datacenter para nunca gastar ancho de banda residencial. |
maxConcurrency | integer | 10 | Bajalo si ves bloqueos. |
maxRequestRetries | integer | 3 | Reintentos por request. |
Costo
El Actor cobra por resultado guardado. Los resultados descartados por incompletos o duplicados no se cobran.
Para acotar el gasto de un run:
maxItemses el tope duro: al llegar, el run corta.maxProxyTier: "datacenter"garantiza que nunca se consuma proxy residencial (lo más caro de un scraper).- El Actor arranca con proxy datacenter y sólo escala a residencial si detecta bloqueos reales.
Integraciones
- API / SDK — corré el Actor y traé el dataset desde JavaScript, Python o HTTP.
- MCP — usable como herramienta desde un agente de IA vía el MCP server de Apify.
- Google Sheets, Slack, webhooks — con las integraciones nativas de Apify.
- Schedules — para monitoreo periódico sin escribir código.
Preguntas frecuentes
¿Es legal? Se extraen únicamente datos públicos, visibles sin iniciar sesión. No se accede a áreas privadas ni se evaden muros de autenticación. Si vas a tratar datos personales (teléfonos, emails), la responsabilidad de cumplir la normativa aplicable de protección de datos es de quien los usa.
¿Por qué algunos avisos vienen sin precio? Porque el portal los publica como "a consultar". Salen con price.onRequest: true y price.amount: null, para no ensuciar tus promedios con ceros falsos.
¿Por qué me devolvió menos avisos de los que dice el portal? Casi siempre es maxItems o maxPagesPerUrl. Subilos. Si persiste, revisá el RUN_SUMMARY del key-value store: ahí figura cuántos se descartaron y por qué.
¿Anda con proxy propio? Sí, configurable desde los parámetros de red.
Soporte
Si un campo deja de venir o cambia el sitio, abrí un issue en la pestaña Issues del Actor con la URL que falló. Los reportes con URL se arreglan mucho más rápido.