Zonaprop Argentina at a glance
Zonaprop Argentina is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, title, operation, type and price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Real Estate, Automation, Lead Generation
- Pricing
- $1.80 per 1,000 results (Free plan), from $1.00 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 29 options
Scrape Zonaprop.com.ar property listings across Argentina. Extract 140+ fields including USD/ARS prices, price per m², expenses, area, rooms, bedrooms, bathrooms, GPS, descriptions, photos, agency contacts, phone and WhatsApp. Supports buy, rent, temporary listings, filters, sorting and URLs.
What Zonaprop Argentina can do
- 150+ named fields per property, including USD and ARS prices, price per square metre, expenses, areas, rooms, garages, age, GPS, the full description and the photo set.
- Agency and owner contacts: name, type, profile URL, phone and WhatsApp number.
- Two input modes: build searches from location names plus filters, or paste zonaprop URLs of any supported shape (search, agency and single property pages).
- Filters that follow you into URL mode: price, currency, area, room, bedroom, bathroom and agency filters narrow both a location search and a pasted URL.
- Incremental monitoring: scheduled runs return only new, changed and reappeared listings, and three dataset views (Overview, Agency & Contacts, Detail) organise the output.
- Fails loudly, bills fairly: if the site refuses every request the run stops with a clear error, and an empty search finishes with an empty dataset and no placeholder row.
Choose what to collect
These inputs let you configure Zonaprop Argentina - Properties, Prices & Agencies. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | search = build searches from location names + filters. url = paste one or more zonaprop search URLs. |
locationsarray | Location names to search, e.g. Capital Federal, Palermo, Cordoba, Mendoza. Accents and spaces are handled automatically. Only applies when mode = search. |
operationTypestring | Buy, rent or temporary rent. Only applies when mode = search. |
propertyTypestring | Property category to search. 'All' covers every type. Only applies when mode = search. |
minPriceinteger | Minimum price in the listing currency. Applies in Search mode and URL mode, including a pasted URL. |
maxPriceinteger | Maximum price in the listing currency. Applies in Search mode and URL mode, including a pasted URL. |
currencystring | Keep only listings priced in this currency. Argentine listings are quoted in USD or ARS. Applies in Search mode and URL mode, including a pasted URL. |
Show 22 more inputs
| Input | What it controls |
|---|---|
minAreainteger | Minimum total area in square metres. Applies in Search mode and URL mode, including a pasted URL. |
maxAreainteger | Maximum total area in square metres. Applies in Search mode and URL mode, including a pasted URL. |
minRoomsinteger | Minimum number of rooms (ambientes). Applies in Search mode and URL mode, including a pasted URL. |
maxRoomsinteger | Maximum number of rooms (ambientes). Applies in Search mode and URL mode, including a pasted URL. |
minBedroomsinteger | Minimum number of bedrooms (dormitorios). Applies in Search mode and URL mode, including a pasted URL. |
minBathroomsinteger | Minimum number of bathrooms (banos). Applies in Search mode and URL mode, including a pasted URL. Listings that do not state a bathroom count are excluded. |
agenciesOnlyboolean | Keep only listings published by a real-estate agency (drops listings from private owners). Applies in Search mode and URL mode, including a pasted URL. |
sortBystring | Result ordering. Only applies when mode = search. A pasted URL carries its own order. |
urlsarray | Paste one or more zonaprop URLs: a search page (any type, operation, location, rooms or sort slug, temporary rent, or a '-pagina-N' page to start from), an agency page (/inmobiliarias/_-inmuebles.html), or a single property page (/propiedades/clasificado/...). The agency directory (/inmobiliarias.bum) is not supported. Non-www and mobile hosts are normalised to www. Location, operation, property type and sort order above are ignored in this mode (a pasted URL carries its own); price, currency, area, room, bedroom, bathroom and agency filters above still apply to search and agency pages (not to single property pages). Results are collected starting from the page in the URL. |
fetchDetailsboolean | Fetch each property page to add the full untruncated description. The search results already include a description, location, GPS, agency contact, prices and all photos, so leave this off for the fastest, cheapest run. Adds one request per property. |
maxPagesinteger | Optional safety stop on how many result pages to read per location/URL (about 30 listings per page). This does NOT cap the run: leave it empty (or 0) for unlimited pages and the run is bounded solely by Max listings. Set a value only if you also want a per-search page ceiling. |
maxListingsinteger | The run's single hard cap: maximum total listings across all searches. Defaults to 20. Set 0 for unlimited. This is the only default limit; Max pages is unlimited by default and defers to this. |
trafficBudgetMbinteger | Optional cap on total downloaded data per run, in megabytes. Once reached, the run switches to the cheaper backup connection. Leave empty or 0 for no budget. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large pull without returning or charging for listings already collected there. Use this after an interrupted run. For recurring monitoring of the same search, use Incremental mode below instead. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns all matching listings as NEW. Later runs return only NEW, UPDATED and REAPPEARED listings. A listing counts as UPDATED when a real listing field changes (price, expenses, title, description, address, publisher, features, photo count and similar). Photo URLs (images, photos, mainImage, publisher logo), the antiquity counter (age, yearBuilt, condition) and the scrape timestamp (scrapedAt) never count as changes, though they are still returned. Listings that did not change are not returned and not billed unless "Emit unchanged" is on. Listings that were not scanned in a run keep their previous state. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the mode, locations/URLs, operation, property type and filters, so different searches never mix state. |
emitUnchangedboolean | Off by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. Detail enrichment is not run for unchanged rows. |
emitExpiredboolean | Off by default. Turn on to also return listings that were in your previous scans but are no longer found, marked EXPIRED. Only emitted when the run walked every result page of every search to the end (no Max listings cap hit, no Max pages limit, no URL starting past page 1); otherwise nothing is marked expired. |
ignoreFieldsForChangesarray | Output field names that should NOT make a listing count as UPDATED. Always ignored: images, photos, media, pictures, mainImage, list_first_image_url, publisherLogo, url_logo, publisher.logo (rotating photo URLs; photoCount still catches added or removed photos), age, yearBuilt, condition (antiquity counter), viewCount (per-visit counter on a property page), publishedAgo (daily "hace N días" text) and scrapedAt. Add fields such as description or labels here if changes to them are not relevant to you. Use a dotted path (for example publisher.name) for a field inside a nested object. Ignored fields are still returned in the output. |
mcpConnectorsarray | Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
postingIdID (text)titleTitle (text)operationTypeOperation (text)propertyTypeType (text)pricePrice (number)currencyCur (text)expensesExpenses (number)totalAreaArea m2 (number)roomsRooms (number)bedroomsBeds (number)bathroomsBaths (number)neighborhoodNeighborhood (text)Show 22 more fields
cityCity (text)provinceProvince (text)latitudeLat (number)longitudeLng (number)publisherNameAgency (text)urlURL (link)publisherTypeType (text)publisherPhonePhone (text)publisherWhatsappWhatsApp (text)publisherUrlAgency URL (link)hasWhatsappHas WhatsApp (boolean)descriptionDescription (text)priceUsdPrice USD (number)priceArsPrice ARS (number)coveredAreaCovered m2 (number)garagesGarages (number)ageAge (number)amenitiesAmenities (array)mainImageMain image (image)photoCountPhotos (number)imagesImages (array)modifiedDateModified (text)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"postingId": "00000000",
"postingCode": "AAAAAA",
"url": "https://www.zonaprop.com.ar/propiedades/clasificado/example-00000000.html",
"title": "Bright 2-bedroom apartment in Palermo",
"description": "Sunny apartment, fully equipped, close to transport and shops.",
"propertyType": "Departamentos",
"operationType": "Venta",
"status": "ONLINE",
"price": 185000,
"currency": "USD",
"priceUsd": 185000,
"priceArs": null,
"expenses": 80000,
"expensesCurrency": "$",
"totalArea": 72,
"coveredArea": 65,
"rooms": 3,
"bedrooms": 2,
"bathrooms": 1,
"garages": 1,
"age": 8,
"address": "Example St 100",
"neighborhood": "Palermo",
"city": "Capital Federal",
"province": "Capital Federal",
"country": "Argentina",
"latitude": -34.588,
"longitude": -58.43,
"mainImage": "https://example.com/photo-1.jpg",
"images": [
"https://example.com/photo-1.jpg",
"https://example.com/photo-2.jpg"
],
"photoCount": 2,
"amenities": [
"Pool",
"Gym"
],
"publisherName": "Jane Doe Propiedades",
"publisherType": "agency",
"publisherPhone": "5491100000000",
"publisherWhatsapp": "5491100000000",
"hasWhatsapp": true,
"modifiedDate": "2026-01-01T00:00:00-0300",
"scrapedAt": "2026-01-01T00:00:00+00:00"
}Ways to use this data
- Real estate portals and PropTech teams: build a comparison site or search index of Argentina listings with price, area and location data.
- Investors and analysts: track price per square metre, expenses and inventory mix across neighborhoods and cities.
- Lead generation and CRM tools: pull agency and owner phone and WhatsApp contacts for outreach lists.
- Market researchers: monitor buy versus rent inventory and pricing trends over time.
- Mapping and listing apps: feed GPS coordinates, photos and descriptions into your own map or UI.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Zonaprop Argentina return?
The documented output for Zonaprop Argentina includes id, title, operation, type, price, cur, expenses and area m2. Availability of each field depends on the source page and the selected mode.
How much does Zonaprop Argentina cost?
It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I schedule it, or only get new listings?
You can schedule the actor from the Schedules tab like any other actor. Turn on Incremental changes for scheduled runs and the actor remembers each listing between runs (state is kept per search, or per State key you choose). The first run returns everything as NEW; after that you get only NEW, UPDATED and REAPPEARED listings, and listings that did not change are neither returned nor billed. changedFields names exactly what moved. Photo URLs, the antiquity counter (age, yearBuilt, condition), the per-visit viewCount, the daily publishedAgo text and scrapedAt never count as changes, though they are still returned; add more in Ignore fields when detecting changes. In incremental mode, detail enrichment (fetchDetails) and its charge apply only to NEW, UPDATED and REAPPEARED rows, never to unchanged ones, and an incremental run where nothing changed returns an empty dataset. Without incremental mode every run reads the live site from scratch.
What changed in URL mode?
URL mode now accepts search pages, agency pages and single property pages (a property page returns one row with its title, description and main image). The agency directory (/inmobiliarias.bum) is not supported and is skipped with a warning. The URLs field now has a default: if you switch to URL mode and leave it unedited, the run scrapes one example of each shape instead of failing with no URLs. Clear the field and add your own URLs to avoid this.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
