VivaReal Scraper | $1.5/1K — Listings, Prices, Condo, IPTU avatar

VivaReal Scraper | $1.5/1K — Listings, Prices, Condo, IPTU

Pricing

from $1.50 / 1,000 listing scrapeds

Go to Apify Store
VivaReal Scraper | $1.5/1K — Listings, Prices, Condo, IPTU

VivaReal Scraper | $1.5/1K — Listings, Prices, Condo, IPTU

Scrape VivaReal for sale and rent by city or neighborhood: price, condo fee, IPTU, area, bedrooms, parking, address, coordinates, photos and the advertiser (name, CRECI, phone of agencies). $1.50 per 1,000 listings plus $0.005 per run, no proxy costs. Failed locations free. JSON, CSV, Excel, API.

Pricing

from $1.50 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Gangary

Gangary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

vivareal-scraper

VivaReal Scraper | $1.5/1K — Listings, Prices, Condo, IPTU

US$1.50 per 1,000 listings + US$0.005 per run. Proxies are included; locations that fail, can't be found or are ambiguous are never charged.

Collect VivaReal listings — one of Brazil's biggest real estate portals — as structured data. Search by neighborhood or city, for sale or for rent, and get every listing back with price, condo fee, IPTU, area, bedrooms, bathrooms, parking, full address, coordinates, photos and the advertiser (name, CRECI, type and link). Filter by property type, price range, size and parking.

  • Up to 20 locations per run, typed the way you search on the site ("Campinas, SP", "Pinheiros, São Paulo").
  • Up to 1,000 listings per location, the portal's own ceiling per search.
  • 9 property types and 6 filters (price, bedrooms, area, parking), with duplicates removed across searches in the same run.

Brazilian fields included: condo fee (monthlyCondoFee), IPTU (yearlyIptu), the advertiser's CRECI (advertiserCreci), agency phone, full address with CEP (zipCode) and coordinates when the advertiser shows them.

Em português: raspe os anúncios do VivaReal (venda e aluguel) por bairro ou cidade e receba preço, condomínio, IPTU, metragem, quartos, vagas, endereço com CEP, coordenadas, fotos e imobiliária (nome, CRECI e telefone da empresa) em tabela pronta pra planilha. Até 20 localizações por execução e até 1.000 anúncios por localização. Custa US$1,50 por 1.000 anúncios mais US$0,005 por execução; localização não encontrada ou que falhou não é cobrada. Feito pra pesquisa de mercado, avaliação de imóveis e prospecção de imobiliárias.

Need VivaReal and Zap Imóveis together? The Zap Imóveis Scraper takes the same input and returns exactly the same fields (the portal field says where each row came from), so you can run both side by side and merge the datasets. For total monthly cost and rental yield, add the QuintoAndar Scraper.

What you get

One row per listing, real output from a "Campinas, SP" sale search:

{
"id": "2919104911",
"url": "https://www.vivareal.com.br/imovel/casa-3-quartos-parque-residencial-vila-uniao-bairros-campinas-com-garagem-160m2-venda-RS378000-id-2919104911/",
"title": "Casa com 3 Quartos à venda, 160m²",
"portal": "vivareal",
"business": "sale",
"price": 378000,
"salePrice": 378000,
"rentPrice": null,
"monthlyCondoFee": null,
"yearlyIptu": null,
"propertyType": "HOME",
"propertySubTypes": [],
"usageTypes": [
"RESIDENTIAL"
],
"usableArea": 160,
"totalArea": 160,
"bedrooms": 3,
"bathrooms": 2,
"suites": null,
"parkingSpaces": 3,
"floor": 0,
"street": "Rua Pedro Diogo",
"streetNumber": "130",
"neighborhood": "Parque Residencial Vila União",
"zone": null,
"city": "Campinas",
"state": "SP",
"zipCode": "13060719",
"latitude": -22.934897,
"longitude": -47.125352,
"amenities": [
"BARBECUE_GRILL",
"KITCHEN_CABINETS",
"LAUNDRY"
],
"imageUrls": [
"https://resizedimgs.vivareal.com/img/vr-listing/2c88e169b7c78a123d002aaa9f67118a/foto.jpg?action=fit-in&dimension=870x707",
"https://resizedimgs.vivareal.com/img/vr-listing/9b69c3bc08c3017a3f71b25a49730239/foto.jpg?action=fit-in&dimension=870x707"
],
"publicationType": "PREMIUM",
"createdAt": "2026-10-24T10:50:54.074+00:00",
"advertiserName": "Chinaglia Imoveis Campinas",
"advertiserId": "5360f6a6-7988-128f-9de8-e6d8a242ed1c",
"advertiserCreci": "71318-J-SP",
"advertiserType": "company",
"advertiserPhone": "1932292800",
"advertiserUrl": "https://www.vivareal.com.br/imobiliaria/398374/",
"searchLocation": "Campinas, SP",
"scrapedAt": "2026-10-27T22:54:44.208Z"
}
FieldMeaning
pricePrice for the business you asked for: sale price, or monthly rent for rentals
salePrice / rentPriceBoth prices when the listing has them
monthlyCondoFee / yearlyIptuCondo fee per month and IPTU (property tax) per year, when listed
propertyType / propertySubTypesType (apartment, home, office...) and subtypes (duplex, loft, two-story house...)
usableArea / totalAreaAreas in m²
bedrooms / bathrooms / suites / parkingSpacesRoom counts, as listed
street / neighborhood / zone / city / state / zipCodeAddress as published (street number and exact coordinates depend on what the advertiser chose to show)
imageUrlsUp to 20 photo links, ready to open
advertiserName / advertiserCreci / advertiserTypeWho is selling: company (CRECI of a legal entity) or individual
advertiserPhonePhone of the real estate company only. Private sellers' phones are never collected
url / advertiserUrlListing and advertiser pages on VivaReal
error / okSet only on rows for locations that failed — those rows are not charged

