Urbania Peru Real Estate Scraper | Property Listings & API
Pricing
from $6.15 / 1,000 results
Urbania Peru Real Estate Scraper | Property Listings & API
Scrape Urbania.pe real estate listings for sale or rent across Peru: Lima, Arequipa, Cusco. Get price in USD and PEN, maintenance fee, bedrooms, bathrooms, area, district, coordinates, agent phone, WhatsApp, agency and image galleries. Filter by price, area, beds. Export JSON, CSV, Excel.
Pricing
from $6.15 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Urbania Peru Real Estate Scraper: Property Listings Data and API
Scrape Urbania.pe, Peru's largest real estate portal, and get clean, structured property listings data for sale and rent across Lima, Arequipa, Cusco, Trujillo, Piura and every other market on the site. This is the most complete Urbania scraper available: it returns every field the listing and detail pages expose, including agent phone and WhatsApp, the full image gallery, amenities, map coordinates, prices in both USD and PEN, and derived analytics like price per square meter.
Point it at any Urbania search URL and export the results to JSON, CSV or Excel, or pull them straight from the Apify API. Perfect for real estate market research, price monitoring, lead generation, comparative market analysis (CMA), property investment models and proptech datasets.
Here is one real result (image gallery trimmed to 3 of 17 real URLs):
{"imageUrl": "https://img10.naventcdn.com/avisos/111/00/14/96/61/43/720x532/1614231298.jpg","title": "Venta de Departamento Amoblado Primer Piso en San Miguel con Patio Privado","price": 438406,"currency": "PEN","priceUsd": 129000,"pricePen": 438406,"pricePerM2": 5768.5,"pricePerM2Currency": "PEN","operationType": "venta","propertyType": "Departamento","bedrooms": 2,"bathrooms": 2,"totalAreaM2": 76,"builtAreaM2": 76,"maintenanceFee": 200,"maintenanceFeeCurrency": "PEN","location": "San Miguel, Lima","address": "San Miguel","district": "San Miguel","city": "Lima","province": "Lima","status": "ONLINE","reserved": false,"age": "2","postingCode": "7985584","contactName": "Rosalia Alvarez","publishDate": "2026-04-27T14:50:20Z","amenities": ["Jardin(es)", "Terraza", "Mascotas"],"images": ["https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1614231298.jpg","https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1112635459.jpg","https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1535959454.jpg"],"publisher": {"name": "CENTURY 21 PREMIUM","url": "https://urbania.pe/inmobiliarias/century-21-premium_1588924-inmuebles.html","logo": "https://img10.naventcdn.com/empresas/111/00/01/58/89/24/130x70/logo.jpg","publisherId": "1588924","partialPhone": "+51","premium": false,"publisherTypeId": 2},"publisherId": "1588924","publisherLogo": "https://img10.naventcdn.com/empresas/111/00/01/58/89/24/130x70/logo.jpg","agentPhone": "+51963201735","agentWhatsapp": "+51963201735","coordinates": { "lat": -12.077, "lng": -77.093 },"url": "https://urbania.pe/inmueble/clasificado/venta-de-departamento-en-san-miguel-lima-149661438","listingId": "149661438","observedAt": "2026-09-04T14:39:11.894Z","detailError": null,"error": null}
Input - Output - Pricing - Examples
Table of contents
- What it does
- Use cases
- Quickstart
- Input reference
- Output reference
- How it compares
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor opens one or more Urbania.pe search result URLs, paginates through the matching property listings, and writes one normalized record per listing to the run's dataset. Card data (price in both currencies, maintenance fee, bedrooms, bathrooms, area, location, agency logo and a description snippet) is captured for every listing. When withDetails is enabled, each listing's detail page is fetched to add the full description, complete amenities list, full image gallery, publisher and agent contacts with phone and WhatsApp, the exact street address and map coordinates.
Missing source values are returned as null, never invented, and derived fields (pricePerM2, pricePerM2Currency) are computed on top of the raw listing so you can sort and compare without extra parsing. Data covers Urbania.pe sale and rental listings for apartments, houses, offices, commercial spaces, land and vertical new-build projects across Peru.
Use cases
- Real estate market research and CMA: pull every comparable listing in a district and rank by
pricePerM2to price a property or spot mispriced inventory. - Property lead generation: collect agent phone, WhatsApp, contact name and agency for every listing that matches your criteria.
- Price and inventory monitoring: schedule daily runs to track price drops, new listings and time on market.
- Proptech and investment datasets: feed structured Peru property data into dashboards, valuation models and machine learning pipelines.
- Migration and portal comparison: normalize Urbania data alongside other Peru portals for a single view of the market.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 apartment-for-sale listings with full detail pages.
{"maxListings": 10,"withDetails": true,"startUrl": "https://urbania.pe/buscar/venta-de-departamentos","priceCurrency": "USD"}
Build any startUrl by applying filters on urbania.pe (operation, property type, location, price, rooms, area and sort order) and pasting the resulting search URL. Add several URLs at once with startUrls. The optional Min/Max filters refine the results further without hand-building a URL.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | string | no* | https://urbania.pe/buscar/venta-de-departamentos | An Urbania.pe search results URL. Apply any filters on urbania.pe and paste the resulting URL. |
startUrls | array | no* | [] | Optional list of Urbania.pe search URLs to scrape in one run. Accepts plain strings or {"url": "..."} objects. Results are de-duplicated across URLs. |
maxListings | integer | no | 10 | Maximum number of listings to collect. Leave blank on a paid plan to collect the full result set. |
withDetails | boolean | no | true | Paid add-on. When enabled, each listing's detail page is fetched to add description, amenities, full image gallery, publisher and agent contacts, maintenance fee, exact address and coordinates. |
minPrice | integer | no | (none) | Keep only listings priced at or above this amount, in priceCurrency. |
maxPrice | integer | no | (none) | Keep only listings priced at or below this amount, in priceCurrency. |
priceCurrency | enum | no | USD | Currency the Min/Max price bounds apply to. One of USD, PEN. Uses the exact figure in that currency when the card lists both. |
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 square meters. |
maxAreaM2 | integer | no | (none) | Keep only listings with total area at or below this many square meters. |
*Provide at least one search URL in startUrl or startUrls. Filters combine with logical AND on top of whatever the search URL already returns.
Output reference
One dataset item per listing. Types: string, number, boolean, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
listingId | string | Urbania listing ID. |
url | string | Canonical listing URL. |
title | string | Listing title as shown on Urbania. |
imageUrl | string | Primary listing thumbnail. |
price | number | Listing price in currency (the currency the seller listed in). |
currency | string | Primary price currency (USD or PEN). |
priceUsd | number | Price in US dollars when the card shows it. |
pricePen | number | Price in Peruvian soles when the card shows it. |
pricePerM2 | number | Derived price per square meter (price / totalAreaM2). |
pricePerM2Currency | string | Currency of pricePerM2. |
maintenanceFee | number | Monthly maintenance / HOA fee, or null. |
maintenanceFeeCurrency | string | Currency of the maintenance fee, or null. |
operationType | string | Operation, for example venta (sale) or alquiler (rent). |
propertyType | string | Property type, for example Departamento, Casa, Oficina. |
bedrooms | number | Number of bedrooms, or null. |
bathrooms | number | Number of bathrooms, or null. |
halfBathrooms | number | Number of half bathrooms, or null. |
parkingSpaces | number | Number of parking spaces, or null. |
totalAreaM2 | number | Total area in square meters. |
builtAreaM2 | number | Covered / built area in square meters, or null. |
age | string | Property age or A estrenar (brand new), or null. |
isNew | boolean | true when the listing is flagged brand new. |
numberOfFloors | number | Number of floors, or null. |
location | string | Neighborhood and district as shown in the listing. |
address | string | Street address (detail page). |
district | string | District. |
city | string | City. |
province | string | Province. |
coordinates | object | { lat, lng } map coordinates, or null. |
status | string | Listing status, for example ONLINE or OFFLINE. |
reserved | boolean | true if the listing is marked reserved. |
postingCode | string | Urbania internal listing code. |
publishDate | string | ISO 8601 publish timestamp. |
description | string | Listing description (card snippet, or full text with detail pages). |
amenities | string[] | Amenities listed on the detail page. |
images | string[] | Full image gallery URLs (detail page). |
publisher | object | Agency block: name, url, logo, publisherId, partialPhone, license, premium, publisherTypeId. |
publisherId | string | Agency ID. |
publisherLogo | string | Agency logo image URL. |
contactName | string | Agent's personal contact name when published, or null. |
agentPhone | string | Agent phone number, or null. |
agentWhatsapp | string | Agent WhatsApp number, or null. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
detailError | string | null on success; set when only the detail page failed while the listing row is still valid (the detail add-on is not charged then). |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
How it compares
We accept every input the alternatives accept and return every field they return, plus extras that no other Peru property scraper provides.
| Capability | This actor | ecomscrape / adondevivir | lentic_clockss / properati | Typical generic real estate actor |
|---|---|---|---|---|
| Urbania.pe coverage | Yes, dedicated | No (Adondevivir) | Partial (Properati) | No |
| Search URL input | Yes | Yes | Yes | Sometimes |
| Multiple start URLs | Yes | Yes | Yes | Sometimes |
| Operation, type, location, price, rooms, area filters | Yes (URL + client filters) | Yes | Partial | Partial |
| Price in both USD and PEN | Yes | Yes | No | No |
| Maintenance / HOA fee | Yes | Yes | No | Rarely |
| Agent phone | Yes | No (WhatsApp only) | No | Rarely |
| Agent WhatsApp | Yes | Yes | No | Rarely |
| Agent contact name | Yes | No | No | No |
| Amenities and full gallery | Yes | Yes | Partial | Sometimes |
| Map coordinates | Yes | Yes | Partial | Sometimes |
| Price per square meter | Yes (derived) | No | No | No |
| Honest null on missing values | Yes | Yes | Varies | Varies |
| Pay per result, no charge on failure | Yes | Varies | Varies | Varies |
Recency and sort filters (for example newest first or last week) are set directly in the Urbania search URL, so the startUrl approach covers them without extra inputs.
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~urbania-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://urbania.pe/buscar/venta-de-departamentos","maxListings":25,"withDetails":true,"priceCurrency":"USD"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~urbania-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://urbania.pe/buscar/alquiler-de-departamentos-en-miraflores","maxListings":100,"minPrice":500,"maxPrice":1500,"priceCurrency":"USD"}'
Apify CLI:
apify call scrapers_lat/urbania-scraper \--input '{"startUrl":"https://urbania.pe/buscar/venta-de-casas-en-la-molina","maxListings":50}'
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 record returned (
resultevent). See the pricing tab for the current per-result price. - Detail add-on. With
withDetailson, each enriched record adds onedetailscharge, billed only after the row is delivered and only on a genuine detail success. It runs on paid plans only. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - 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 list-only output. Upgrade for the full result set and detail pages.
FAQ and troubleshooting
A run returned 0 records. Why? The search URL matched nothing, or your Min/Max filters removed everything. Loosen the filters or widen the search URL. Zero-result runs are not charged.
How do I get agent phone numbers and WhatsApp?
Use a paid plan and keep withDetails enabled. agentPhone, agentWhatsapp, contactName and the publisher block come from the listing detail page.
How do I filter by price, area, or bedrooms?
Either apply the filters directly on urbania.pe and paste the resulting URL, or use minPrice/maxPrice/priceCurrency, minAreaM2/maxAreaM2, and minBedrooms/maxBedrooms/minBathrooms.
Why is bathrooms or coordinates null?
The source listing did not publish that value. Missing source values are returned as null, never invented.
Is this an official Urbania tool? No. This actor is independent and has no affiliation with Urbania. It reads only data that is publicly available on urbania.pe.
Urbania Peru Scraper de Inmuebles: Datos y API de Propiedades
Extrae datos de Urbania.pe, el portal inmobiliario mas grande del Peru, y obten datos de propiedades limpios y estructurados en venta y alquiler en Lima, Arequipa, Cusco, Trujillo, Piura y cualquier otro mercado del sitio. Este es el scraper de Urbania mas completo disponible: devuelve todos los campos que exponen las paginas de aviso y de detalle, incluido el telefono del agente y WhatsApp, la galeria de imagenes completa, las comodidades, las coordenadas en el mapa, precios en dolares y soles, y campos derivados como el precio por metro cuadrado.
Apuntalo a cualquier URL de busqueda de Urbania y exporta los resultados a JSON, CSV o Excel, o descargalos directamente desde la API de Apify. Ideal para estudios de mercado inmobiliario, monitoreo de precios, generacion de leads, analisis comparativo de mercado (ACM), modelos de inversion en propiedades y datasets de proptech.
Aqui tienes un resultado real (galeria de imagenes recortada a 3 de 17 URLs reales):
{"imageUrl": "https://img10.naventcdn.com/avisos/111/00/14/96/61/43/720x532/1614231298.jpg","title": "Venta de Departamento Amoblado Primer Piso en San Miguel con Patio Privado","price": 438406,"currency": "PEN","priceUsd": 129000,"pricePen": 438406,"pricePerM2": 5768.5,"pricePerM2Currency": "PEN","operationType": "venta","propertyType": "Departamento","bedrooms": 2,"bathrooms": 2,"totalAreaM2": 76,"builtAreaM2": 76,"maintenanceFee": 200,"maintenanceFeeCurrency": "PEN","location": "San Miguel, Lima","address": "San Miguel","district": "San Miguel","city": "Lima","province": "Lima","status": "ONLINE","reserved": false,"age": "2","postingCode": "7985584","contactName": "Rosalia Alvarez","publishDate": "2026-04-27T14:50:20Z","amenities": ["Jardin(es)", "Terraza", "Mascotas"],"images": ["https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1614231298.jpg","https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1112635459.jpg","https://img10.naventcdn.com/avisos/resize/111/00/14/96/61/43/1200x1200/1535959454.jpg"],"publisher": {"name": "CENTURY 21 PREMIUM","url": "https://urbania.pe/inmobiliarias/century-21-premium_1588924-inmuebles.html","logo": "https://img10.naventcdn.com/empresas/111/00/01/58/89/24/130x70/logo.jpg","publisherId": "1588924","partialPhone": "+51","premium": false,"publisherTypeId": 2},"publisherId": "1588924","publisherLogo": "https://img10.naventcdn.com/empresas/111/00/01/58/89/24/130x70/logo.jpg","agentPhone": "+51963201735","agentWhatsapp": "+51963201735","coordinates": { "lat": -12.077, "lng": -77.093 },"url": "https://urbania.pe/inmueble/clasificado/venta-de-departamento-en-san-miguel-lima-149661438","listingId": "149661438","observedAt": "2026-09-04T14:39:11.894Z","detailError": null,"error": null}
Entrada - Salida - Precios - Ejemplos
Tabla de contenidos
- Que hace
- Casos de uso
- Inicio rapido
- Referencia de entrada
- Referencia de salida
- Como se compara
- Uso via API y CLI
- Obtener resultados
- Facturacion y limites
- Preguntas frecuentes
Que hace
El actor abre una o varias URLs de resultados de busqueda de Urbania.pe, recorre las paginas de avisos que coinciden y escribe un registro normalizado por aviso en el dataset de la ejecucion. Los datos de la tarjeta (precio en ambas monedas, mantenimiento, dormitorios, banos, area, ubicacion, logo de la inmobiliaria y un extracto de la descripcion) se capturan en cada aviso. Cuando withDetails esta activo, se descarga la pagina de detalle de cada aviso para agregar la descripcion completa, la lista completa de comodidades, la galeria completa de imagenes, los contactos de la inmobiliaria y del agente con telefono y WhatsApp, la direccion exacta y las coordenadas del mapa.
Los valores ausentes en la fuente se devuelven como null, nunca inventados, y los campos derivados (pricePerM2, pricePerM2Currency) se calculan sobre el aviso original para que puedas ordenar y comparar sin procesamiento adicional. Los datos cubren avisos de venta y alquiler de Urbania.pe para departamentos, casas, oficinas, locales comerciales, terrenos y proyectos verticales de estreno en todo el Peru.
Casos de uso
- Estudio de mercado inmobiliario y ACM: obten cada aviso comparable en un distrito y ordena por
pricePerM2para tasar una propiedad o detectar inventario mal valorado. - Generacion de leads inmobiliarios: reune telefono del agente, WhatsApp, nombre de contacto e inmobiliaria de cada aviso que cumpla tus criterios.
- Monitoreo de precios e inventario: programa ejecuciones diarias para seguir bajadas de precio, avisos nuevos y tiempo en el mercado.
- Datasets de proptech e inversion: alimenta datos estructurados de propiedades del Peru en tableros, modelos de tasacion y pipelines de machine learning.
- Migracion y comparacion de portales: normaliza datos de Urbania junto a otros portales del Peru para una vista unica del mercado.
Inicio rapido
Abre el actor, pega esto en la entrada y presiona Run. Devuelve 10 avisos de departamentos en venta con paginas de detalle completas.
{"maxListings": 10,"withDetails": true,"startUrl": "https://urbania.pe/buscar/venta-de-departamentos","priceCurrency": "USD"}
Construye cualquier startUrl aplicando filtros en urbania.pe (operacion, tipo de propiedad, ubicacion, precio, ambientes, area y orden) y pegando la URL de busqueda resultante. Agrega varias URLs a la vez con startUrls. Los filtros opcionales Min/Max refinan aun mas los resultados sin construir una URL a mano.
Referencia de entrada
| Campo | Tipo | Requerido | Predeterminado | Descripcion |
|---|---|---|---|---|
startUrl | string | no* | https://urbania.pe/buscar/venta-de-departamentos | Una URL de resultados de busqueda de Urbania.pe. Aplica filtros en urbania.pe y pega la URL resultante. |
startUrls | array | no* | [] | Lista opcional de URLs de busqueda de Urbania.pe para procesar en una sola ejecucion. Acepta strings o objetos {"url": "..."}. Los resultados se deduplican entre URLs. |
maxListings | integer | no | 10 | Numero maximo de avisos a recolectar. Dejalo vacio en un plan de pago para recolectar todo el conjunto de resultados. |
withDetails | boolean | no | true | Complemento de pago. Cuando esta activo, se descarga la pagina de detalle de cada aviso para agregar descripcion, comodidades, galeria completa, contactos de inmobiliaria y agente, mantenimiento, direccion exacta y coordenadas. |
minPrice | integer | no | (ninguno) | Conserva solo avisos con precio igual o superior a este monto, en priceCurrency. |
maxPrice | integer | no | (ninguno) | Conserva solo avisos con precio igual o inferior a este monto, en priceCurrency. |
priceCurrency | enum | no | USD | Moneda a la que aplican los limites Min/Max. Una de USD, PEN. Usa la cifra exacta en esa moneda cuando la tarjeta muestra ambas. |
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 banos. |
minAreaM2 | integer | no | (ninguno) | Conserva solo avisos con area total igual o superior a estos metros cuadrados. |
maxAreaM2 | integer | no | (ninguno) | Conserva solo avisos con area total igual o inferior a estos metros cuadrados. |
*Proporciona al menos una URL de busqueda en startUrl o startUrls. Los filtros se combinan con AND logico sobre lo que ya devuelve la URL de busqueda.
Referencia de salida
Un item de dataset por aviso. Tipos: string, number, boolean, string[], object, o null cuando el valor de la fuente esta ausente.
| Campo | Tipo | Descripcion |
|---|---|---|
listingId | string | ID del aviso en Urbania. |
url | string | URL canonica del aviso. |
title | string | Titulo del aviso tal como aparece en Urbania. |
imageUrl | string | Miniatura principal del aviso. |
price | number | Precio del aviso en currency (la moneda en que publico el vendedor). |
currency | string | Moneda principal del precio (USD o PEN). |
priceUsd | number | Precio en dolares cuando la tarjeta lo muestra. |
pricePen | number | Precio en soles cuando la tarjeta lo muestra. |
pricePerM2 | number | Precio por metro cuadrado derivado (price / totalAreaM2). |
pricePerM2Currency | string | Moneda de pricePerM2. |
maintenanceFee | number | Cuota mensual de mantenimiento, o null. |
maintenanceFeeCurrency | string | Moneda de la cuota de mantenimiento, o null. |
operationType | string | Operacion, por ejemplo venta o alquiler. |
propertyType | string | Tipo de propiedad, por ejemplo Departamento, Casa, Oficina. |
bedrooms | number | Numero de dormitorios, o null. |
bathrooms | number | Numero de banos, o null. |
halfBathrooms | number | Numero de medios banos, o null. |
parkingSpaces | number | Numero de cocheras, o null. |
totalAreaM2 | number | Area total en metros cuadrados. |
builtAreaM2 | number | Area techada / construida en metros cuadrados, o null. |
age | string | Antiguedad de la propiedad o A estrenar, o null. |
isNew | boolean | true cuando el aviso esta marcado como de estreno. |
numberOfFloors | number | Numero de pisos, o null. |
location | string | Barrio y distrito tal como aparece en el aviso. |
address | string | Direccion (pagina de detalle). |
district | string | Distrito. |
city | string | Ciudad. |
province | string | Provincia. |
coordinates | object | Coordenadas { lat, lng } del mapa, o null. |
status | string | Estado del aviso, por ejemplo ONLINE u OFFLINE. |
reserved | boolean | true si el aviso esta marcado como reservado. |
postingCode | string | Codigo interno del aviso en Urbania. |
publishDate | string | Marca de tiempo de publicacion ISO 8601. |
description | string | Descripcion del aviso (extracto de tarjeta, o texto completo con paginas de detalle). |
amenities | string[] | Comodidades listadas en la pagina de detalle. |
images | string[] | URLs de la galeria completa de imagenes (pagina de detalle). |
publisher | object | Bloque de la inmobiliaria: name, url, logo, publisherId, partialPhone, license, premium, publisherTypeId. |
publisherId | string | ID de la inmobiliaria. |
publisherLogo | string | URL del logo de la inmobiliaria. |
contactName | string | Nombre de contacto del agente cuando se publica, o null. |
agentPhone | string | Telefono del agente, o null. |
agentWhatsapp | string | WhatsApp del agente, o null. |
observedAt | string | Marca de tiempo ISO 8601 de cuando se recolecto el registro. |
detailError | string | null en exito; se establece cuando solo fallo la pagina de detalle y la fila del aviso sigue siendo valida (en ese caso no se cobra el complemento de detalle). |
error | string | null en exito. En una ejecucion fallida se escribe un unico item con el campo error poblado. |
Como se compara
Aceptamos todas las entradas que aceptan las alternativas y devolvemos todos los campos que ellas devuelven, mas extras que ningun otro scraper de propiedades del Peru ofrece.
| Capacidad | Este actor | ecomscrape / adondevivir | lentic_clockss / properati | Actor inmobiliario generico tipico |
|---|---|---|---|---|
| Cobertura de Urbania.pe | Si, dedicado | No (Adondevivir) | Parcial (Properati) | No |
| Entrada por URL de busqueda | Si | Si | Si | A veces |
| Varias URLs de inicio | Si | Si | Si | A veces |
| Filtros de operacion, tipo, ubicacion, precio, ambientes, area | Si (URL + filtros de cliente) | Si | Parcial | Parcial |
| Precio en dolares y soles | Si | Si | No | No |
| Cuota de mantenimiento | Si | Si | No | Rara vez |
| Telefono del agente | Si | No (solo WhatsApp) | No | Rara vez |
| WhatsApp del agente | Si | Si | No | Rara vez |
| Nombre de contacto del agente | Si | No | No | No |
| Comodidades y galeria completa | Si | Si | Parcial | A veces |
| Coordenadas del mapa | Si | Si | Parcial | A veces |
| Precio por metro cuadrado | Si (derivado) | No | No | No |
null honesto en valores ausentes | Si | Si | Varia | Varia |
| Pago por resultado, sin cargo por fallo | Si | Varia | Varia | Varia |
Los filtros de recencia y orden (por ejemplo mas nuevos primero o ultima semana) se configuran directamente en la URL de busqueda de Urbania, por lo que el enfoque de startUrl los cubre sin entradas adicionales.
Uso 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.
Ejecuta de forma sincrona y obten los items del dataset en una sola llamada:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~urbania-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://urbania.pe/buscar/venta-de-departamentos","maxListings":25,"withDetails":true,"priceCurrency":"USD"}'
Inicia una ejecucion de forma asincrona:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~urbania-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://urbania.pe/buscar/alquiler-de-departamentos-en-miraflores","maxListings":100,"minPrice":500,"maxPrice":1500,"priceCurrency":"USD"}'
Apify CLI:
apify call scrapers_lat/urbania-scraper \--input '{"startUrl":"https://urbania.pe/buscar/venta-de-casas-en-la-molina","maxListings":50}'
Obtener resultados
Cada ejecucion escribe en un dataset. Obten 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 paginar grandes conjuntos de resultados. clean=true elimina campos vacios e internos.
Facturacion y limites
- Pago por resultado. Se cobra por registro devuelto (evento
result). Consulta la pestana de precios para el precio por resultado vigente. - Complemento de detalle. Con
withDetailsactivo, cada registro enriquecido agrega un cargodetails, facturado solo despues de entregar la fila y solo ante un exito genuino de detalle. Corre solo en planes de pago. - Sin cargo por fallo. Si una ejecucion falla, el actor escribe un unico item con el campo
errorpoblado y no lo cobra. Las ejecuciones vacias no cuestan nada. - Limite de gasto respetado. Configura
maxTotalChargeUsden la ejecucion; al alcanzarlo, el actor deja de emitir y cobrar mas resultados facturables. - Los planes gratuitos de Apify estan limitados a 10 registros por ejecucion y salida solo de tarjeta. Actualiza para el conjunto completo de resultados y paginas de detalle.
Preguntas frecuentes
Una ejecucion devolvio 0 registros. Por que? La URL de busqueda no coincidio con nada, o tus filtros Min/Max eliminaron todo. Afloja los filtros o amplia la URL de busqueda. Las ejecuciones con cero resultados no se cobran.
Como obtengo telefonos de agentes y WhatsApp?
Usa un plan de pago y manten withDetails activo. agentPhone, agentWhatsapp, contactName y el bloque publisher provienen de la pagina de detalle del aviso.
Como filtro por precio, area o dormitorios?
Aplica los filtros directamente en urbania.pe y pega la URL resultante, o usa minPrice/maxPrice/priceCurrency, minAreaM2/maxAreaM2 y minBedrooms/maxBedrooms/minBathrooms.
Por que bathrooms o coordinates son null?
El aviso de origen no publico ese valor. Los valores ausentes en la fuente se devuelven como null, nunca inventados.
Es esta una herramienta oficial de Urbania? No. Este actor es independiente y no tiene afiliacion con Urbania. Solo lee datos disponibles publicamente en urbania.pe.
Related scrapers
- Adondevivir Peru Property Listings Scraper: Adondevivir property listings in Peru.
- InfoCasas Real Estate Listings Scraper: InfoCasas listings across Uruguay, Paraguay and more.
- MercadoLibre Product Listings Scraper: Products, prices and seller data across LATAM.
- Fincaraiz Colombia Real Estate Scraper: Colombian property listings.
- Compreoalquile Panama Real Estate Scraper: Panama property listings.
- Encuentra24 Real Estate Scraper: Central America property listings.
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.
Independent tool, not affiliated with Urbania. Accesses only publicly available data on urbania.pe.
