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

Scrape VivaReal (vivareal.com.br), one of Brazil's largest property portals: apartments, houses, land and commercial listings for sale, rent or new developments with price, condo fee, IPTU, rooms, area, full address, coordinates, photos, description, amenities and advertiser name, CRECI and phone.
Scrape vivareal.com.br, one of Brazil's largest property portals, into clean spreadsheet-ready rows: apartments, houses, land and commercial property for sale, for rent or in new developments, with price, condo fee, IPTU, rooms, area, full address, coordinates, photos, description, amenities and the advertiser's name, CRECI, phone and WhatsApp. No login and no browser: 1,000 listings with full details took about 45 seconds in our tests.
| Field | What it does |
|---|---|
startUrls | VivaReal search URLs (any location, property type and filters) or listing URLs. Search URLs keep their own filters. |
locations | City, neighbourhood, zone or street names in Brazil, e.g. São Paulo, Pinheiros, São Paulo, Copacabana, Rio de Janeiro. |
maxItems | Maximum listings across all inputs (default 20, 0 = no limit). |
dealType | sale, rent or development (new developments). |
propertyTypes | apartment, studio, kitnet, house, gated_house, villa_house, penthouse, flat, loft, residential_land, townhouse, farm, store, office, commercial_house, hotel, corporate_floor, building, commercial_land, storage, garage. |
minPrice / maxPrice | Price range in R$ (monthly rent for rentals). |
minArea / maxArea | Usable area in m². |
minBedrooms / minBathrooms / minParkingSpaces / minSuites | At least this many (1 to 4). |
amenities | Required amenities, e.g. POOL, GYM, ELEVATOR, PETS_ALLOWED, FURNISHED. |
belowMarketPrice, nearTransit | Only listings marked below market price, or close to metro/train. |
sort | MOST_RELEVANT, MOST_RECENT, LOWEST_PRICE, BIGGEST_PRICE, BIGGEST_AREA. |
includeDetails | Load each listing's full record: title, description, update date, all phones, website, nearby points (default on). |
proxyConfiguration | Proxy settings. Datacenter works; the run moves to Brazilian residential proxies by itself if it gets blocked. |
{
"startUrls": [{ "url": "https://www.vivareal.com.br/venda/sp/sao-paulo/zona-oeste/pinheiros/apartamento_residencial/" }],
"locations": ["Copacabana, Rio de Janeiro"],
"dealType": "rent",
"propertyTypes": ["apartment"],
"minBedrooms": 2,
"maxPrice": 8000,
"sort": "MOST_RECENT",
"maxItems": 500
}
Each listing is one row. Main fields:
| Field | Description |
|---|---|
id, url, title, description | Listing id, link, title and full description |
business, listingType, propertyType, unitTypes, usageTypes | Sale or rental, used or new development, property type |
price, currency, monthlyCondoFee, yearlyIptu, pricePerSqm | Asking price (or monthly rent) in BRL, condo fee, IPTU, price per m² |
monthlyRentalTotalPrice, rentalPeriod | Total monthly cost and period for rentals |
bedrooms, bathrooms, suites, parkingSpaces, usableArea, totalArea, floors, unitFloor | Rooms and size |
amenities, amenityLabels | Amenity codes and their Portuguese labels |
street, streetNumber, neighborhood, zone, city, state, stateCode, zipCode, fullAddress | Address (street number only when the advertiser shows it) |
latitude, longitude, locationApproximate, valuableZones, nearbyPoints, h3 | Coordinates (approximate when the advertiser hides the exact spot), districts, nearby points, H3 cells |
thumbnail, images, imageCount, floorPlans, videos | Photos (1600×1200), floor plans and videos |
advertiserName, advertiserUrl, advertiserLicense, advertiserTier, advertiserVerified, advertiserWebsite, contractType | Advertiser (agency or private owner) details and CRECI |
phone, phones, whatsappNumber | Contact numbers shown on the listing |
units, condominiumName, constructionStatus, propertyDevelopers | New-development details |
publicationType, stamps, portals, status, createdAt, updatedAt, scrapedAt | Listing tier, seals, portals it is published on, dates |
Example (trimmed; contact details are fictional):
{
"id": "1040868470",
"url": "https://www.vivareal.com.br/imovel/sobrado-3-quartos-vila-palmeiras-zona-norte-sao-paulo-com-garagem-104m2-venda-RS590000-id-1040868470/",
"title": "Sobrado com 3 dormitórios e suíte",
"description": "Sobrado com 3 dormitórios (1 suíte) e sacada, sala para dois ambientes, cozinha, copa e área de serviço...",
"business": "SALE",
"listingType": "USED",
"propertyType": "TWO_STORY_HOUSE",
"usageTypes": [
"RESIDENTIAL"
],
"price": 590000,
"currency": "BRL",
"monthlyCondoFee": 0,
"yearlyIptu": 300,
"pricePerSqm": 5673.08,
"bedrooms": 3,
"bathrooms": 4,
"suites": 1,
"parkingSpaces": 2,
"usableArea": 104,
"totalArea": 104,
"amenities": [
"BALCONY"
],
"amenityLabels": [
"Varanda"
],
"street": "Rua Utupeva",
"neighborhood": "Vila Palmeiras",
"zone": "Zona Norte",
"city": "São Paulo",
"state": "São Paulo",
"stateCode": "SP",
"zipCode": "02933110",
"fullAddress": "Rua Utupeva Vila Palmeiras São Paulo SP",
"latitude": -23.493,
"longitude": -46.712,
"locationApproximate": true,
"valuableZones": [
"Pirituba"
],
"nearbyPoints": [
"BS:Avenida Paula Ferreira, 1981",
"CS:Padaria Exemplo"
],
"thumbnail": "https://resizedimgs.vivareal.com/img/vr-listing/0b2d773f1c5d338edf1e270815f2371a/sobrado-com-3-quartos-a-venda-104m2.jpg?action=fit-in&dimension=1600x1200",
"imageCount": 28,
"advertiserName": "Imobiliária Exemplo Ltda",
"advertiserUrl": "https://www.vivareal.com.br/imobiliaria/12345/",
"advertiserLicense": "00000-J-SP",
"advertiserTier": "gold",
"advertiserVerified": true,
"advertiserWebsite": "https://www.example.com",
"contractType": "REAL_ESTATE",
"phones": [
"11900000000",
"11911111111"
],
"phone": "11900000000",
"whatsappNumber": "11911111111",
"publicationType": "PREMIUM",
"portals": [
"OLX",
"VIVAREAL",
"ZAP"
],
"status": "ACTIVE",
"createdAt": "2018-09-06T19:44:45.906Z",
"updatedAt": "2026-08-18T14:25:48.028Z",
"searchSource": "location: São Paulo",
"scrapedAt": "2026-10-15T21:07:54Z"
}
You pay $1.50 per 1,000 listings saved ($0.0015 per listing), with full details included. Platform usage (compute and proxy traffic) is billed on top at cost and is small: a 1,000-listing run used about $0.01 of datacenter proxy traffic and compute in our tests, so 1,000 listings ≈ $1.51 in total. Error rows are never charged, and runs stop cleanly at your maximum total charge.
Is it legal to scrape VivaReal? The actor only collects publicly visible listing data, the same information any visitor sees without logging in. Check the site's terms and your local laws (including LGPD for personal data) before using the data.
Do I need an account, login or proxy? No login. The default datacenter proxy works; if the site starts blocking it, the run switches to residential proxies in Brazil by itself.
How many listings can I get? As many as the site has for your search. The site pages through at most 1,500 results per search, so larger searches are split into price ranges automatically. Set maxItems to 0 for no limit.
Why is a field empty? Advertisers don't fill every field. Street numbers and exact coordinates are hidden when the advertiser chooses to show only the street or neighbourhood (then locationApproximate is true). Some new developments show no price.
Can I schedule it or use the API? Yes. Schedule runs (for example daily with sort: MOST_RECENT) and read results through the API or integrations.
Does it also cover the other Grupo OLX portal? ZAP Imóveis and VivaReal share most listings. Use the ZAP Imóveis Scraper for the other portal's links and URLs.
/piscina/) are read without that amenity; use the amenities filter instead.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.
startUrlsarrayOptionalVivaReal URLs
Paste links from vivareal.com.br: search result pages (any city, neighbourhood, street, property type and filters) or single listing pages. Open the site, refine your search, then copy the URL from the address bar. Each search URL keeps its own filters.
locationsarrayOptionalLocations to search
City, neighbourhood, zone or street names in Brazil, e.g. 'São Paulo', 'Pinheiros, São Paulo', 'Copacabana, Rio de Janeiro', 'Fortaleza'. Add the city after a comma when a neighbourhood name exists in several cities. Each entry is searched with the filters below.
maxItemsintegerOptionaldefault 20Max listings
Maximum number of listings to save across all URLs and locations. 0 means no limit. Large searches are split into price ranges automatically, so you can go past the 1,500 results the site shows per search.
Used for Locations searches (and for a search over all of Brazil when no URL or location is given). Pasted search URLs keep their own filters.
dealTypeenumOptionaldefault "sale"Sale, rent or new developments
Listings for sale, for rent, or new developments (lançamentos).
propertyTypesarrayOptionalProperty types
Leave empty for all property types.
minPriceintegerOptionalMin price (R$)
Minimum asking price (sale) or monthly rent, in Brazilian reais.
maxPriceintegerOptionalMax price (R$)
Maximum asking price (sale) or monthly rent, in Brazilian reais.
minAreaintegerOptionalMin usable area (m²)
Minimum usable area in square metres.
maxAreaintegerOptionalMax usable area (m²)
Maximum usable area in square metres.
minBedroomsintegerOptionalMin bedrooms
At least this many bedrooms (1 to 4; 4 means 4 or more).
minBathroomsintegerOptionalMin bathrooms
At least this many bathrooms (1 to 4; 4 means 4 or more).
minParkingSpacesintegerOptionalMin parking spaces
At least this many parking spaces (1 to 4; 4 means 4 or more).
minSuitesintegerOptionalMin suites
At least this many suites (1 to 4; 4 means 4 or more).
amenitiesarrayOptionalRequired amenities
Keep only listings that have all of these amenities.
belowMarketPricebooleanOptionaldefault falseBelow market price only
Keep only listings the site marks as priced below the market (DataZAP seal).
nearTransitbooleanOptionaldefault falseNear public transport only
Keep only listings close to metro or train stations.
sortenumOptionaldefault "MOST_RELEVANT"Sort order
Order of the results. 'Most recent' is handy for scheduled runs that pick up new listings.
includeDetailsbooleanOptionaldefault trueFull listing details
Load each listing's detail record: title, full description, last update date, agency phones and website, nearby points and portals. Turn off for faster runs with search-result fields only (price, rooms, area, address, photos, advertiser and phone are still included).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for this site. If it starts blocking them, the run switches to residential proxies in Brazil automatically.
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 |
|---|---|---|
| thumbnail | any | Photo |
| url | any | Listing |
| title | any | Title |
| business | any | Sale/rent |
| propertyType | any | Type |
| price | any | Price (R$) |
| monthlyCondoFee | any | Condo fee |
| bedrooms | any | Beds |
| bathrooms | any | Baths |
| parkingSpaces | any | Parking |
| usableArea | any | Area (m²) |
| neighborhood | any | Neighbourhood |
| city | any | City |
| stateCode | any | State |
| advertiserName | any | Advertiser |
| phone | any | Phone |
| updatedAt | any | Updated |
| id | 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 VivaReal listing (full listing details included). | $0.0015 |
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/vivareal-scraper').call({
"startUrls": [
{
"url": "https://www.vivareal.com.br/venda/sp/sao-paulo/zona-oeste/pinheiros/apartamento_residencial/"
}
],
"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/vivareal-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/vivareal-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Sao Paulo listings with full details.
Newest apartments to rent under a price cap.
Sale listings for a city with details.
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.