ZAP Imóveis Scraper - Brazil Real Estate Data avatar

ZAP Imóveis Scraper - Brazil Real Estate Data

Pricing

Pay per event

Go to Apify Store
ZAP Imóveis Scraper - Brazil Real Estate Data

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

How it works


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 business between SALE (venda) and RENTAL (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:

GroupFields
IdentitylistingId, url, title, description
DealbusinessType, listingType, price, currency, monthlyCondoFee, yearlyIptu, pricePerArea
PropertyunitType, propertyType, usageType, bedrooms, bathrooms, suites, parkingSpaces, usableArea, totalArea, amenities
AddressfullAddress, street, streetNumber, neighborhood, zone, city, state, stateAcronym, zipCode, latitude, longitude, locationId
AdvertiseradvertiserName, advertiserId, advertiserLicense, advertiserWebsite, advertiserLogo, advertiserPhones, advertiserTier
Media & metaimages[], createdAt, updatedAt, sourceUrl, scrapedAt

Input

FieldTypeDescription
searchLocationsarrayCity / neighbourhood names, e.g. ["São Paulo", "Copacabana"].
businessenumSALE (venda) or RENTAL (aluguel). Applies to searchLocations.
unitTypesarrayFilter by APARTMENT, HOME, CONDOMINIUM, ALLOTMENT_LAND, COMMERCIAL_PROPERTY, FARM. Empty = all.
minPrice / maxPriceintegerPrice range in BRL.
minBedroomsintegerMinimum bedrooms.
startUrlsarrayZAP search-result URLs and/or property-detail URLs. Auto-classified.
maxItemsintegerHard cap on total rows (default 1000).
maxItemsPerSearchintegerCap per location / URL (default 1000).
proxy / customProxyUrlsobject / arrayOptional 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

  1. 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.
  2. Page the listings API. The actor requests the results in pages, combining your business, unitTypes and price/bedroom filters, from a clean Brazil residential IP.
  3. 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 / updatedAt over 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.