VivaReal Property Scraper - Brazil Real Estate Data avatar

VivaReal Property Scraper - Brazil Real Estate Data

Pricing

from $1.50 / 1,000 property listings

Go to Apify Store
VivaReal Property Scraper - Brazil Real Estate Data

VivaReal Property Scraper - Brazil Real Estate Data

Scrape property listings from VivaReal Brazil — search any city or neighborhood, for sale or rent. Every row has price, condo fee, IPTU, bedrooms, bathrooms, area, amenities, full address with geo coordinates, all photos and the advertiser. Fast JSON API, no page limits. JSON/CSV/Excel.

Pricing

from $1.50 / 1,000 property listings

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

VivaReal Property Scraper 🇧🇷🏠

Extract real-estate listings from VivaReal (www.vivareal.com.br), Brazil's largest property portal — at scale, with no browser, no login and no captcha solving. Search any city or neighborhood, choose sale or rental, and get one clean row per property: price, condominium fee, IPTU, bedrooms, bathrooms, area, amenities, full address with GPS coordinates, every photo, and the advertiser.

Built on VivaReal's own internal glue-api — the same JSON feed the website itself uses — so results are fast, complete and stable. The same architecture also covers the sibling portal ZAP Imóveis.

How the VivaReal Property Scraper works


Why use this scraper

  • Search by name, not by fiddly URLs — type São Paulo, SP, Rio de Janeiro or Copacabana and the actor resolves it for you. Or paste any VivaReal search / property URL.
  • Rich rows out of the box — price, condo fee, IPTU, room counts, usable area, amenities list, neighborhood + zone + city + state + zip, latitude/longitude, up to ~30 image URLs, and the advertiser (name, license, phone, WhatsApp, website).
  • Sale or rental — a single toggle flips between venda and aluguel; rental rows include the total monthly price (rent + fees).
  • Fast & reliable — reads JSON straight from the glue-api over Brazilian residential IPs, paginating up to 100 listings per request. No headless browser to time out.
  • Pay per result — you are billed per property row, with a tiny per-run start fee. No monthly rental.
  • Export anywhere — JSON, CSV, Excel, or the Apify API.

What you can scrape

InputExampleWhat you get
LocationsSão Paulo, SP, CopacabanaEvery matching listing, paginated
Sale / RentalSALE or RENTALFor-sale or for-rent properties
Property typesAPARTMENT, HOME, FARMRestrict to given unit types
Search URLs/venda/sp/sao-paulo/…The exact search you see on site
Property URLs/imovel/…-id-123/A single property, by URL

How it works

  1. Resolve the location. Free-text like São Paulo, SP is looked up against VivaReal's location autocomplete to get the internal addressLocationId (state acronyms disambiguate same-named places).
  2. Call the glue-api. The actor requests https://glue-api.vivareal.com/v2/listings over a Brazilian residential IP with the required x-domain header — returning full JSON, no interactive Cloudflare challenge.
  3. Parse each listing into a flat row: pricing, rooms, area, amenities, address + geo, images and advertiser.
  4. Paginate through from/size up to your maxItems / maxItemsPerSearch caps, deduplicating by listing id.

Input

FieldTypeDescription
locationQueriesarrayCities / neighborhoods to search, e.g. São Paulo, SP.
businessTypeselectSALE (venda) or RENTAL (aluguel). Default SALE.
propertyTypesarrayOptional filter: APARTMENT, HOME, CONDOMINIUM, PENTHOUSE, FLAT, KITNET, ALLOTMENT_LAND, FARM, OFFICE, BUSINESS.
startUrlsarrayVivaReal search (/venda/…, /aluguel/…) and/or property (/imovel/…) URLs.
maxItemsintegerHard cap on rows for the whole run. Default 1000.
maxItemsPerSearchintegerCap per location / search. Default 1000.
maxConcurrencyintegerParallel requests. Default 6.
maxRequestRetriesintegerRetries per request on blocks/errors. Default 12.
proxy / customProxyUrlsobject / arrayOptional proxy overrides — leave empty to use the built-in Brazilian residential proxy.

Example input

{
"locationQueries": ["São Paulo, SP", "Copacabana, RJ"],
"businessType": "SALE",
"propertyTypes": ["APARTMENT"],
"maxItems": 500
}

Output sample

Each row is one property listing:

{
"listingId": "2795093905",
"url": "https://www.vivareal.com.br/imovel/apartamento-2-quartos-city-america-sao-paulo-sp-69m2-id-2795093905/",
"portal": "VIVAREAL",
"title": "Apartamento para venda com 69 m² com 2 quartos em City América - São Paulo - SP",
"businessType": "SALE",
"listingType": "USED",
"propertyType": "APARTMENT",
"price": 790000,
"currency": "BRL",
"monthlyCondoFee": 700,
"yearlyIptu": 300,
"rentalTotalPrice": null,
"bedrooms": 2,
"bathrooms": 2,
"suites": 1,
"parkingSpaces": 1,
"usableArea": 69,
"amenities": ["ELEVATOR", "PETS_ALLOWED", "PARTY_HALL", "GAMES_ROOM", "POOL"],
"neighborhood": "City América",
"zone": "Zona Norte",
"city": "São Paulo",
"stateAcronym": "SP",
"zipCode": "05101100",
"latitude": -23.506317,
"longitude": -46.725045,
"images": ["https://resizedimgs.vivareal.com/img/vr-listing/…/imovel.jpg?action=fit-in&dimension=870x653"],
"advertiserName": "M&R Imóveis",
"advertiserLicense": "125405-F-SP",
"advertiserPhone": "11978576933",
"advertiserWebsite": "http://…",
"createdAt": "2026-01-14T…",
"sourceType": "search",
"scrapedAt": "2026-07-09T…"
}

Key output fields

FieldMeaning
price, currencySale/rent price in BRL
monthlyCondoFee, yearlyIptuCondominium fee and property tax
rentalTotalPriceTotal monthly cost for rentals (rent + fees)
bedrooms, bathrooms, suites, parkingSpacesRoom counts
usableArea, totalAreaArea in m²
amenitiesBuilding/unit amenity codes
latitude, longitudeGPS coordinates
advertiser*Agency name, license, phone, WhatsApp, website, logo

FAQ

Is scraping VivaReal legal? The actor collects only publicly available listing data. You are responsible for using the output in compliance with VivaReal's terms, applicable laws (including the Brazilian LGPD) and any copyright over the content.

Do I need a proxy? No. A Brazilian residential proxy is built in at no extra cost. You can supply your own via proxy or customProxyUrls if you prefer.

Does it work for rentals? Yes — set businessType to RENTAL. Rental rows include rentalTotalPrice.

Does it also cover ZAP Imóveis? VivaReal and ZAP Imóveis share the same glue-api architecture, so the same approach applies. This actor targets VivaReal.

How is pricing calculated? Pay-per-event: a small fee per property row plus a tiny per-run start fee. No monthly subscription.

Why is a listing's url a rebuilt link? VivaReal serves listing data separately from its page URLs, so the actor reconstructs the canonical property URL from the listing id. VivaReal redirects it to the live page.


Support

Found a missing field or a location that won't resolve? Open an issue on the actor's page — include the input you used. Feature requests welcome.

⚠️ Disclaimer

This scraper accesses only publicly available information on VivaReal. It does not log in, bypass paywalls, or collect private/personal data beyond what advertisers publish on public listings. You are solely responsible for how you use the collected data, including compliance with VivaReal's Terms of Use, the Brazilian LGPD, the GDPR where applicable, and all relevant local laws. This tool is not affiliated with, endorsed by, or connected to VivaReal, Grupo ZAP, or OLX Brasil.

SEO Keywords

VivaReal scraper, VivaReal API, VivaReal property scraper, Brazil real estate scraper, scrape VivaReal listings, imóveis Brazil data, ZAP Imóveis scraper, Brazilian property data, real estate data extraction Brazil, VivaReal venda aluguel scraper, apartamento casa scraper, property listings Brazil, São Paulo real estate data, Rio de Janeiro property scraper, imoveis scraper, Apify real estate.