ZAP Imóveis Scraper - Brazil Real Estate Data · Apify
ZAP Imóveis Scraper - Brazil Real Estate Data avatar

ZAP Imóveis Scraper - Brazil Real Estate Data

Pricing

from $1.50 / 1,000 properties

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

from $1.50 / 1,000 properties

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

118

Total users

44

Monthly active users

13 hours

Issues response

4 hours ago

Last modified

Features

Limited permissions

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?

  • 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 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.
  • 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:

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 (all land), COMMERCIAL_PROPERTY (all commercial), FARM, or a specific type such as RESIDENTIAL_ALLOTMENT_LAND, STUDIO, OFFICE. Empty = all.
minPrice / maxPriceintegerPrice range in BRL.
minBedroomsintegerMinimum bedrooms.
startUrlsarrayZAP 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.
maxItemsintegerHard cap on total rows (default 1000).
maxItemsPerSearchintegerCap per location / URL (default 1000).
proxy / customProxyUrlsobject / arrayOptional 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

  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. Read every page of results. The actor collects the results page by page, combining your business, unitTypes and price/bedroom filters.
  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. 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

🤖 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); maxItemsPerSearch caps each location/URL.
  • business is SALE (venda) or RENTAL (aluguel); filter with unitTypes (APARTMENT, HOME, CONDOMINIUM, ALLOTMENT_LAND, COMMERCIAL_PROPERTY, FARM or a specific sub-type), minPrice/maxPrice (BRL) and minBedrooms.
  • searchLocations and startUrls can 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 customProxyUrls must 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.