Imovelweb Brazil Scraper
Pricing
from $1.30 / 1,000 results
Imovelweb Brazil Scraper
[💰 $1.3 / 1K] Extract real estate listings from Imovelweb Brazil — apartments, houses, land, and commercial for sale, rent, temporary stay, and new developments. Get price, beds, baths, area, address, GPS, photos, videos, amenities, seller/agency, and contact details.
Pricing
from $1.30 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Pull real estate listings from Imovelweb Brazil (imovelweb.com.br) at scale — asking price and condo fees, bedrooms, bathrooms and area in m², full-address and GPS coordinates, photo galleries, and advertiser contacts including WhatsApp. Search apartments, houses, land, and commercial property for sale, for rent, for temporary stay, or as new developments (lançamentos). Built for Brazilian real estate investors, agencies, proptech teams, and market researchers who need clean, structured listing data without copy-pasting from the site one card at a time.
Why This Scraper?
- Four deal types in one actor — for sale (venda), for rent (aluguel), temporary stay (temporada), and new developments (lançamentos), switched with a single dropdown.
- 14 property types — apartment, house, condo house, penthouse, flat, studio (kitnet), land, country house, farm, office, retail/shop, warehouse, whole building, or garage.
- GPS coordinates on every listing — exact latitude and longitude, ready to map or geo-join, alongside street, neighborhood, city, state (UF), and CEP.
- Owner-vs-agency advertiser filter — pull direct-owner listings only, real-estate-agency listings only, or both, and every row is tagged with which one it is.
- Seven numeric range filters — minimum/maximum price in R$, minimum/maximum bedrooms, minimum bathrooms, minimum parking spaces, and minimum/maximum total area in m².
- Paste a URL or build a search — drop in any imovelweb.com.br search or listing link and every filter is read straight from it, or build a search from scratch with plain dropdowns and number fields. The scraper handles both.
- Full media on every row — photo gallery URLs plus video links and virtual-tour, video, and floor-plan availability flags.
- Advertiser contacts included — agency or owner name, license, profile link and logo, phone, and WhatsApp number where the listing publishes them.
- Flat one-row-per-property output — 40+ fields per listing in a single flat row that drops straight into Sheets, Excel, or a database, with no nested objects to untangle.
Use Cases
Market Research
- Map inventory by city, neighborhood, or state across Brazil
- Compare apartment vs. house pricing in the same district
- Track new-development (lançamento) supply in growth corridors
- Measure listing counts and median asking prices per neighborhood
Investment Analysis
- Compute price per m² across neighborhoods using totalArea and usableArea
- Benchmark asking prices against condo fees (condomínio) and IPTU
- Identify undervalued listings within a tight price and area band
- Build comparables (comps) sets for a target CEP or district
Lead Generation
- Build advertiser contact lists with agency name, phone, and WhatsApp
- Isolate direct-owner listings to reach sellers without an intermediary
- Target real-estate agencies by volume of active listings
- Feed fresh listings into a CRM as they appear
Proptech & Data Enrichment
- Power a property portal or valuation model with live Brazilian inventory
- Enrich an existing property database with coordinates and media
- Feed dashboards that track supply, pricing, and days-on-market
- Trigger alerts when new listings match a saved search
Price Benchmarking
- Compare rent (aluguel) vs. temporary-stay (temporada) pricing per area
- Track asking-price changes for a fixed neighborhood over time
- Segment the market by property type, room count, and area
Getting Started
Search by Location
The simplest way to start — one city and a result cap:
{"location": ["São Paulo SP"],"maxResults": 100}
Filtered Search
For-sale apartments in a price and room band, agencies only:
{"location": ["Pinheiros São Paulo"],"dealType": "venda","propertyTypes": ["apartamento"],"publisherType": "agency","minPrice": 800000,"maxPrice": 1500000,"minBedrooms": 2,"minArea": 70,"maxResults": 100}
Paste Imovelweb URLs
Already built a search on the site? Paste the link and every filter is read from it:
{"startUrls": ["https://www.imovelweb.com.br/apartamentos-venda-sao-paulo-sp.html","https://www.imovelweb.com.br/casas-aluguel-rio-de-janeiro-rj.html"],"maxResults": 250}
Each URL returns roughly its first ~100-120 listings, so this two-URL run collects up to ~240. To go deeper, split each search into narrower ones (by neighborhood, price band, or property type) and add them here — each added search returns its own ~120-listing batch.
Advanced Search
Rentals across multiple cities with the full filter set:
{"location": ["Belo Horizonte MG", "Copacabana Rio de Janeiro"],"dealType": "aluguel","propertyTypes": ["apartamento", "cobertura", "flat"],"publisherType": "all","minPrice": 2000,"maxPrice": 8000,"minBedrooms": 2,"maxBedrooms": 4,"minBathrooms": 2,"minParking": 1,"minArea": 60,"maxArea": 200,"maxResults": 300}
This run fans out across two cities and three property types (six searches), each returning up to ~120 listings, so it can reach several hundred rows in one go.
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | ["https://www.imovelweb.com.br/apartamentos-venda-sao-paulo-sp.html"] | Paste one or more imovelweb.com.br search-result or individual listing URLs. Every filter is read straight from each URL, so the Search Filters below are ignored for these. |
location | string[] | [] | Where to search — a Brazilian city, neighborhood, or state, e.g. "São Paulo SP", "Copacabana Rio de Janeiro", or "Belo Horizonte MG". Each location is searched separately. |
Search Filters
Apply only when startUrls is empty.
| Parameter | Type | Default | Description |
|---|---|---|---|
dealType | select | For sale | For sale, For rent, Temporary stay, or New developments (lançamentos). |
propertyTypes | multi-select | [] (all) | One or more of 14 types: Apartment, House, Condo house, Penthouse, Flat, Studio (Kitnet), Land / lot, Country house, Farm, Office, Retail / shop, Warehouse, Whole building, Garage. |
publisherType | select | All advertisers | All advertisers, Real estate agencies only, or Direct owners only. |
Price, Rooms & Size
| Parameter | Type | Default | Description |
|---|---|---|---|
minPrice | integer | — | Only listings at or above this price, in Brazilian Reais (R$). |
maxPrice | integer | — | Only listings at or below this price, in Brazilian Reais (R$). |
minBedrooms | integer | — | Minimum number of bedrooms. |
maxBedrooms | integer | — | Maximum number of bedrooms. |
minBathrooms | integer | — | Minimum number of bathrooms. |
minParking | integer | — | Minimum number of parking spaces. |
minArea | integer | — | Minimum total area, in square meters (m²). |
maxArea | integer | — | Maximum total area, in square meters (m²). |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum listings to collect across all URLs and locations. Each individual search returns roughly its first ~100-120 listings, so add more locations or URLs to reach higher totals. Set to 0 for unlimited (bounded by how deep each search can be read). |
Output
Each listing is one flat row. Here is a representative result:
{"id": "3022824235","postingCode": "3022824235","url": "https://www.imovelweb.com.br/propriedades/clacod-3022824235.html","title": "Apartamento à Venda - Pinheiros, 2 Quartos, 118 m²","description": "Excelente apartamento em Pinheiros, próximo ao metrô, com 2 dormitórios, sala ampla, varanda e 1 vaga de garagem...","dealType": "Venda","propertyType": "Apartamento","postingType": "PROPERTY","price": 1200000,"currency": "BRL","priceText": "R$ 1.200.000","condoFee": 950,"iptu": 320,"bedrooms": 2,"bathrooms": 2,"suites": 1,"parkingSpaces": 1,"totalArea": 118,"usableArea": 73,"age": "10","street": "Rua dos Pinheiros","neighborhood": "Pinheiros","city": "São Paulo","state": "SP","postalCode": "05422-001","latitude": -23.5580084,"longitude": -46.6755559,"images": ["https://imgbr.imovelwebcdn.com/avisos/1/30/22/82/42/35/1200x1200/example1.jpg"],"videos": [],"amenities": ["Piscina", "Academia", "Portaria 24h", "Varanda"],"hasVideos": false,"hasTour": false,"hasPlans": true,"publishedAt": "2026-05-28","updatedAt": "2026-07-10","isFeatured": true,"publisherType": "agency","seller": {"id": 12345,"name": "ZIMMERMANN IMÓVEIS","license": "CRECI 12345-J","url": "https://www.imovelweb.com.br/imobiliarias/zimmermann-imoveis.html","logo": "https://imgbr.imovelwebcdn.com/empresas/logo.jpg"},"phones": ["5511999998888"],"whatsapp": "5511999998888"}
Core Fields
| Field | Type | Description |
|---|---|---|
id | string | Stable Imovelweb listing/posting ID |
postingCode | string | Listing reference code |
url | string | Canonical listing URL |
title | string | Listing title |
description | string | Listing description text |
dealType | string | Deal type: Venda, Aluguel, Temporada, or Lançamento |
propertyType | string | Apartamento, Casa, Terreno, etc. |
postingType | string | PROPERTY or DEVELOPMENT (new development) |
isFeatured | boolean | Whether the listing is sponsored/featured |
publishedAt | string | Publication date |
updatedAt | string | Last-updated date |
Price & Costs
| Field | Type | Description |
|---|---|---|
price | number | Numeric price |
currency | string | Currency code (e.g. BRL) |
priceText | string | Price exactly as shown on the site |
condoFee | number | Monthly condominium fee (condomínio) if present |
iptu | number | IPTU property tax if present |
Rooms & Size
| Field | Type | Description |
|---|---|---|
bedrooms | integer | Number of bedrooms |
bathrooms | integer | Number of bathrooms |
suites | integer | Number of en-suite bedrooms |
parkingSpaces | integer | Number of parking spaces |
totalArea | number | Total area (m²) |
usableArea | number | Usable area (m²) |
age | string | Property age where published |
Address & Location
| Field | Type | Description |
|---|---|---|
street | string | Street/address label |
neighborhood | string | Neighborhood (bairro) |
city | string | City |
state | string | State (UF) |
postalCode | string | CEP if present |
latitude | number | Latitude |
longitude | number | Longitude |
Media & Amenities
| Field | Type | Description |
|---|---|---|
images | string[] | Photo gallery URLs (up to 8 per search listing) |
videos | string[] | Video URLs where present |
amenities | string[] | Amenity and feature labels (e.g. Piscina, Academia) |
hasVideos | boolean | Whether the listing has video |
hasTour | boolean | Whether the listing has a virtual tour |
hasPlans | boolean | Whether the listing has floor plans |
Advertiser & Contact
| Field | Type | Description |
|---|---|---|
publisherType | string | agency or owner |
seller | object | Advertiser: name, license, id, profile URL, logo |
phones | string[] | Contact phone number(s) |
whatsapp | string | WhatsApp number where the listing publishes it |
Tips for Best Results
- Start small — set
maxResultsto 50-100 on your first run to confirm the data matches your needs, then scale up. - Split searches to go deeper — each search returns roughly its first ~100-120 listings, because Imovelweb limits how deep an automated search can page. A single whole-city query therefore surfaces about 120 listings, not the whole market. To gather more, split into narrower searches — by neighborhood (bairro), price band, or property type — and run them together; each one returns its own ~120-listing batch, so ten tight searches collect roughly ten times what one broad query returns.
- Paste a URL when you need a filter we don't list — any filter you can set on the site (recency, in-unit features, transit proximity) is honored when you paste the finished search URL into
startUrls. - Use the advertiser filter for cleaner leads — set
publisherTypeto Direct owners only to reach sellers directly, or Real estate agencies only to build an agency contact list. - Combine locations in one run — list several cities or neighborhoods in
locationand each is searched separately, then merged into one deduplicated dataset. - Filter by property type to cut noise — selecting only the types you care about avoids paying for listings you'll discard later.
- Compare totalArea with usableArea — the gap between them reveals balcony/common-area loading and sharpens any price-per-m² comparison.
Pricing
From $1.30 per 1,000 results — a flat pay-per-result rate that undercuts other Imovelweb actors on the market. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.16 | $0.15 | $0.14 | $0.13 |
| 1,000 | $1.55 | $1.45 | $1.40 | $1.30 |
| 10,000 | $15.50 | $14.50 | $14.00 | $13.00 |
| 100,000 | $155 | $145 | $140 | $130 |
A "result" is any property row in the output dataset. Platform fees (compute, storage) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate real estate research, market analysis, and lead generation. You are responsible for complying with applicable laws and Imovelweb's Terms of Service. Do not use extracted data for spam, harassment, or any unlawful purpose, and handle any personal contact data in line with Brazil's LGPD and other applicable privacy regulations.