VivaReal & ZAP Imóveis Scraper: Brazil Property Listings
Pricing
from $0.60 / 1,000 listings
VivaReal & ZAP Imóveis Scraper: Brazil Property Listings
Collect public Brazilian property listings from VivaReal and ZAP Imóveis as structured records with BRL prices, areas, room counts, location, amenities, images and source links.
Pricing
from $0.60 / 1,000 listings
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
9 hours ago
Last modified
Categories
Security
Limited permissionsShare
VivaReal and ZAP Imóveis Brazil Listings
Collect public Brazilian property listings from VivaReal and ZAP Imóveis as structured records with BRL prices, areas, room counts, location, amenities, images and source links.
The default input returns up to 20 properties for sale in São Paulo. Choose rentals, a city and state, a property type or price range, or paste a sale/rental search URL from either portal.
{"portal":"vivareal","businessType":"sale","city":"São Paulo","state":"SP","maxResults":20}
| Input | Default | Meaning |
|---|---|---|
portal | vivareal | vivareal, zap or both |
businessType | sale | sale or rent |
city | São Paulo | Brazilian city name |
state | SP | State abbreviation or full name |
propertyType | all | all, apartment, house, condominium, land, commercial |
minPrice, maxPrice | unset | BRL price bounds |
searchUrl | unset | HTTPS sale/rental search URL from either portal |
maxResults | 20 | Total delivered rows, from 1 to 1,000 |
For example, collect rentals from both portals:
{"portal":"both","businessType":"rent","city":"Curitiba","state":"PR","maxResults":40}
A pasted search URL supplies its own portal, location, operation and property filters. City, state, portal, businessType and propertyType inputs do not override it. Price bounds additionally filter returned rows. With both, the total budget is shared across the portals; the same property may appear once per portal. Agency promotions and changing rankings mean this is a snapshot, with no promise of exhaustive coverage.
Each row contains listingId, portal, businessType, propertyType, price, currency, condoFee, iptu, iptuPeriod, usableAreaM2, totalAreaM2, bedrooms, bathrooms, suites, parkingSpaces, street, neighborhood, city, state, latitude, longitude, amenities, title, description, imageUrls, agencyName, createdAt, updatedAt, url and observedAt.
Amounts and areas are numbers; unavailable values are null. iptuPeriod is year for API rows and source-unspecified for pasted-URL rows. Prices, fees and areas reflect the source, including inconsistencies. Coordinates can be approximate. Street and coordinates are omitted when the source does not expose the street. Images are limited to five. Dates use ISO 8601; the pasted-URL search state generally omits creation/update dates and total area.
No phone numbers, emails or individual advertiser identities are output. Agency names require a company real-estate license. Descriptions are omitted for advertisers without that evidence; contact text is removed from retained descriptions. Private individual names are not used as advertiser identities.
Rows are saved after each page. A partial run with delivered rows succeeds and identifies blocked searches in its final status. A run with no rows fails with a plain status message. The actor reserves time to save rows near the run deadline. Large searches should be split into narrower price ranges or neighborhoods; each run is capped at 1,000 results.
This actor has no configured Store price yet. For local development, install requirements-dev.txt in a uv environment and run python -m unittest discover -s tests. Run the actor with python -m src.