Use cases

  • Housing market reports: sale and rent prices per neighborhood or city, with price per square meter (price / usableArea).
  • Valuation and comparables: pull listings with the same type, bedrooms and area range around a property to estimate its value.
  • Investor screening: compare sale prices with rents, condo fees and IPTU in the same neighborhood before buying to rent out.
  • Agency prospecting: list the real estate agencies active in a city with name, CRECI, phone and number of listings.
  • Cross-portal coverage: run VivaReal and Zap Imóveis with the same input to see which listings appear on each portal.

How to use it

  1. Add one or more Locations the way you would search them on VivaReal: "Pinheiros, São Paulo", "Campinas, SP", "Curitiba". Adding the city or state helps when a neighborhood name exists in several cities. Up to 20 per run.
  2. Pick For sale or For rent.
  3. Optionally narrow by property types, price, bedrooms, area and parking spaces. Leave property types empty to get everything.
  4. Set Max listings per location (default 100, up to 1,000) and run. Export from the Listings dataset view as JSON, CSV or Excel.
InputTypeDefaultNotes
locationsarray of strings— (required)Neighborhood or city; up to 20 per run, duplicates removed
businesssale / rentsale
propertyTypesarrayempty = allapartment, house, condo_house, two_story_house, penthouse, flat, land, office, store
minPrice / maxPriceinteger (BRL)—Sale price, or monthly rent on rent searches
minBedroomsinteger 0-4—4 means 4 or more
minArea / maxAreainteger (m²)—Usable area
minParkingSpacesinteger 0-4—4 means 4 or more
maxItemsPerLocationinteger1001 to 1,000, shared across the selected property types

Ready-to-copy inputs

Apartments and houses for sale between R$ 300,000 and R$ 900,000 in Campinas:

{
"locations": ["Campinas, SP"],
"business": "sale",
"propertyTypes": ["apartment", "house"],
"minPrice": 300000,
"maxPrice": 900000,
"maxItemsPerLocation": 100
}

Rentals up to R$ 3,500 with 2+ bedrooms and a parking space in two cities:

{
"locations": ["Curitiba", "Pinheiros, São Paulo"],
"business": "rent",
"maxPrice": 3500,
"minBedrooms": 2,
"minParkingSpaces": 1,
"maxItemsPerLocation": 200
}

Offices and stores for rent, 50 to 200 m²:

{
"locations": ["Campinas, SP"],
"business": "rent",
"propertyTypes": ["office", "store"],
"minArea": 50,
"maxArea": 200,
"maxItemsPerLocation": 300
}

Pricing

Pay per event: $0.005 per run plus $1.50 per 1,000 listings delivered. Locations that can't be found, ambiguous locations and failed locations are never charged, and every run respects the maxTotalChargeUsd budget you set on Apify. No proxy costs on top.

ScenarioApproximate cost
100 listings (1 location)~US$ 0.16
1,000 listings (1 location, max per search)~US$ 1.51
10,000 listings (10 locations)~US$ 15.01

Run it from code

Replace <YOUR_APIFY_TOKEN> with your token from Apify Console → Settings → API & Integrations.

cURL (waits for the run and returns the items):

