Zonaprop.com.ar [Only $1đź’°] API Scraper
Pricing
from $1.00 / 1,000 results
Zonaprop.com.ar [Only $1đź’°] API Scraper
đź’°$1 per 1,000 results - No limits, no quotas. Scrape ZonaProp (Argentina) from website URLs: list-page rows (counts, parseMeta) plus detail rows with flattened list_* fields, full v3 listSummary & v4 posting JSON, merged prices/location/publisher/media/units, and requestResponses for raw API parity
Pricing
from $1.00 / 1,000 results
Rating
5.0
(2)
Developer
Muhamed Didovic
Actor stats
0
Bookmarked
20
Total users
6
Monthly active users
7 days ago
Last modified
Categories
Share
Overview
Extract structured real-estate listings from ZonaProp (Argentina). The actor turns website search URLs (SERP-style .html paths) into calls to ZonaProp’s mobile listings API (GET https://bsre.zonaprop.com.ar/v3/postings), then fetches full posting JSON per result (GET …/v4/postings/{posting_id}). You get searchable metadata per API page plus rich detail rows merged for analytics or export.
Use it to monitor filtered markets (operation, property type, amenities, publication age, sort order), back up listing snapshots, or feed downstream systems with normalized fields and raw API payloads for custom mapping.
Features
-
Website URL → mobile search API:
- Parses paths like
departamentos-venta-con-…-orden-visitas-descendente.htmlintosearch.parametersandsortByName(not insidesearch.parameters). - Supports clasificado URLs (
/propiedades/clasificado/…-{id}.html) for direct detail scraping without a search step.
- Parses paths like
-
Listings discovery & pagination:
- Walks
v3/postingswithpaging.limitfixed at 30 and increasing offset. - Handles short first pages when
paging.totalstill indicates more results (fixed step pagination).
- Walks
-
Per-listing detail:
- One
v4/postings/{id}request per listing (untilmaxItems). - Default dataset rows flatten the merged export at the root (same keys as
buildZonapropFullExportinzonaprop-full-export.ts):list_*fields from the v3 card, rawlistSummaryandposting, plusmedia,requestResponses, etc. Optional nesting underpropertyis available when enabled in code.
- One
How to Use
- Set Up: Apify account and this actor (or run locally with
apify run/npm run start:dev). - Provide Input: Add one or more ZonaProp website URLs under
startUrls(and optionalurl1,url2, … on the same object for multiple starts). - Configure: Set
maxItems(cap on detail API calls), concurrency, retries, and proxy if needed (recommended forbsre). - Run & Export: Download JSON / CSV from the dataset. If API returns OAuth errors, check proxy and credentials in
zonaprop-mapper.ts.
Usage Limitations
Free / non-paying Apify users may be subject to platform limits on dataset items or charges. Paid users typically get higher limits; adjust maxItems to control how many detail postings are fetched per run.
Input Configuration
Example input:
{"startUrls": [{"url": "https://www.zonaprop.com.ar/departamentos-venta-con-apto-credito-y-permite-mascotas-y-solarium-y-lavadero-publicado-hace-menos-de-2-dias-orden-visitas-descendente.html"}],"maxItems": 100,"maxConcurrency": 100,"minConcurrency": 1,"maxRequestRetries": 100,"proxy": {"useApifyProxy": false,"proxyUrls": ["http://user:pass@host:port"]}}
Input Fields Explanation
- startUrls (
startUrls): Objects whoseurl,url1,url2, … fields are collected in order. Use search/listing URLs onwww.zonaprop.com.aror clasificado detail URLs. - maxItems (
maxItems): Maximum number of detail (v4) postings to queue and scrape. Listings API pages still run to discover IDs until this cap is reached. Default 100. - maxConcurrency / minConcurrency / maxRequestRetries: Standard Crawlee / actor concurrency and retry behavior.
- proxy (
proxy): Apify proxy or customproxyUrlsfor outbound requests (used for token fetch and crawling). - Listings page size is fixed at 30 in code (
v3/postingspaging.limit).
Output Structure
The dataset contains two logical row types:
zonaprop_list_page— one row per successfulv3/postingsresponse (per offset / page), with counts and parse metadata.zonaprop_detail— one row per listing afterv4/postings/{id}: rawlistSummary(v3 card), rawposting(v4),list_*flattened fields, and the merged export fields fromzonaprop-full-export.tsat the root of the row (unless nesting is enabled in code).
Filter with source === 'zonaprop_list_page' or 'zonaprop_detail' when consuming the dataset.
Sample: zonaprop_detail (first object in data.json)
The JSON below is the first record from a real export. Long strings, featuresListCard, listSummary.pictures, listSummary.features, posting text and URL arrays, and media URL lists are shortened for the README; _readme_* keys exist only in this doc sample. On disk, requestResponses.v3ListingSearchCard duplicates listSummary and requestResponses.v4PostingDetail duplicates posting.
{"source": "zonaprop_detail","listingId": "58724988","url": "https://bsre.zonaprop.com.ar/v4/postings/58724988","statusCode": 200,"originalSearchUrl": "https://www.zonaprop.com.ar/departamentos-venta-con-apto-credito-y-permite-mascotas-y-solarium-y-lavadero-publicado-hace-menos-de-2-dias-orden-visitas-descendente.html","parseMeta": {"mode": "mapped","webPage": 1,"propertyTypeSlug": "departamentos","operationSlug": "venta","locationSlug": null,"unmappedPathTail": null,"sortByName": "low_price","operationType": 1,"realEstateType": 2},"scrapedAt": "2026-03-31T09:51:26.163Z","list_posting_id": "58724988","list_title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera","list_description": "Corredor Responsable: Fernando Daniel Tombazzi CUCICBA 7622 / CMCPDJLM 1078 - \nContacto: Ivana GimĂ©nez\n DEPARTAMENTO 3 AMBIENTES CENTRO DE EZEIZA APTO","list_public_url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-dto-3-amb-en-ezeiza-apto-credito-con-baulera-58724988.html","list_location_label": "Rafael Ramos MejĂa 200, Ezeiza, Ezeiza, GBA Sur","list_postal_code": "B1804","list_latitude": -34.8559068,"list_longitude": -58.5215555,"list_first_image_url": "https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812352.jpg","list_price_label": "USD 98.000","list_price_amount": 98000,"list_price_currency": "USD","list_operation_name": "Venta","list_publisher_name": null,"list_publisher_id": "30026294","list_publication_begin": "2026-03-30T21:30:22-0400","list_site": "ZPAR","list_statuses": ["ONLINE"],"list_internal_code": "AR.42.121.131.128.V2","list_has_whatsapp": false,"list_premier": false,"list_favorite": false,"list_units_total_area_range": "59 m2","list_units_rooms_quantity_range": "3 amb.","list_units_bathroom_quantity_range": "1 baño","list_units_garages_quantity_range": null,"list_units_quantity": null,"list_real_estate_type_label": "Departamento","list_real_estate_subtype_label": "Estándar","listSummary": {"title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera","statuses": ["ONLINE"],"description": "Corredor Responsable: Fernando Daniel Tombazzi CUCICBA 7622 / CMCPDJLM 1078 - \nContacto: Ivana GimĂ©nez\n DEPARTAMENTO 3 AMBIENTES CENTRO DE EZEIZA APTO","pictures": [{"order": 0,"sizes": [{"url": "https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812352.jpg"}],"multimedia_type": {"name": "imagen","metadata": {"translation": {"plural": "Fotos","singular": "Foto"}},"multimedia_type_id": "2"}}],"tags": [{"metadata": {"translation": {"singular": "Video"}},"posting_tag_id": 8}],"favorite": false,"location": {"address": {"name": "Rafael Ramos MejĂa 200, Ezeiza, Ezeiza, GBA Sur","visibility": "EXACT"},"posting_geolocation": {"geolocation": {"longitude": -58.5215555,"latitude": -34.8559068}},"postal_code": "B1804"},"features": [{"feature": {"category": {"metadata": {"translation": {"plural": "CaracterĂsticas generales","singular": "Características generales"}},"feature_category_id": "4","name": "Generales"},"metadata": {"translation": {"singular": "Apto crĂ©dito"}},"feature_id": "1000001"},"value": "0"},{"feature": {"category": {"metadata": {"translation": {"plural": "CaracterĂsticas generales","singular": "Características generales"}},"feature_category_id": "4","name": "Generales"},"metadata": {"translation": {"singular": "Permite mascotas"}},"feature_id": "1000002"},"value": "0"}],"publisher": {"approved": false,"logos": [{"url": "https://imgar.zonapropcdn.com/empresas/1/00/30/02/62/94/wxh/logo_re-max-legado_1707594159410.jpg"}],"premier": false,"publisher_id": "30026294","tags": [],"publisher_type": {"publisher_type_id": "2"}},"publication": {"publication_plan": {"publication_areas": [{"publication_type": "SIMPLE"}]},"begin_date": "2026-03-30T21:30:22-0400","on_hold": false,"first_date_online": "2026-03-30T00:00:00-0400"},"url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-dto-3-amb-en-ezeiza-apto-credito-con-baulera-58724988.html","posting_id": "58724988","site": "ZPAR","real_estate_type": {"metadata": {"translation": {"plural": "Departamentos","singular": "Departamento"}},"real_estate_type_id": "2"},"real_estate_subtype": {"metadata": {"translation": {"plural": "Estándar","singular": "Estándar"}},"real_estate_sub_type_id": "38"},"units_total_area_range": "59 m2","units_rooms_quantity_range": "3 amb.","units_bathroom_quantity_range": "1 baño","posting_type": {"metadata": {"translation": {"plural": "Properties","singular": "Property"}},"posting_type": "PROPERTY"},"price_operation_types": [{"prices": [{"amount": 98000,"currency": "USD","formatted_price": "USD 98.000"}],"operation_type": {"name": "Venta","metadata": {"connector": "en","translation": {"plural": "Ventas","singular": "Venta"}},"operation_type_id": "1"}}],"internal_code": "AR.42.121.131.128.V2","has_whatsapp": false,"premier": false},"posting": {"id": "58724988","site": "ZPAR","title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera","url": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-dto-3-amb-en-ezeiza-apto-credito-con-baulera-58724988.html","description": "Corredor Responsable: Fernando Daniel Tombazzi CUCICBA 7622 / CMCPDJLM 1078 - \nContacto: Ivana GimĂ©nez\n DEPARTAMENTO 3 AMBIENTES CENTRO DE EZEIZA APTO CREDITO HIPOTECARIO \nUbicado en la calle Ramos Me…[truncated in README]","online": true,"pills": [{"id": "ADMITS_PETS","value": "Acepta mascotas"},{"id": "CREDIT","value": "Apto crĂ©dito"}],"features": [{"name": "CaracterĂsticas generales","values": ["Apto crĂ©dito","Permite mascotas","Cantidad de plantas: 5 o más","Pileta","Vigilancia"]}],"publication": {"publication_type": "SIMPLE"},"prices": [{"price": "Venta USD 98.000"}],"publisher": {"id": "30026294","name": "RE/MAX Legado","logo": "https://imgar.zonapropcdn.com/empresas/1/00/30/02/62/94/130x70/logo_re-max-legado_1707594159410.jpg","premier": false,"by_owner": false,"type_id": "2","feedback_statistics": {"score": 4,"average": "4.4","ratings": [{"title": "AtenciĂłn","average": "4.4"},{"title": "Tiempo de respuesta","average": "4.6"}],"new_publisher": false,"responded_count": 27}},"location": {"location": "Ezeiza, Ezeiza, GBA Sur","address": "Rafael Ramos MejĂa 200","visibility": "EXACT","geolocation": {"longitude": -58.5215555,"latitude": -34.8559068}},"real_estate_type": "Departamento","contact_preferences": {"questions": ["ÂżSigue disponible?","ÂżValor de las expensas?","ÂżEn quĂ© piso está?","ÂżCuándo puedo visitarlo?"],"has_whatsapp": false,"dni_required": false},"pictures_urls": ["https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812352.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812331.jpg"],"videos_urls": ["https://www.youtube.com/embed/ZhID5Nry4Y4"],"main_features": [{"id": "CFT101","value": "55 m² cub."},{"id": "CFT100","value": "59 m² tot."},{"id": "CFT1","value": "3 amb."},{"id": "CFT2","value": "2 dorm."},{"id": "CFT3","value": "1 baño"},{"id": "CFT5","value": "11 años"}],"posting_codes": "CĂłd. del anunciante: AR.42.121.131.128.V2 | CĂłd. Zonaprop: 58724988","publication_statistics": "Publicado ayer"},"postingId": "58724988","site": "ZPAR","online": true,"propertyUrl": "https://www.zonaprop.com.ar/propiedades/clasificado/veclapin-venta-dto-3-amb-en-ezeiza-apto-credito-con-baulera-58724988.html","apiDetailUrl": "https://bsre.zonaprop.com.ar/v4/postings/58724988","title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera","description": "Corredor Responsable: Fernando Daniel Tombazzi CUCICBA 7622 / CMCPDJLM 1078 - \nContacto: Ivana GimĂ©nez\n DEPARTAMENTO 3 AMBIENTES CENTRO DE EZEIZA APTO CREDITO HIPOTECARIO \nUbicado en la calle Ramos Mejia al 200 entre Paso de la Patria y Yatay. Centro de Ezeiza a una cuadra de la …[truncated in README]","listCardFlags": {"internal_code": "AR.42.121.131.128.V2","favorite": false,"has_whatsapp": false,"premier": false},"hasWhatsapp": false,"dniRequired": false,"suggestedQuestions": ["ÂżSigue disponible?","ÂżValor de las expensas?","ÂżEn quĂ© piso está?","ÂżCuándo puedo visitarlo?"],"labels": {"realEstateType": "Departamento","realEstateSubtype": "Estándar","postingType": "Property"},"ids": {"real_estate_type_id": "2","real_estate_sub_type_id": "38","posting_type_code": "PROPERTY"},"location": {"neighborhood": "Ezeiza, Ezeiza, GBA Sur","streetAddress": "Rafael Ramos MejĂa 200","visibility": "EXACT","latitude": -34.8559068,"longitude": -58.5215555,"listCardAddressLine": "Rafael Ramos MejĂa 200, Ezeiza, Ezeiza, GBA Sur","postalCode": "B1804","mapsUrl": "https://www.google.com/maps?q=-34.8559068,-58.5215555"},"prices": {"displayLines": ["Venta USD 98.000","USD 98.000"],"amounts": [{"amount": 98000,"currency": "USD"}],"detailPricesArray": [{"price": "Venta USD 98.000"}],"listPriceOperationTypes": [{"prices": [{"amount": 98000,"currency": "USD","formatted_price": "USD 98.000"}],"operation_type": {"name": "Venta","metadata": {"connector": "en","translation": {"plural": "Ventas","singular": "Venta"}},"operation_type_id": "1"}}],"operationsSummary": [{"operation_type_id": "1","operation_name": "Venta","operation_singular": "Venta","prices": [{"amount": 98000,"currency": "USD","formatted_price": "USD 98.000"}]}]},"realEstateType": "Departamento","listRealEstateType": {"metadata": {"translation": {"plural": "Departamentos","singular": "Departamento"}},"real_estate_type_id": "2"},"listRealEstateSubtype": {"metadata": {"translation": {"plural": "Estándar","singular": "Estándar"}},"real_estate_sub_type_id": "38"},"listPostingType": {"metadata": {"translation": {"plural": "Properties","singular": "Property"}},"posting_type": "PROPERTY"},"units": {"totalAreaRange": "59 m2","roomsRange": "3 amb.","bathroomRange": "1 baño","garagesRange": null,"units_quantity": null},"publisher": {"id": "30026294","name": "RE/MAX Legado","logo": "https://imgar.zonapropcdn.com/empresas/1/00/30/02/62/94/130x70/logo_re-max-legado_1707594159410.jpg","premier": false,"by_owner": false,"type_id": "2","feedback_statistics": {"score": 4,"average": "4.4","ratings": [{"title": "AtenciĂłn","average": "4.4"},{"title": "Tiempo de respuesta","average": "4.6"},{"title": "RecomendaciĂłn","average": "4.3"}],"new_publisher": false,"responded_count": 27}},"publisherFlat": {"id": "30026294","name": "RE/MAX Legado","premier": false,"by_owner": false,"type_id": "2","approved": null,"logoUrls": [],"logo": "https://imgar.zonapropcdn.com/empresas/1/00/30/02/62/94/130x70/logo_re-max-legado_1707594159410.jpg","feedback": {"score": 4,"average": "4.4","responded_count": 27,"new_publisher": false,"ratings": [{"title": "AtenciĂłn","average": "4.4"},{"title": "Tiempo de respuesta","average": "4.6"},{"title": "RecomendaciĂłn","average": "4.3"}]}},"publicationMerged": {"publication_type": "SIMPLE"},"publicationDetail": {"publication_type": "SIMPLE","begin_date": null,"first_date_online": null,"on_hold": null,"publication_plan_types": [],"publication_plan_raw": null},"publicationListCard": {"publication_type": null,"begin_date": "2026-03-30T21:30:22-0400","first_date_online": "2026-03-30T00:00:00-0400","on_hold": false,"publication_plan_types": ["SIMPLE"],"publication_plan_raw": {"publication_areas": [{"publication_type": "SIMPLE"}]}},"contactPreferences": {"questions": ["ÂżSigue disponible?","ÂżValor de las expensas?","ÂżEn quĂ© piso está?","ÂżCuándo puedo visitarlo?"],"has_whatsapp": false,"dni_required": false},"featuresDetailGroups": [{"name": "CaracterĂsticas generales","values": ["Apto crĂ©dito","Permite mascotas","Cantidad de plantas: 5 o más","Pileta","Vigilancia"]},{"name": "Servicios","values": ["Laundry","Internet/Wifi"]},{"name": "Ambientes","values": ["Cocina","Hall","Lavadero","Living","Living comedor"]}],"mainFeatures": [{"id": "CFT101","value": "55 m² cub."},{"id": "CFT100","value": "59 m² tot."},{"id": "CFT1","value": "3 amb."},{"id": "CFT2","value": "2 dorm."},{"id": "CFT3","value": "1 baño"},{"id": "CFT5","value": "11 años"}],"featuresListCard": [{"feature": {"category": {"metadata": {"translation": {"plural": "CaracterĂsticas generales","singular": "Características generales"}},"feature_category_id": "4","name": "Generales"},"metadata": {"translation": {"singular": "Apto crĂ©dito"}},"feature_id": "1000001"},"value": "0"},{"feature": {"category": {"metadata": {"translation": {"plural": "CaracterĂsticas generales","singular": "Características generales"}},"feature_category_id": "4","name": "Generales"},"metadata": {"translation": {"singular": "Permite mascotas"}},"feature_id": "1000002"},"value": "0"}],"featuresListCardSimplified": [{"categoryId": "4","categoryName": "Generales","featureId": "1000001","featureLabel": "Apto crĂ©dito","value": "0","valueUnit": null},{"categoryId": "4","categoryName": "Generales","featureId": "1000002","featureLabel": "Permite mascotas","value": "0","valueUnit": null},{"categoryId": "4","categoryName": "Generales","featureId": "1000016","featureLabel": "Cantidad de plantas","value": "1000019","valueUnit": null},{"categoryId": "1","categoryName": "Servicios","featureId": "1000074","featureLabel": "Laundry","value": "0","valueUnit": null}],"tagsListCard": [{"metadata": {"translation": {"singular": "Video"}},"posting_tag_id": 8}],"statusesListCard": ["ONLINE"],"media": {"pictureUrls": ["https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812352.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812331.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812354.jpg"],"pictureUrlsDetailOnly": ["https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812352.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812331.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/720x532/2042812354.jpg"],"pictureUrlsListCardOnly": ["https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812352.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812331.jpg","https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812354.jpg"],"pictureCount": 66,"floorPlansUrls": [],"videosUrls": ["https://www.youtube.com/embed/ZhID5Nry4Y4"],"toursUrls": [],"listPicturesRaw": [{"order": 0,"sizes": [{"url": "https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812352.jpg"}],"multimedia_type": {"name": "imagen","metadata": {"translation": {"plural": "Fotos","singular": "Foto"}},"multimedia_type_id": "2"}}],"listPicturesEnriched": [{"order": 0,"title": null,"multimediaTypeId": "2","multimediaName": "imagen","urls": ["https://imgar.zonapropcdn.com/avisos/1/00/58/72/49/88/wxh/2042812352.jpg"]}],"_readme_pictureUrls_count": 66,"_readme_pictureUrlsDetailOnly_count": 33,"_readme_pictureUrlsListCardOnly_count": 33},"codes": "CĂłd. del anunciante: AR.42.121.131.128.V2 | CĂłd. Zonaprop: 58724988","publicationStatistics": "Publicado ayer","detailExtraTopLevel": {"pills": [{"id": "ADMITS_PETS","value": "Acepta mascotas"},{"id": "CREDIT","value": "Apto crĂ©dito"}]},"requestResponses": {"_readme_note": "In the real dataset, v3ListingSearchCard equals listSummary and v4PostingDetail equals posting.","v3ListingSearchCard": {"posting_id": "58724988","title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera"},"v4PostingDetail": {"id": "58724988","title": "Venta Dto 3 amb en Ezeiza APTO CREDITO con Baulera"}}}
Sample: zonaprop_list_page (listings API metadata row)
{"source": "zonaprop_list_page","url": "https://bsre.zonaprop.com.ar/v3/postings?search.name=listing&paging.limit=30&paging.offset=0&search.parameters=operation_type%3A1%3Breal_estate_type%3A2%3Bexclude_postings_contacted%3Afalse%3Bpublication_date%3A2%3Bgeneral%3A1000090%2C1000001%2C1000002%3Broom.type%3A1000110%3B&sortByName=low_price","statusCode": 200,"originalSearchUrl": "https://www.zonaprop.com.ar/departamentos-venta-con-apto-credito-y-permite-mascotas-y-solarium-y-lavadero-publicado-hace-menos-de-2-dias-orden-visitas-descendente.html","offset": 0,"pageSize": 30,"returnedCount": 21,"totalApprox": 21,"parseMeta": {"mode": "mapped","webPage": 1,"propertyTypeSlug": "departamentos","operationSlug": "venta","locationSlug": null,"unmappedPathTail": null,"sortByName": "low_price","operationType": 1,"realEstateType": 2},"scrapedAt": "2026-03-31T07:49:31.639Z"}
Output fields (zonaprop_detail)
Row metadata
source— Alwayszonaprop_detailfor these rows; use it to filter the dataset.listingId— ZonaProp posting id (same asv4/postings/{id}path segment).url— Exactv4API URL that returnedposting.statusCode— HTTP status for thatv4call (e.g. 200).originalSearchUrl— Website URL fromstartUrlsthat led to this listing (SERP or discovery context).parseMeta— How the SERP path was mapped tosearch.parameters(same shape as list-page rows).mode: mapping strategy (mapped= path recognized).webPage: 1-based page from-pagina-Nin the URL.propertyTypeSlug/operationSlug: URL segments (e.g. departamentos / venta).locationSlug: location segment if present, else null.unmappedPathTail: leftover path tokens for debugging.sortByName: sort sent tov3/postings.operationType/realEstateType: numeric API filters echoed from the mapper.scrapedAt— ISO-8601 UTC timestamp when the row was written.
Flattened list_* fields (from the v3 search card)
Convenience copies of the list card so spreadsheets and simple pipelines do not need to parse listSummary.
list_posting_id— Posting id from the card.list_title— Headline on the SERP card.list_description— Short description from the card (often truncated vs fullposting.description).list_public_url— Public clasificado URL.list_location_label— Single-line address/location string from the card.list_postal_code— Postal code when present.list_latitude/list_longitude— Coordinates from the card geolocation.list_first_image_url— One representative photo URL (first size URL from pictures).list_price_label— Human-readable price (e.g. USD 98.000).list_price_amount/list_price_currency— Parsed numeric amount and currency fromprice_operation_typeswhen available.list_operation_name— Operation label (e.g. Venta).list_publisher_name— Publisher display name on the card (may be null whilelist_publisher_idis set).list_publisher_id— Publisher id.list_publication_begin— Publication begin timestamp from the card.list_site— Site code (e.g. ZPAR).list_statuses— Status strings (e.g. ONLINE).list_internal_code— Internal / advertiser code on the card.list_has_whatsapp/list_premier/list_favorite— Booleans from the card.list_units_total_area_range/list_units_rooms_quantity_range/list_units_bathroom_quantity_range/list_units_garages_quantity_range/list_units_quantity— Surface/rooms/bath/garage/unit count as formatted ranges or null.list_real_estate_type_label/list_real_estate_subtype_label— Human-readable type and subtype from translations on the card.
Raw listSummary (v3 posting object)
The exact object returned inside v3/postings results for this listing. Important top-level keys:
title,description,url,posting_id,site— Core identity and copy.statuses— Array of status strings.pictures— Gallery: each item hasorder,sizes[]withurl,multimedia_type(id, name, translations).tags— Badges (e.g. video):posting_tag_id,metadata.translation.favorite— User favorite flag from API context.location—address(name,visibility),posting_geolocation.geolocation(latitude,longitude),postal_code.features— Rich feature rows:feature.feature_id, category,metadata.translationlabels,value/value_unit.publisher— Card publisher:publisher_id,publisher_type,logos,approved,premier,tags.publication—begin_date,first_date_online,on_hold,publication_plan(areas / plan types).real_estate_type/real_estate_subtype— Ids plusmetadata.translation.units_*_range— Surface, rooms, bathrooms as display strings.posting_type— e.g. PROPERTY with translations.price_operation_types— Per operation:operation_type(id, name, metadata) andprices(amount,currency,formatted_price).internal_code,has_whatsapp,premier— Card codes and flags.
Raw posting (v4 posting object)
Full GET /v4/postings/{id} JSON. Top-level keys in typical responses:
id,site,title,url,description,online— Core listing data; description is usually the long text body.pills— UI chips:id(machine id) andvalue(Spanish label).features— Grouped detail sections:name(group title) andvalues(string lines).publication— Oftenpublication_typeand related fields (shape can be slimmer than on the v3 card).prices— Array of objects withpricedisplay strings (e.g. Venta USD 98.000).publisher—id,name,logo,premier,by_owner,type_id,feedback_statistics(score, averages,ratings, counts).location—location(area label),address,visibility,geolocation.real_estate_type— In v4 often a string label (e.g. Departamento), unlike the nested object on the v3 card.contact_preferences—questions(suggested chat prompts),has_whatsapp,dni_required.pictures_urls/videos_urls— Flat URL lists for media.main_features— Key facts as{ id, value }(surface, rooms, age, etc.).posting_codes— Human-readable code line(s) for advertiser and ZonaProp ids.publication_statistics— Short human-readable stats line (e.g. publication recency).
Merged export (root-level convenience object from buildZonapropFullExport)
These keys are copied onto the dataset row root by default (same as a merged property object when nesting is off).
postingId— Prefer v4id, else listposting_id.site,online— From v4 when present.propertyUrl— Canonical public listing URL.apiDetailUrl— Same as rowurl(thev4request URL).title,description— Prefer v4 strings, else list card.listCardFlags—internal_code,favorite,has_whatsapp,premierfrom the list card.hasWhatsapp— Fromcontact_preferencesif set, else list card flag.dniRequired— Fromcontact_preferences.dni_required.suggestedQuestions—contact_preferences.questionsarray.labels—realEstateType,realEstateSubtype,postingTypesingular strings from list metadata translations.ids—real_estate_type_id,real_estate_sub_type_id,posting_type_codefrom the list card.location— Normalized:neighborhood,streetAddress,visibility,latitude,longitude,listCardAddressLine,postalCode,mapsUrl(Google Maps link when coords exist).prices—displayLines(deduped strings from v4 + list),amounts(amount,currencyfrom list),detailPricesArray,listPriceOperationTypes,operationsSummary(per-operation id/name + prices).realEstateType— v4 value (often a string).listRealEstateType,listRealEstateSubtype,listPostingType— Original nested objects from the list card.units—totalAreaRange,roomsRange,bathroomRange,garagesRange,units_quantityfrom listunits_*fields.publisher— Publisher object preferring v4 over list.publisherFlat— Flattened publisher: ids, name, flags,logo,logoUrls,feedbacksubset.publicationMerged—detail.publication ?? list.publication.publicationDetail— Flattened v4 publication (publication_type, dates,on_hold, plan types, raw plan).publicationListCard— Flattened list publication the same way.contactPreferences— Full v4contact_preferencesobject.featuresDetailGroups— v4features(grouped).mainFeatures— v4main_features.featuresListCard— Raw listfeaturesarray.featuresListCardSimplified— Table-friendly rows:categoryId,categoryName,featureId,featureLabel,value,valueUnit.tagsListCard/statusesListCard— Listtagsandstatuses.media—pictureUrls(union of v4pictures_urlsand all list picture URLs),pictureUrlsDetailOnly,pictureUrlsListCardOnly,pictureCount,floorPlansUrls,videosUrls,toursUrls,listPicturesRaw,listPicturesEnriched(per picture: order, type, collected URLs).codes— String built from v4posting_codeswhen it is a string (human-readable codes line).publicationStatistics— String from v4publication_statisticswhen string-shaped.detailExtraTopLevel— Any other v4 top-level keys not mapped above (forward compatibility).requestResponses—v3ListingSearchCard: same JSON aslistSummary;v4PostingDetail: same JSON asposting.
Output fields (zonaprop_list_page)
source—zonaprop_list_page.url— Fullv3/postingsrequest URL (includessearch.parameters,paging,sortByName).statusCode— HTTP status for that listings call.originalSearchUrl— User-supplied website SERP URL.offset—paging.offsetfor this page.pageSize—paging.limit(30 in current code).returnedCount— Number of result cards on this page.totalApprox— Approximate total hits (for pagination); treat as approximate.parseMeta— Same fields as on detail rows (see above).scrapedAt— When the list page row was written.
Benefits of the ZonaProp Scraper
- Filter parity with the site: Reuse complex SERP URLs (amenities, publication age, sort) without manually building
search.parameters. - Full depth: List metadata per API page plus per-posting v4 payloads for rich fields.
- Traceability: Each row ties back to
originalSearchUrland the exact APIurlcalled. - Automation-friendly: JSON suitable for warehouses, BI tools, or custom normalization.
Why Choose This Actor?
Built for Argentine real-estate research and monitoring on ZonaProp: market scans, lead lists, and repeatable exports driven by the same URLs users see in the browser, with mobile API stability and session-based token acquisition (with compiled JWT fallback).
Use cases:
- Track new listings under tight filters (e.g. last 2 days, amenities, sort by price or visits).
- Enrich internal CRMs with structured merged root fields /
postingdata. - Archive raw
requestResponsesfor compliance or re-parsing when schemas change.
Technical Implementation
- URL planning (
zonaprop-mapper.ts): Parseswww.zonaprop.com.arpaths →search.parametersstring +sortByName+ initial offset from-pagina-N. - Listings pass: CheerioCrawler requests
v3/postingswith Bearer + uuid; pushes azonaprop_list_pagerow; enqueuesv4/postings/{id}for each card untilmaxItems. - Pagination: If more results exist, enqueues the next
v3/postingsURL withoffset += pageSize. - Detail pass: Parses v4 JSON, merges with list card via
buildZonapropFullExport(zonaprop-full-export.ts) and pusheszonaprop_detail(merged fields at dataset row root unless nesting is enabled).
Explore More Scrapers
If you found this actor useful, check out other scrapers at memo23's Apify profile.
Support
- For issues or feature requests, use the Issues section of this actor on Apify.
- For further assistance, contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or a full dataset: muhamed.didovic@gmail.com
- Need other platforms scraped? Contact muhamed.didovic@gmail.com
- For API services of this actor, reach out to muhamed.didovic@gmail.com
- Custom integrations and automation solutions available