Imovelweb Scraper - Sale & Rent, No Run Minimum
Pricing
$5.00 / 1,000 listing scrapeds
Imovelweb Scraper - Sale & Rent, No Run Minimum
Scrape Imovelweb Brazil property listings by city and operation (sale or rent): price, condo fee, bedrooms, area, full description and photos. $0.005 per listing, no minimum charge per run.
Pricing
$5.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Gio
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Why use this scraper
Imovelweb is one of Brazil's largest real estate listing sites, with no public API and search results pages designed for a buyer scrolling by hand, not for a pipeline that needs every listing in a city. Anyone doing market research, building a property aggregator, or running automated price alerts ends up either copying listings one at a time or writing a scraper that breaks the moment the site's anti-bot protection (DataDome) kicks in.
This actor searches Imovelweb by city and operation (for sale or for rent) and returns each listing as structured data: price, condo fee, area, bedrooms, bathrooms, parking spaces, the full listing description and the photo gallery. When Imovelweb's DataDome protection blocks a request, the actor returns a warning record instead of crashing the run, so a partial block does not silently look like zero properties on the market.
Overview
Give the actor a city (as an Imovelweb location slug, e.g. sao-paulo), an operation (venda for sale or aluguel for rent), and a maximum number of listings. The actor loads Imovelweb's search results for that city and operation, reads the page's own embedded listing data, and returns one dataset record per property. A search for a few dozen listings typically finishes in under a minute. Pricing is pay-per-result at $0.005 per listing, with no minimum charge per run, so a 5-listing test costs $0.025.
Supported inputs
| Field | Type | Description |
|---|---|---|
searchTerm | string, required | Imovelweb city/region slug, e.g. sao-paulo, rio-de-janeiro, belo-horizonte, curitiba, porto-alegre, brasilia, salvador, fortaleza. Spaces and accents are normalized automatically. |
operation | string | venda (for sale, default) or aluguel (for rent). |
maxItems | integer | Maximum number of listings to return. Default 60. |
useProxy | boolean | Routes the run through a residential proxy instead of the default connection. Turn this on if a run returns an anti-bot challenge instead of listings. |
Use cases
- Real estate market research. Pull every active for-sale listing in a city to analyze price per square meter by neighborhood.
- Rental market tracking. Switch
operationtoaluguelto monitor asking rents in a city over time. - Property aggregators. Feed Imovelweb listings into a multi-source property search tool alongside other sites.
- Lead generation for agents and brokers. Build a list of current listings in a target area, with full descriptions, to identify owners and agencies active in that market.
- Price-alert tools. Run the same search on a schedule and diff the results to flag new listings or price drops.
How it works
Imovelweb's search results page embeds the full listing data for that page as a __PRELOADED_STATE__ JSON object inside the HTML, meant for the site's own front end to render. This actor reads that embedded JSON directly instead of parsing the rendered page elements, which keeps it working across front-end layout changes. When Imovelweb's DataDome bot protection intercepts the request and returns a challenge page instead of the search results, the actor detects that and logs a warning record rather than returning an empty or broken result silently.
Input configuration
Search for-sale listings in São Paulo:
{"searchTerm": "sao-paulo","operation": "venda","maxItems": 30}
Search rental listings in Rio de Janeiro:
{"searchTerm": "rio-de-janeiro","operation": "aluguel","maxItems": 50}
Search a smaller city, using the proxy option if the default run gets blocked:
{"searchTerm": "curitiba","operation": "venda","maxItems": 20,"useProxy": true}
Output sample
Real records from a São Paulo "for sale" search:
[{"id": "3000737720","url": "https://www.imovelweb.com.br/propriedades/casa-a-venda-ermelino-matarazzo-3-quartos-500-m-3000737720.html","title": "Casa · 500m² · 3 Quartos · 5 Vagas · Casa à Venda","description": "Casa de 3 quartos no Parque Boturussu a venda. Ótima oportunidade de compra!","price": 1400000,"condoFee": null,"area": 400,"bedrooms": 3,"bathrooms": 2,"parkingSpaces": 5,"neighborhood": "Ermelino Matarazzo, 3 Quartos, 500 m²","city": null,"state": null,"images": ["https://imgbr.imovelwebcdn.com/avisos/2/30/00/73/77/20/360x266/4559659254.jpg?isFirstImage=true","https://imgbr.imovelwebcdn.com/avisos/2/30/00/73/77/20/360x266/4554394854.jpg"],"imageCount": 5,"scrapedAt": "2026-09-28T07:38:17.212Z"},{"id": "3040605436","url": "https://www.imovelweb.com.br/propriedades/apartamento-a-venda-mooca-1-quarto-70-m2-3040605436.html","title": "Apartamento · 70m² · 1 Quarto · 1 Vaga · Apartamento à Venda","description": "Este encantador apartamento localizado no vibrante bairro da Mooca oferece uma excelente oportunidade de moradia...","price": 705000,"condoFee": 800,"area": 70,"bedrooms": 1,"bathrooms": 1,"parkingSpaces": 1,"neighborhood": null,"city": null,"state": null,"images": ["https://imgbr.imovelwebcdn.com/avisos/2/30/40/60/54/36/360x266/6960803906.jpg?isFirstImage=true"],"imageCount": 3,"scrapedAt": "2026-09-28T07:38:17.424Z"}]
Key output fields
| Field | Type | Description |
|---|---|---|
id | string | Imovelweb's internal listing ID. |
url | string | Direct link to the listing. |
title | string | Listing title as shown on the site. |
description | string | Full listing description text. |
price | number | Asking price (sale) or asking rent (rental), in BRL. |
condoFee | number or null | Monthly condo fee, when the listing states one. |
area | number | Property area in square meters. |
bedrooms | integer | Number of bedrooms. |
bathrooms | integer | Number of bathrooms. |
parkingSpaces | integer | Number of parking spaces. |
neighborhood | string or null | Neighborhood, when Imovelweb's listing data includes it as a separate field. |
city / state | string or null | Not populated by Imovelweb's own listing data; city-level context comes from the search itself (the searchTerm used) rather than a separate field. |
images | array of strings | Photo URLs from the listing gallery. |
imageCount | integer | Total number of photos on the listing. |
scrapedAt | string | ISO timestamp of the scrape. |
Pricing
Pay per event, per listing returned. No minimum charge per run.
| Event | Price |
|---|---|
| Listing scraped | $0.005 |
A 30-listing search costs $0.15; a 60-listing search costs $0.30.
What makes this richer than the competition
- fatihtahta/imovelweb-scraper (25 users in the last 30 days) charges a lower per-result price on paid tiers but enforces a $1 minimum charge per run, so even a 1-listing test costs $1. This actor has no run minimum: a small test run costs only what it actually scrapes.
- solidcode/imovelweb-br-scraper (7 users in the last 30 days) is priced slightly lower per result but covers sale listings; this actor covers both sale and rental search from the same
operationinput. - A blocked request returns a labeled warning record instead of an empty or broken run, so a DataDome challenge is visible in the output instead of looking like "no listings found."
Notes & limitations
searchTermmust be an Imovelweb city or region slug (lower case, hyphenated), not a free-text address or neighborhood name.cityandstateare not returned as separate fields by Imovelweb's own listing data; the city searched is known from the input, and theneighborhoodfield carries whatever location detail that specific listing included.- Imovelweb sits behind DataDome bot protection. If a run returns a warning record instead of listings, enable
useProxyand retry. - Some fields (
condoFee,neighborhood) arenullwhen that specific listing did not include the detail; this is the listing's own data, not a scraping failure.
FAQ
Can I search for rental listings instead of sale listings?
Yes, set operation to aluguel. Default is venda (for sale).
What location format does searchTerm expect?
An Imovelweb city/region slug such as sao-paulo or rio-de-janeiro. The actor normalizes spaces and accents, but the underlying location still needs to be a city or region Imovelweb indexes.
What happens if my run gets blocked?
The actor returns a warning record noting the block instead of crashing. Retry with useProxy set to true.
Does the output include the seller's or agency's contact details? No. This actor returns the listing's own public data (price, specs, description, photos); it does not extract seller or agency contact information.
Is there a minimum charge for a small test run? No. You are only charged per listing actually returned, with no run minimum.
Can I run searches for multiple cities in one call?
Each run takes one searchTerm. Call the actor once per city (directly, via the API, or in a loop) to cover several cities.
Does maxItems guarantee exactly that many results?
It is a cap, not a guarantee: a city or operation with fewer active listings than maxItems returns everything available instead of padding the output.
For AI Agents & LLM Apps
This actor is available as an Apify MCP server tool, for an LLM agent to call directly:
https://mcp.apify.com/?actors=YOUR_USERNAME/imovelweb-scraper
It also supports a direct synchronous API call that returns the dataset items in the response body:
curl "https://api.apify.com/v2/acts/YOUR_USERNAME~imovelweb-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerm": "sao-paulo", "operation": "venda", "maxItems": 20}'
Disclaimer
This actor is an independent tool that extracts publicly available listing data from Imovelweb's own site. It is not affiliated with, endorsed by or sponsored by Imovelweb. "Imovelweb" is a trademark of its respective owner.
SEO Keywords
imovelweb scraper, imovelweb api, scrape imovelweb listings, brazil real estate scraper, imovelweb aluguel scraper, imovelweb venda scraper