Efficiently scrape comprehensive real estate listings (for sale or rent) from Brazil's leading portal, Zap Imóveis (zapimoveis.com.br). Extract key data points including prices (sale/rent, IPTU, condo), full address, property details (area, beds, baths), descriptions, image lists, advertiser, etc.
This Apify Actor efficiently scrapes real estate listing data from Zap Imóveis (zapimoveis.com.br), a major property portal in Brazil. It extracts detailed information about properties listed for sale (venda
) or rent (aluguel
) directly from search result pages.
The Actor uses Crawlee with the Cheerio scraper, making it faster and lighter than browser-based solutions, suitable for extracting data embedded in the initial HTML source (specifically the #__NEXT_DATA__
script).
venda
) or 'Rent' (aluguel
) listings.Configure the Actor's behavior using the Input tab in the Apify Console (either via the UI form or by providing JSON).
Required Inputs:
state
(String): The 2-letter state abbreviation (lowercase). Default: rj
sp
, mg
, rj
city
(String): The city name formatted for the Zap Imóveis URL. Default: rio-de-janeiro
sao-paulo
, belo-horizonte
business
(String): Transaction type. Default: venda
venda
(Sale), aluguel
(Rent)searchType
(String): Search scope. Default: neighborhood
city
: Scrapes the entire specified city.neighborhood
: Scrapes only the listed neighborhoods
.maxPagesPerLocation
(Integer): Max number of pages to scrape per city or neighborhood search initiated. Default: 100
Conditional Input:
neighborhoods
(Array of Strings): List of neighborhood names. Required only if searchType
is neighborhood
.
zona-sul
), include them here.["zona-sul+copacabana", "zona-sul+ipanema"]
["pinheiros", "vila-madalena"]
Optional Input:
maxRequestsPerCrawl
(Integer): A global safety limit on the total number of pages fetched across all locations in the run. Default: 10000
Example JSON Inputs:
1{ 2 "state": "rj", 3 "city": "rio-de-janeiro", 4 "business": "venda", 5 "searchType": "neighborhood", 6 "neighborhoods": ["zona-sul+ipanema"], 7 "maxPagesPerLocation": 5 8}
1{ 2 "state": "sp", 3 "city": "sao-paulo", 4 "business": "aluguel", 5 "searchType": "city", 6 "maxPagesPerLocation": 50 7}
Apify Proxies are required for this Actor to work reliably. Zap Imóveis frequently blocks non-residential IPs.
groups: ["RESIDENTIAL"]
in JSON).BR
).The Actor outputs data to the Apify Dataset. Each item is a JSON object representing a single scraped listing, containing fields like:
id
, externalId
, href
, business
price_mainValue
, price_condominium
, price_iptu
address_street
, address_neighborhood
, address_city
, address_stateAcronym
, address_lat
, address_lon
amenities_usableAreas
, amenities_bedrooms
, amenities_bathrooms
, amenities_parkingSpaces
imageList
(Stringified JSON array)description
advertiser_id
, advertiser_name
, advertiser_url
scrapedAt
, sourceUrl
, pageNumber
(Note: The availability of specific fields depends on the information present on the Zap Imóveis listing page).
Yes, if you're scraping publicly available data for personal or internal use. Always review Websute's Terms of Service before large-scale use or redistribution.
No. This is a no-code tool — just enter a job title, location, and run the scraper directly from your dashboard or Apify actor page.
It extracts job titles, companies, salaries (if available), descriptions, locations, and post dates. You can export all of it to Excel or JSON.
Yes, you can scrape multiple pages and refine by job title, location, keyword, or more depending on the input settings you use.
You can use the Try Now button on this page to go to the scraper. You’ll be guided to input a search term and get structured results. No setup needed!