curl -X POST "https://api.apify.com/v2/acts/gangary~vivareal-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"locations": ["Campinas, SP"], "business": "sale", "propertyTypes": ["house"], "maxItemsPerLocation": 100}'

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("gangary~vivareal-scraper").call(
run_input={"locations": ["Campinas, SP"], "business": "sale", "maxItemsPerLocation": 100}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("price"), item.get("usableArea"), item.get("neighborhood"), item.get("advertiserCreci"))

Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('gangary~vivareal-scraper').call({
locations: ['Campinas, SP'],
business: 'sale',
maxItemsPerLocation: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]);

The synchronous endpoint waits up to 300 seconds; for big runs (many locations × 1,000 listings) start the run asynchronously and read the dataset when it finishes.

Integrations

Everything below is built into Apify, no extra setup on our side:

  • Schedules: run the same cities every day or week to follow new listings and prices.
  • Webhooks: get a call to your own endpoint when a run finishes.
  • Make, n8n and Zapier: send each run's listings to Google Sheets, your agency CRM or a database.
  • Google Drive: drop each run's export into a shared folder.
  • Exports: JSON, CSV, Excel, XML or HTML from the dataset, or straight from the API.

Use with AI agents (MCP)

Apify runs a hosted MCP server, so Claude, Cursor, VS Code and other MCP clients can call this actor as a tool. Add this server URL to your client (it signs in with OAuth on first use, or send Authorization: Bearer <YOUR_APIFY_TOKEN>):

https://mcp.apify.com?tools=gangary/vivareal-scraper

Then ask in plain words, e.g. "List houses for sale in Campinas on VivaReal between R$ 300,000 and R$ 900,000 and rank the neighborhoods by price per m²." Setup details for each client: Apify MCP server docs.

FAQ

How many listings can I get per location? Up to about 1,000 listings per location — that is how deep VivaReal lets anyone page. For more, split a big city into neighborhoods (add each neighborhood as its own location) or run separate price ranges. When you select several property types, the per-location limit is shared between them.

How are locations matched? Only exact neighborhood or city names. Write Neighborhood, City (e.g. Pinheiros, São Paulo) or City, UF (e.g. Campinas, SP). If a name exists in several places (there is a "Copacabana" in Rio and in Belo Horizonte), the actor picks the one with far more listings; if none clearly dominates you get a free location-ambiguous row listing the options. Names that match nothing return a free location-not-found row.

What can I type as a location? A neighborhood, a city, or both: "Pinheiros, São Paulo", "Pinheiros, São Paulo - SP", "Campinas, SP", "São Paulo". The actor looks the place up on VivaReal and tells you in the log which neighborhood or city it matched. If nothing matches, you get a row with error: "location-not-found" and no charge.

Why are there fewer results than I expected? Filters combine (type + price + bedrooms + parking), and the portal only returns what is currently listed. The run log shows how many listings the portal reports for each location and how many were collected.

Do I get the advertiser's phone number? Only for real estate companies (CRECI of a legal entity). For private sellers the phone field is always empty — by design.

Are duplicates removed? Yes. A listing that shows up in more than one search of the same run is delivered once.

Is scraping VivaReal legal? What about LGPD? The actor reads publicly listed property ads — no login and no paywall bypass. It never collects private sellers' phone numbers; the only phone delivered is the one of a real estate company. Review the data you collect against Brazil's LGPD and your own use case before storing or contacting people.

Is proxy included? Yes. The actor handles proxies on its own and moves to Brazilian residential IPs when the site requires it. Nothing to configure, and no proxy costs on top of the listing price.

Is this the same data as Zap Imóveis? Same fields and same input, different portal. Run the Zap Imóveis Scraper too if you need both portals. Each portal has its own listing id, so if the same property shows up on both, match it on your side by address and area.

How do I cap what a run can cost? Set Max total charge on Apify before running. The actor stops as soon as that budget is reached.

Honest limitations

  • About 1,000 results per search is the portal's own ceiling.
  • Fields appear only when the advertiser filled them in: condo fee, IPTU, street number and coordinates are often missing.
  • Each property type runs as its own search, so selecting many types in a big city uses more requests (still billed only per listing delivered).
  • "Max listings per location" counts across all selected property types.

Changelog

  • 2026-10-27: first public release.

From the same maker

  • Zap Imóveis Scraper — sale and rent listings from Zap Imóveis, with condo fee, IPTU and agency data.
  • QuintoAndar Scraper — rent and sale listings from QuintoAndar, with total monthly cost and rental yield.
  • OLX Brazil Scraper — OLX classifieds by keyword, state or URL, including real estate.

If this actor helped you, a rating on its Store page helps others find it. Something broke or a field is missing? Open an issue on the actor's Issues tab.

Keywords: vivareal scraper, raspar vivareal, viva real api, brazil real estate scraper, imoveis a venda, imoveis para alugar, preco metro quadrado, real estate data brazil, property listings brazil, imobiliarias CRECI.