Properati Propoperty real estate Scraper
Pricing
from $1.20 / 1,000 results
Properati Propoperty real estate Scraper
Scrapes property listings from Properati (Argentina, Colombia, Ecuador, Peru). Extracts price, rooms, surface area, location, features, and full descriptions.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
12
Total users
5
Monthly active users
4 days ago
Last modified
Categories
Share

Extract property listings from properati.com at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.
Why this scraper?
🎯 Built for Latin America
A dedicated regional scraper, not a global tool with a country dropdown. Locations, price formats and currency (USD) are tuned for properati.com.
💶 Structured pricing
Asking price or rent as a clean number in USD, plus the price exactly as displayed. Price-on-request listings return null, never a guess.
🏠 Property characteristics
Bedrooms, rooms, surface and property type in structured fields, ready for filtering and analysis.
📍 Precise location
Address fields plus latitude/longitude for mapping and radius analysis.
🖼️ Listing photos
Photo URLs for every listing where the source publishes them.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new listings instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
propertyType | string | "apartment" | Type of property to search for. |
location | string | (empty) | Neighbourhood, city, or area slug as it appears in the Properati URL (e.g. 'capital-federal' for Buenos Aires city, 'palermo', 'belgrano', 'medellin'). Leave empty to search all locations. Tip: browse Properati, find your area, and copy the slug from the URL. |
minPrice | integer | (empty) | Minimum listing price (local currency). Leave empty for no minimum. |
maxPrice | integer | (empty) | Maximum listing price (local currency). Leave empty for no maximum. |
daysOld | integer | (empty) | Only return listings published within the last N days. Leave empty for no recency filter. |
maxItems | integer | 50 | Maximum number of property listings to return. |
startUrls | array | (empty) | Optional: provide specific Properati search URLs to scrape instead of using the filters above. |
country | string | "ar" | Country to search in. |
operationType | string | "sale" | Whether to search for properties for sale or for rent. |
fetchDetailsEnabled | boolean | true | If enabled, fetches each property detail page to extract the full description, surface area, and complete features list. Adds one request per listing but provides much richer data. |
maxConcurrency | integer | 5 | Number of parallel requests when fetching detail pages. Lower values are gentler on the server. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given listing are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing. |
title | string | Listing title as published. |
operationType | string | Operation type. |
propertyType | string | Property type (e.g. apartment, house). |
priceText | string | Price text. |
priceAmount | number | Asking price or rent as a number (null if price on request). |
priceCurrency | string | Currency code of the price. |
province | string | Province. |
city | string | City of the property. |
streetAddress | string | Street address. |
district | string | District. |
postcode | string | Postcode. |
country | string | Country of the property. |
bedrooms | number | Number of bedrooms (null if not stated). |
bathrooms | number | Number of bathrooms (null if not stated). |
latitude | number | Latitude of the property. |
longitude | number | Longitude of the property. |
surfaceTotal | number | Surface total. |
surfaceCovered | number | Surface covered. |
surfaceUnit | string | Surface unit. |
features | array | Feature list as published on the listing. |
agencyName | string | Agency name. |
images | array | URLs of listing photos. |
publishDate | string | Publish date. |
descriptionText | string | Description text. |
descriptionMarkdown | string | Description markdown. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
Example record
{"id": "0195839f-0687-7765-8089-9075fbe82498","url": "https://www.properati.com.ar/detalle/14032-32-6a7-9075fbe824b8-19583bf-80a9-7785","title": "Apartamento en Venta en Barrio 9 de Julio","operationType": "venta","propertyType": "apartment","priceText": "USD 90.000","priceAmount": 90000,"priceCurrency": "USD","province": "Provincia de Buenos Aires","city": "Mar del Plata","streetAddress": "Calle Teodoro Bronzini 1301-1399, Mar del Plata, General Pueyrredón, B7604, Provincia de Buenos Aires, ARG","district": "General Pueyrredón","postcode": null,"country": "AR","bedrooms": 3,"bathrooms": 2,"latitude": -37.980645,"longitude": -57.577111,"surfaceTotal": 95,"surfaceCovered": 95,"surfaceUnit": "m2","features": [],"agencyName": "Raimondi","images": ["https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMiLCJrZXkiOiJpbmdlc3Rlci8wMTk1OD …","https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMiLCJrZXkiOiJpbmdlc3Rlci8wMTk1OD …","https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMiLCJrZXkiOiJpbmdlc3Rlci8wMTk1OD …","https://img.properati.com/eyJidWNrZXQiOiJwcmQtbGlmdWxsY29ubmVjdC1iYWNrZW5kLWIyYi1pbWFnZXMiLCJrZXkiOiJpbmdlc3Rlci8wMTk1OD …"],"publishDate": "2025-03-10","descriptionText": "Departameto de 4 amb. todo externo con balcon. El mismo consta de cocina con lavadero, living comedor, 3 dormitorios y dos baños.","descriptionMarkdown": "Departameto de 4 amb. todo externo con balcon. El mismo consta de cocina con lavadero, living comedor, 3 dormitorios y dos baños.","source": "properati.com","scrapedAt": "2026-07-02T16:05:28.842Z","contentHash": "63bf0459f0cfc273"}
Examples
Listings in Buenos Aires:
{"location": "Buenos Aires","maxItems": 100}
Cap the price:
{"location": "Buenos Aires","maxItems": 100,"maxPrice": 210000}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.properati.com.ar/venta/departamento/buenos-aires/capital-federal/"}],"maxItems": 200}
Daily feed of new listings (run on a schedule):
{"location": "Buenos Aires","daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.
💰 Pricing
$1.5 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.5 |
| 10,000 | ~$15 |
| 100,000 | ~$150 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.9 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect
nullon a share of records. - Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: properati.com — Latin America property listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl