Properati Real Estate Listings Scraper (LATAM)
Pricing
from $6.15 / 1,000 results
Properati Real Estate Listings Scraper (LATAM)
Scrape Properati real estate listings across Argentina, Colombia, Peru and Ecuador. Extract price, currency, operation, property type, bedrooms, bathrooms, area, location, agent phone, WhatsApp and coordinates. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
4.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
4
Monthly active users
20 hours ago
Last modified
Categories
Share
Properati Real Estate Listings Scraper (LATAM)
Here is one real result, with every field the actor returns:
{"imageUrl": "https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMi...","title": "Casa en Venta en Valeria del Mar","price": 79000,"currency": "USD","pricePerM2": 1215,"operationType": "Venta","propertyType": "Casa","bedrooms": 1,"bathrooms": 1,"totalAreaM2": 65,"coveredAreaM2": 65,"publishDate": null,"location": "Valeria del Mar, Buenos Aires Costa Atlántica","city": "Valeria del Mar","url": "https://www.properati.com.ar/detalle/14032-32-5ed7-799e1e3cf12-19d0ef0-ab49-7b67","listingId": "019d0ed0-5eb7-7b47-ab29-0799e1e3cef2","description": "Tradicional Chalet con Gran Potencial y Amplio Fondo. Presentamos este clásico y funcional chalet de 65 m2 emplazado sobre un generoso lote que ofrece un enorme potencial de expansión.","amenities": ["Garage", "Patio"],"images": ["https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMi...","https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMi..."],"publisher": {"name": "Sallies Propiedades","url": "https://www.properati.com.ar/inmobiliaria/14032-32-d7e7-5fead9a64525-e923b6ba-b00e-47b5"},"coordinates": { "lat": -37.144241, "lng": -56.895883 },"agentPhone": null,"agentWhatsapp": null,"observedAt": "2026-08-10T14:03:39.042Z","error": null}
The most complete Properati scraper available. It returns every listing field the site exposes, including price and currency, price per m2, operation, property type, rooms, total and covered area, location and coordinates, the full image gallery, amenities, the publishing agency and agent contacts, and gives you any Properati search URL plus a detail toggle to target exactly the listings you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads a Properati search results URL you paste, walks the results page by page (30 listings per page), and writes one normalized record per listing to the run's dataset. Every record carries the listing-level fields (price, currency, price per m2, operation, property type, bedrooms, bathrooms, total and covered area, location, city, listing ID and URL). When withDetails is on (the default), each listing's detail page is opened to add the description, amenities, full image gallery, publishing agency, agent contacts and map coordinates. Missing source values are returned as null.
It works on any Properati country domain, including Argentina (.com.ar), Colombia (.com.co), Peru (.com.pe) and Ecuador (.com.ec). Apply any filters you want on the site and paste the resulting search URL.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 houses for sale in Argentina with details.
{"startUrl": "https://www.properati.com.ar/s/casa/venta","maxListings": 10,"withDetails": true}
startUrl is required. Change the domain and path to target another market or operation (for example https://www.properati.com.co/s/apartamento/arriendo). Turn withDetails off for a faster listing-only run.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | string | yes | https://www.properati.com.ar/s/casa/venta | A Properati search results URL. Apply any filters on the site and paste the resulting URL. Works on any country domain (.com.ar, .com.co, .com.pe, .com.ec and more). |
maxListings | integer | no | 10 | Maximum listings to collect. Free Apify plans are capped at 10 per run. |
withDetails | boolean | no | true | When on, opens each listing's detail page to add description, amenities, full image gallery, publisher/agent and coordinates. |
Output reference
One dataset item per listing. Types: string, integer, number, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Main listing image URL. |
title | string | Listing title. |
price | number | Asking price, or null when hidden ("Consultar precio"). |
currency | string | Price currency, for example USD, ARS, COP. |
pricePerM2 | number | Price per square meter, when computable. |
operationType | string | Operation, for example Venta, Alquiler, Arriendo. |
propertyType | string | Property type, for example Casa, Departamento. |
bedrooms | integer | Number of bedrooms, or null. |
bathrooms | integer | Number of bathrooms, or null. |
totalAreaM2 | number | Total area in m2, or null. |
coveredAreaM2 | number | Covered / roofed area in m2, or null. |
publishDate | string | Listing publish date, or null. |
location | string | Location text as published. |
city | string | City. |
url | string | Direct listing URL. |
listingId | string | Properati listing ID. |
description | string | Full description (when withDetails is on). |
amenities | string[] | Amenities list (when withDetails is on). |
images | string[] | Full image gallery URLs (when withDetails is on). |
publisher | object | Publishing agency, with name and url (when withDetails is on). |
coordinates | object | Map coordinates, with lat and lng (when withDetails is on). |
agentPhone | string | Agent phone number when published, else null. |
agentWhatsapp | string | Agent WhatsApp number when published, else null. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, an item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"startUrl":"https://www.properati.com.ar/s/casa/venta","withDetails":true}). Long image URLs are truncated with ..., the images gallery is trimmed to two of its entries, and the description is shortened; every value shown is otherwise unchanged from the live record:
{"title": "Casa en Venta en Valeria del Mar","price": 79000,"currency": "USD","pricePerM2": 1215,"operationType": "Venta","propertyType": "Casa","bedrooms": 1,"bathrooms": 1,"totalAreaM2": 65,"coveredAreaM2": 65,"publishDate": null,"location": "Valeria del Mar, Buenos Aires Costa Atlántica","city": "Valeria del Mar","url": "https://www.properati.com.ar/detalle/14032-32-5ed7-799e1e3cf12-19d0ef0-ab49-7b67","listingId": "019d0ed0-5eb7-7b47-ab29-0799e1e3cef2","amenities": ["Garage", "Patio"],"publisher": {"name": "Sallies Propiedades","url": "https://www.properati.com.ar/inmobiliaria/14032-32-d7e7-5fead9a64525-e923b6ba-b00e-47b5"},"coordinates": { "lat": -37.144241, "lng": -56.895883 },"agentPhone": null,"agentWhatsapp": null,"observedAt": "2026-08-10T14:03:39.042Z","error": null}
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~properati-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.properati.com.ar/s/casa/venta","maxListings":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~properati-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.properati.com.co/s/apartamento/arriendo","maxListings":100}'
Apify CLI:
apify call scrapers_lat/properati-scraper \--input '{"startUrl":"https://www.properati.com.pe/s/departamento/venta"}'
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). See the pricing tab for the current per-result price. - No charge on failure. If a run finds nothing or errors, the actor writes a single item with an
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 listings per run. Upgrade for higher
maxListings. - Live data. Listings are read at run time, so each record reflects what is published at the moment of the run (see
observedAt).
FAQ and troubleshooting
Which countries and Properati sites does this cover?
Any Properati country domain, including Argentina (.com.ar), Colombia (.com.co), Peru (.com.pe) and Ecuador (.com.ec). Paste a search URL from the market you want.
How do I control which listings are scraped?
Apply any filters (operation, property type, location, price) on the Properati website and paste the resulting search URL into startUrl. The actor reads exactly that search, in the same order the site shows it.
What extra data does the detail option add?
With withDetails on, each listing's detail page is opened to add the full description, amenities, complete image gallery, the publishing agency and agent contacts, and map coordinates. With it off, only the listing-level fields are collected, which is faster.
What happens to listings with missing prices or room counts?
Some listings hide the price ("Consultar precio") or omit bedroom, bathroom or area figures. Those fields are returned as null for that record while every other available field is still filled.
Do I get agent contact details?
When the listing publishes them, agentPhone and agentWhatsapp are captured, along with the publisher agency name and URL. They are null when the site does not expose them.
Is this an official Properati tool? No. This actor is independent and has no affiliation with Properati. It accesses only data that is publicly available on the platform.
Example tasks
Preconfigured templates for common scenarios. Open one and press Run, or use it as a starting point:
- Properati Bogota Apartments for Sale Scraper
- Properati Bogota Apartments for Rent Scraper
- Properati Medellin Apartments for Rent Scraper
- Properati Medellin Houses for Sale Scraper
- Properati Cali Houses for Rent Scraper
- Properati Buenos Aires Apartments for Rent Scraper
- Properati Buenos Aires Houses for Sale Scraper
- Properati Lima Apartments for Sale Scraper
- Properati Lima Apartments for Rent Scraper
- Properati Quito Houses for Sale Scraper
Related scrapers
- InfoCasas Real Estate Listings Scraper: listings across Uruguay, Paraguay and more.
- Urbania Peru Property Listings Scraper: Peru property listings and agents.
- AdondeVivir Peru Property Listings Scraper: Peru property listings and agents.
- Portal Inmobiliario Chile Real Estate Scraper: Chile property listings.
- MercadoLibre Product Listings Scraper: products, prices and sellers across LATAM.
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 Properati. Accesses only data that is publicly available on the platform. Use it in accordance with Properati's terms of service.
