Properati Real Estate Listings Scraper (LATAM) avatar

Properati Real Estate Listings Scraper (LATAM)

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Properati Real Estate Listings Scraper (LATAM)

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

4

Monthly active users

20 hours ago

Last modified

Share

Properati Real Estate Listings Scraper (LATAM)

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
startUrlstringyeshttps://www.properati.com.ar/s/casa/ventaA 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).
maxListingsintegerno10Maximum listings to collect. Free Apify plans are capped at 10 per run.
withDetailsbooleannotrueWhen 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.

FieldTypeDescription
imageUrlstringMain listing image URL.
titlestringListing title.
pricenumberAsking price, or null when hidden ("Consultar precio").
currencystringPrice currency, for example USD, ARS, COP.
pricePerM2numberPrice per square meter, when computable.
operationTypestringOperation, for example Venta, Alquiler, Arriendo.
propertyTypestringProperty type, for example Casa, Departamento.
bedroomsintegerNumber of bedrooms, or null.
bathroomsintegerNumber of bathrooms, or null.
totalAreaM2numberTotal area in m2, or null.
coveredAreaM2numberCovered / roofed area in m2, or null.
publishDatestringListing publish date, or null.
locationstringLocation text as published.
citystringCity.
urlstringDirect listing URL.
listingIdstringProperati listing ID.
descriptionstringFull description (when withDetails is on).
amenitiesstring[]Amenities list (when withDetails is on).
imagesstring[]Full image gallery URLs (when withDetails is on).
publisherobjectPublishing agency, with name and url (when withDetails is on).
coordinatesobjectMap coordinates, with lat and lng (when withDetails is on).
agentPhonestringAgent phone number when published, else null.
agentWhatsappstringAgent WhatsApp number when published, else null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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:

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.