ZAP Imóveis Scraper - Brazil Real Estate Data
Pricing
from $1.50 / 1,000 properties
ZAP Imóveis Scraper - Brazil Real Estate Data
Scrape ZAP Imoveis (Brazil) property listings, sale or rental. One row per property: price, condo fee, IPTU, area, bedrooms, bathrooms, parking, amenities, full address with lat/lon, advertiser and photos. Search by city or paste ZAP URLs. JSON/CSV out.
Pricing
from $1.50 / 1,000 properties
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
118
Total users
44
Monthly active users
13 hours
Issues response
4 hours ago
Last modified
Categories
Features
Share
ZAP Imóveis Scraper 🇧🇷🏡
Extract property listings from ZAP Imóveis — one of Brazil's largest real-estate portals — at scale. Search any city, neighbourhood or state (sale or rental) and get one clean row per property: price, condo fee, IPTU, area, rooms, parking, amenities, a fully geocoded address, the advertiser, and every photo.

Why use this scraper?
- About 40 fields per listing. Every row carries the full listing data ZAP shows: price, fees, area, rooms, address, photos and advertiser, with no missing prices.
- Sale and rental. Toggle
businessbetweenSALE(venda) andRENTAL(aluguel). - Search by name — no ID hunting. Type "São Paulo", "Copacabana" or "Belo Horizonte" and the actor resolves it through ZAP's own location autocomplete.
- Or just paste URLs. Drop in any ZAP search-results URL or a property-detail URL and it figures out the rest.
- Rich, flat rows. Price, condo fee (condomínio), IPTU, usable area, bedrooms, bathrooms, suites, parking, amenities, latitude/longitude, advertiser license and photos — ready for JSON, CSV or Excel.
- No proxy setup. Paid-plan runs need nothing and cost nothing extra. Free-plan runs use an Apify proxy service on your own account, which Apify bills per request; if your plan doesn't include it, the actor's default is used instead.
What it collects
Each property becomes one row with, among others:
| Group | Fields |
|---|---|
| Identity | listingId, url, title, description |
| Deal | businessType, listingType, price, currency, monthlyCondoFee, yearlyIptu, pricePerArea |
| Property | unitType, propertyType, usageType, bedrooms, bathrooms, suites, parkingSpaces, usableArea, totalArea, amenities |
| Address | fullAddress, street, streetNumber, neighborhood, zone, city, state, stateAcronym, zipCode, latitude, longitude, locationId |
| Advertiser | advertiserName, advertiserId, advertiserLicense, advertiserWebsite, advertiserLogo, advertiserPhones, advertiserTier |
| Media & meta | images[], createdAt, updatedAt, sourceUrl, scrapedAt |
Input
| Field | Type | Description |
|---|---|---|
searchLocations | array | City / neighbourhood names, e.g. ["São Paulo", "Copacabana"]. |
business | enum | SALE (venda) or RENTAL (aluguel). Applies to searchLocations. |
unitTypes | array | Filter by APARTMENT, HOME, CONDOMINIUM, ALLOTMENT_LAND (all land), COMMERCIAL_PROPERTY (all commercial), FARM, or a specific type such as RESIDENTIAL_ALLOTMENT_LAND, STUDIO, OFFICE. Empty = all. |
minPrice / maxPrice | integer | Price range in BRL. |
minBedrooms | integer | Minimum bedrooms. |
startUrls | array | ZAP search-result URLs and/or property-detail URLs. Auto-classified. The URL's filters are applied to the results: property type (/venda/terrenos-lotes-condominios/... or ?tipos=), amenities (/mobiliado/ or ?amenities=), a street (/rua-osvaldo-cruz/), price, condo fee, area, bedrooms, bathrooms and parking spaces. A filter the actor can't apply is named in the run log. |
maxItems | integer | Hard cap on total rows (default 1000). |
maxItemsPerSearch | integer | Cap per location / URL (default 1000). |
proxy / customProxyUrls | object / array | Optional overrides; your own proxies must be located in Brazil. |
Example input
{"searchLocations": ["São Paulo"],"business": "SALE","unitTypes": ["APARTMENT"],"minPrice": 200000,"maxPrice": 900000,"maxItems": 500}
Or by URL:
{"startUrls": ["https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/","https://www.zapimoveis.com.br/aluguel/casas/rj+rio-de-janeiro/"],"maxItems": 1000}
How it works
- Resolve the location. Each city/neighbourhood (or the location in a pasted URL) is looked up through ZAP's location autocomplete to get its internal
locationId. - Read every page of results. The actor collects the results page by page, combining your
business,unitTypesand price/bedroom filters. - Flatten every property. Each listing's price block, unit facts, amenities, geocoded address, advertiser and media are flattened into one row and pushed to the dataset.
Output sample
{"listingId": "2878107686","url": "https://www.zapimoveis.com.br/imovel/venda-apartamento-2-quartos-com-piscina-jardim-dom-jose-zona-sul-sao-paulo-sp-47m2-id-2878107686/","title": "Apartamento com 2 Quartos à venda, 47m²","businessType": "SALE","unitType": "APARTMENT","price": 255000,"currency": "BRL","monthlyCondoFee": 386,"yearlyIptu": null,"pricePerArea": 5425.53,"bedrooms": 2,"bathrooms": 1,"parkingSpaces": 1,"usableArea": 47,"amenities": ["BARBECUE_GRILL", "PARTY_HALL", "PLAYGROUND", "POOL", "GATED_COMMUNITY"],"neighborhood": "Jardim Dom José","zone": "Zona Sul","city": "São Paulo","stateAcronym": "SP","zipCode": "05886120","latitude": -23.679127,"longitude": -46.789879,"advertiserName": "Brasiliano Imóveis","advertiserLicense": "039729-J-SP","advertiserTier": "gold","images": ["https://resizedimgs.zapimoveis.com.br/img/vr-listing/59bd51a4.../foto.jpg?action=fit-in&dimension=870x653"],"createdAt": "2026-03-30T17:19:44.713Z","sourceMode": "search"}
Common use cases
- Market analysis — track average price/m², condo fees and inventory by neighbourhood.
- Lead generation — build lists of advertisers (imobiliárias) with their license and contact.
- Investment sourcing — filter by price, area and amenities across cities in one run.
- Price monitoring — re-run on a schedule and diff
price/updatedAtover time.
FAQ
Is this legal? The actor collects only publicly available listing data. You are responsible for using the output in line with ZAP Imóveis' terms and applicable laws (including LGPD for any personal data).
Do I need my own proxy? No. On a paid Apify plan it works out of the box at no extra cost. On the free plan, requests go through an Apify proxy service on your account (billed by Apify per request), with the actor's default as a backup. You can supply your own under customProxyUrls; it must be located in Brazil.
Sale or rental? Both. Set business to SALE or RENTAL, or paste /venda/… or /aluguel/… URLs.
Does it work for VivaReal too? VivaReal shares the same platform and data model, so the same architecture applies — this actor targets ZAP Imóveis.
How many results can I get? As many as the search returns; use maxItems and maxItemsPerSearch to cap a run.
Support
Found a missing field or a listing that didn't parse? Open an issue on the actor's Issues tab with the input you used — fixes are usually quick.
More Brazil real estate scrapers
- QuintoAndar Scraper: rentals and homes for sale by city, neighbourhood or URL, with rent, condo fee, IPTU and total monthly cost.
- VivaReal Property Scraper: VivaReal sale and rental listings with price, area, rooms and agency.
- Chaves na Mão Scraper: Chaves na Mão listings for sale and rent.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/zapimoveis-scraper).
Purpose: Extract ZAP Imóveis (Brazil) property listings — sale or rental — as one flat row per property with price, condo fee, IPTU, area, rooms, amenities, geocoded address, advertiser and photos, from location names or pasted URLs.
Minimal input:
{"searchLocations": ["São Paulo"],"business": "SALE","maxItems": 50}
Or drive it from URLs: startUrls accepts ZAP search-result URLs (https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/) and property-detail URLs, auto-classified.
Output: one row per property — listingId, url, title, description, businessType, unitType, price, currency, monthlyCondoFee, yearlyIptu, pricePerArea, bedrooms, bathrooms, suites, parkingSpaces, usableArea, totalArea, amenities, fullAddress, neighborhood, zone, city, stateAcronym, zipCode, latitude, longitude, advertiserName, advertiserLicense, advertiserPhones, advertiserTier, images, createdAt, updatedAt, sourceMode.
Behaviors an agent should know:
- Always set
maxItems(default 1000);maxItemsPerSearchcaps each location/URL. businessisSALE(venda) orRENTAL(aluguel); filter withunitTypes(APARTMENT,HOME,CONDOMINIUM,ALLOTMENT_LAND,COMMERCIAL_PROPERTY,FARMor a specific sub-type),minPrice/maxPrice(BRL) andminBedrooms.searchLocationsandstartUrlscan be mixed in one run; locations resolve through ZAP's own autocomplete.- No proxy setup: paid plans work out of the box, the free plan uses an Apify proxy service on your account. Any
customProxyUrlsmust be located in Brazil. - Pay-per-event billing per property row — see the Pricing tab on the actor page.
⚠️ Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or connected to ZAP Imóveis, Grupo ZAP or OLX Brasil. All trademarks and listing content belong to their respective owners. It extracts only publicly accessible information. You are solely responsible for how you use the collected data and for complying with ZAP Imóveis' Terms of Service, the Brazilian LGPD, and any other applicable laws and regulations.
SEO Keywords
ZAP Imóveis scraper, ZapImoveis scraper, Brazil real estate scraper, Brazil property scraper, scrape ZAP Imóveis, imóveis à venda scraper, aluguel de imóveis Brasil, Brazil real estate data, property listings Brazil API, São Paulo real estate scraper, Rio de Janeiro property data, real estate lead generation Brazil, imobiliária data extraction, Grupo ZAP scraper, VivaReal alternative scraper, apartamentos à venda dados, casas para alugar scraper.