
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape Imovelweb.com.br, one of Brazil's biggest property portals: apartments, houses, land and commercial listings for sale, rent, vacation rental, auction or new developments, with price, condo fee, bedrooms, bathrooms, suites, parking, usable and total area, full location with coordinates, photos, description and the agency or owner behind each listing.
Scrape property listings from Imovelweb.com.br, one of Brazil's biggest real estate portals: apartments, houses, land, commercial and rural properties for sale, for rent, as vacation rentals, at auction or in new developments (lançamentos). Each row has the price, condo fee, bedrooms, bathrooms, suites, parking, usable and total area, full location with coordinates, photos, description, and the agency, broker or owner behind the listing with their WhatsApp number. Type a place name like "Pinheiros" or paste a search URL, and get clean rows in seconds. No login, no browser, and it costs $1.40 per 1,000 listings.
| Field | What it does |
|---|---|
locations | Places in Brazil: city, neighbourhood or state. Add the city after a comma for neighbourhoods that exist in several cities. A city name means the city; use "Estado de São Paulo" or "SP" for a whole state. Names the site does not know are searched as keywords. |
startUrls | Imovelweb search result URLs or agency pages. Each URL keeps its own filters. |
maxItems | Maximum listings to save across all searches (0 = no limit). Default 20. |
maxItemsPerSearch | Optional cap per location or URL, so every search contributes. |
dealType | For locations: sale, rent, vacation_rental, auction or new_developments. |
propertyTypes, propertySubtypes | For locations: apartment, house, land, commercial, rural, and subtypes such as penthouse, flat, townhouse, store, office. |
minPrice, maxPrice | Price or monthly rent range in R$. |
minBedrooms, maxBedrooms, minBathrooms, minParkingSpaces | Rooms and parking. |
minUsableAreaM2, maxUsableAreaM2, minTotalAreaM2, maxTotalAreaM2 | Usable (útil) and total area in m². |
amenities | E.g. pool, elevator, near_metro, furnished, air_conditioning, pets_allowed, concierge_24h. |
propertyAge, publishedWithin, publisherType, media | Age range, publication date, agency or private owner, and virtual tour / videos / floor plans. |
sortBy | relevance, newest, price_low, price_high, most_viewed, price_dropped. |
proxyConfiguration | Datacenter by default. The run switches to residential proxies in Brazil on its own if the site keeps blocking. |
{
"locations": ["Copacabana, Rio de Janeiro", "Pinheiros"],
"dealType": "rent",
"propertyTypes": ["apartment"],
"minBedrooms": 2,
"maxPrice": 8000,
"amenities": ["elevator"],
"sortBy": "newest",
"maxItems": 100
}
One row per listing.
| Field | Description |
|---|---|
postingId, url, postingCode | Listing ID, link and the advertiser's own reference code |
title, generatedTitle, description | Listing title, the site's short summary ("Apartamento · 54m² · 2 Quartos · 1 Vaga") and full description |
operationType, propertyType, postingType | Venda / Aluguel / Temporada / Leilão, property type, and PROPERTY or DEVELOPMENT |
price, currency, prices, pricePerM2, priceIsFrom | Asking price or rent in BRL, every price shown, price per m² of usable area, and whether the price is a "from" price of a development |
condoFee, iptu | Monthly condo fee (condomínio) and IPTU when shown |
bedrooms, bathrooms, suites, parkingSpaces, ageYears, ageLabel | Main features |
usableAreaM2, totalAreaM2 | Usable (útil) and total area in m² |
features, highlightedFeatures, flags | All feature labels and highlighted amenities |
address, neighborhood, city, state, stateCode, locationId, locationPath | Location |
latitude, longitude, addressVisibility | Coordinates (when the advertiser shares them) and how exact the address is |
mainImage, images, imageCount | Photos |
hasVideos, hasVirtualTour, hasFloorPlans | Media flags |
publisherName, publisherType, publisherId, publisherUrl, publisherLogo, publisherLicense, publisherSince | Agency, broker, developer or private owner, with their CRECI when shown |
whatsApp | WhatsApp number shown on the listing |
premier, promotion, highlightPill, status, reserved | Listing status and badges |
development | For new developments: units, price range, unit types, construction stage and delivery date |
modifiedAt, searchUrl, scrapedAt | Last update on the site, the search it came from, and when it was scraped |
Example (from a real run, advertiser name and contact details replaced with fictional ones):
{
"postingId": "3047091564",
"url": "https://www.imovelweb.com.br/propriedades/apartamento-venda-reserva-morumbi-3047091564.html",
"title": "Apartamento venda Reserva Morumbi",
"generatedTitle": "Apartamento · 54m² · 2 Quartos · 1 Vaga",
"operationType": "Venda",
"propertyType": "Apartamentos",
"postingType": "PROPERTY",
"price": 375000,
"currency": "BRL",
"pricePerM2": 6944.44,
"condoFee": 500,
"bedrooms": 2,
"bathrooms": 2,
"suites": 1,
"parkingSpaces": 1,
"usableAreaM2": 54,
"totalAreaM2": 54,
"features": ["Área total: 54 m²", "Área útil: 54 m²", "Quartos: 2", "Banheiros: 2", "Vaga: 1", "Suíte: 1"],
"address": "Rua Doutor Luiz Migliano, 1800",
"neighborhood": "Jardim Caboré",
"city": "São Paulo",
"state": "São Paulo",
"stateCode": "SP",
"latitude": -23.6197734,
"longitude": -46.7441403,
"mainImage": "https://imgbr.imovelwebcdn.com/avisos/2/30/47/09/15/64/720x532/7281458638.jpg",
"imageCount": 15,
"publisherName": "Imobiliária Exemplo",
"publisherType": "Real estate agency",
"publisherLicense": "00000-J",
"whatsApp": "55 11900000000",
"status": "ONLINE",
"modifiedAt": "2026-10-20T23:21:53-0400",
"searchUrl": "https://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp.html",
"scrapedAt": "2026-10-21T07:13:59.501Z"
}
You pay $1.40 per 1,000 listings ($0.0014 per listing saved), plus a small amount of platform usage (compute and proxy traffic). In our test runs that usage came to about $0.003 per 1,000 listings on datacenter proxies.
Example: 1,000 listings ≈ $1.40 in listing fees plus well under one cent of usage. You never pay for duplicates, failed pages or listings you did not ask for, and you can cap the total with the run's maximum charge.
Is it legal to scrape Imovelweb? The actor only collects data that the site shows publicly to every visitor, without logging in. Check the site's terms and the data protection rules that apply to you (for example Brazil's LGPD) before you use personal data such as phone numbers.
Do I need an account, cookies or a proxy? No account or cookies. Proxies are built in: datacenter by default, and the run moves to residential proxies in Brazil by itself if the site starts blocking.
How many listings can I get? As many as the search has: set Max listings to 0. Each search is paged to the end. Very large searches (a whole state has hundreds of thousands of listings) take a while, so split them into cities, neighbourhoods or price ranges when you can.
Why are some fields empty?
Advertisers fill in different details. Coordinates, parking, age, condo fee or IPTU are missing when the listing does not show them; the field is then null. Values are exactly what the advertiser entered, so an occasional condo fee or area can be a typo on the site.
Can I get phone numbers and emails? The actor returns the WhatsApp number the listing shows, the agency's CRECI and its public page. Phones and emails that the site only reveals after you submit a contact form are not collected.
Can I schedule it or use the API? Yes. Save your input as a task, schedule it (for example daily, sorted by newest), and read the dataset through the API or integrations.
/propriedades/...) are not scraped on their own; use a location, a search URL or an agency page that contains them.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
locationsarrayOptionalLocations
Places in Brazil to search: a city, neighbourhood (bairro) or state, e.g. 'São Paulo', 'Pinheiros', 'Copacabana, Rio de Janeiro', 'Florianópolis' or 'Minas Gerais'. Add the city after a comma when a neighbourhood name exists in several cities. A city name means the city (use 'Estado de São Paulo' or 'SP' for the whole state). A name the site does not know is searched as a keyword (e.g. 'Avenida Paulista'). Uses the deal type and property types below.
startUrlsarrayOptionalSearch URLs
Optional. imovelweb.com.br search result URLs or agency pages, e.g. https://www.imovelweb.com.br/apartamentos-aluguel-copacabana-rio-de-janeiro.html. Open the site, choose what you want and copy the URL from the address bar. Each URL keeps its own filters; a '-pagina-N' suffix starts at that page.
maxItemsintegerOptionaldefault 20Max listings
Maximum number of listings to save across all locations and URLs. 0 means no limit.
maxItemsPerSearchintegerOptionalMax listings per search
Optional cap for each location or URL, so a long list of searches gets listings from every one of them. Empty or 0 means no per-search cap (only Max listings applies).
Used for the Locations above. Search URLs already carry their own deal and property type.
dealTypeenumOptionaldefault "sale"Deal type
Listings for sale, for rent, vacation rentals, auctions, or new developments (lançamentos).
propertyTypesarrayOptionalProperty types
Kinds of property to include. Empty means all types.
propertySubtypesarrayOptionalProperty subtypes
Optional, more specific formats such as Cobertura, Flat, Sobrado or Loja. The matching property type is added automatically.
Optional. These filters apply to every search (locations and URLs) and override the same filter in a pasted URL.
minPriceintegerOptionalMin price (R$)
Minimum asking price, or monthly rent for rentals, in Brazilian reais.
maxPriceintegerOptionalMax price (R$)
Maximum asking price, or monthly rent for rentals, in Brazilian reais.
minBedroomsintegerOptionalMin bedrooms
At least this many bedrooms (quartos), 1 to 5.
maxBedroomsintegerOptionalMax bedrooms
At most this many bedrooms, 1 to 5 (5 means 5 or more).
minBathroomsintegerOptionalMin bathrooms
At least this many bathrooms, 1 to 5.
minParkingSpacesintegerOptionalMin parking spaces
At least this many parking spaces (vagas), 1 to 4.
minUsableAreaM2integerOptionalMin usable area (m²)
Minimum usable area (área útil) in square metres.
maxUsableAreaM2integerOptionalMax usable area (m²)
Maximum usable area (área útil) in square metres.
minTotalAreaM2integerOptionalMin total area (m²)
Minimum total area (área total, e.g. the plot) in square metres.
maxTotalAreaM2integerOptionalMax total area (m²)
Maximum total area in square metres.
amenitiesarrayOptionalAmenities
Only listings that have all of these building or property features.
propertyAgeenumOptionaldefault "any"Property age
Only properties in this age range.
publishedWithinenumOptionaldefault "any"Published within
Only listings published in this period.
publisherTypeenumOptionaldefault "all"Advertiser
Only listings from agencies, or only from private owners.
mediaarrayOptionalMedia
Only listings that have these media.
sortByenumOptionaldefault "relevance"Sort by
Order in which listings are collected. Matters when Max listings is lower than the number of matches.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for this site. If the site keeps blocking them, the run switches to residential proxies in Brazil by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| mainImage | any | Photo |
| url | any | Listing |
| title | any | Title |
| operationType | any | Deal |
| propertyType | any | Type |
| price | any | Price |
| currency | any | Currency |
| condoFee | any | Condo fee |
| bedrooms | any | Beds |
| bathrooms | any | Baths |
| parkingSpaces | any | Parking |
| usableAreaM2 | any | Usable m² |
| totalAreaM2 | any | Total m² |
| neighborhood | any | Neighbourhood |
| city | any | City |
| stateCode | any | State |
| publisherName | any | Advertiser |
| modifiedAt | any | Updated |
| postingId | any | ID |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One saved Imovelweb listing. | $0.0014 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/imovelweb-scraper').call({
"locations": [
"São Paulo"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/imovelweb-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/imovelweb-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.