ZAP Imóveis Scraper - Brazil Real Estate Data
Pricing
Pay per event
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
Pay per event
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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?
- Straight from the source API. It reads ZAP's own listings API, so each row already carries ~40 structured fields — no brittle HTML scraping, 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.
- Built-in Brazil residential proxy. No proxy setup — the actor ships with a Brazil-geolocated residential pool at no extra cost.
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, COMMERCIAL_PROPERTY, FARM. 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. |
maxItems | integer | Hard cap on total rows (default 1000). |
maxItemsPerSearch | integer | Cap per location / URL (default 1000). |
proxy / customProxyUrls | object / array | Optional overrides — must be Brazil IPs. |
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. - Page the listings API. The actor requests the results in pages, combining your
business,unitTypesand price/bedroom filters, from a clean Brazil residential IP. - 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. A Brazil residential proxy is built in. You can supply your own under customProxyUrls, but it must be a Brazil IP — ZAP returns 403 to non-Brazil addresses.
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.
⚠️ 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.