VivaReal Brazil Real Estate Scraper | Property Listings API avatar

VivaReal Brazil Real Estate Scraper | Property Listings API

Pricing

from $6.15 / 1,000 results

Go to Apify Store
VivaReal Brazil Real Estate Scraper | Property Listings API

VivaReal Brazil Real Estate Scraper | Property Listings API

Scrape VivaReal Brazil property listings for sale and rent (imoveis a venda e aluguel). Get price, condo fee, IPTU, area, bedrooms, address, GPS, photos, amenities and advertiser contacts (phone, WhatsApp, CRECI). Filter by city, price, type, bedrooms. Export JSON, CSV, Excel. Run via API.

Pricing

from $6.15 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

VivaReal Brazil Real Estate Scraper

VivaReal Brazil Real Estate Scraper | Property Listings & Imoveis API

Scrape VivaReal Brazil (vivareal.com.br, Grupo ZAP / OLX) property listings for sale and rent (imoveis a venda e aluguel) and export clean, structured Brazil real estate data: price, condominio fee, IPTU, area, bedrooms, bathrooms, address, GPS coordinates, photos, amenities and full advertiser contacts (phone, WhatsApp, CRECI license). Search by city, neighborhood, or a VivaReal URL, filter exactly what you need, and pull results as JSON, CSV or Excel, or run it via API.

Here is one real result, with every field the actor returns (images and amenities trimmed for space; all other values are exactly as returned):

{
"listingId": "2718283450",
"externalId": "01014",
"title": "Apartamento a venda com 65m², 2 dormitorios e 1 vaga no Condominio Ideal",
"url": "https://www.vivareal.com.br/imovel/apartamento-2-quartos-cambuci-zona-sul-sao-paulo-com-garagem-65m2-venda-RS595000-id-2718283450/",
"imageUrl": "https://resizedimgs.vivareal.com/img/vr-listing/63159dab.../crop.jpg?action=&dimension=870x653",
"price": 595000,
"currency": "BRL",
"condoFee": 441,
"iptu": 890,
"totalMonthlyPrice": null,
"pricePerM2": 9153.85,
"showPrice": true,
"acceptExchange": false,
"operationType": "venda",
"propertyType": "APARTMENT",
"usageType": "RESIDENTIAL",
"listingType": "USED",
"publicationType": "PREMIUM",
"isDevelopment": false,
"isHighlighted": true,
"constructionStatus": "ConstructionStatus_NONE",
"bedrooms": 2,
"bathrooms": 1,
"suites": 0,
"parkingSpaces": 1,
"usableAreaM2": 65,
"totalAreaM2": 65,
"floors": 13,
"unitFloor": 1,
"unitsOnTheFloor": 4,
"neighborhood": "Cambuci",
"city": "Sao Paulo",
"state": "Sao Paulo",
"stateAcronym": "SP",
"zone": "Centro",
"street": "Rua Dona Ana Neri",
"streetNumber": "581",
"zipCode": "01522000",
"latitude": -23.559503,
"longitude": -46.615471,
"advertiser": "Santucci Broker Negocios Imobiliarios",
"advertiserId": "577d7ddd-6a3a-e2a3-b3da-31a3916c371c",
"advertiserLegacyId": "287555",
"advertiserType": "AGENCY",
"advertiserTier": "gold",
"advertiserVerified": true,
"advertiserCreci": "31016-J-SP",
"advertiserSince": "2018-03-28T04:58:41Z",
"advertiserUrl": "https://www.vivareal.com.br/imobiliaria/287555/",
"advertiserLogo": "https://resizedimgs.vivareal.com/img/vr-listing/7af24518.../crop.jpg?action=&dimension=300x300",
"advertiserPhone": "11999782608",
"advertiserWhatsapp": "11999782608",
"videoTourLink": "https://my.matterport.com/show/?m=XTbnhrm",
"publishedAt": "2024-05-29T20:07:12.572Z",
"updatedAt": "2026-08-26T17:47:06.754Z",
"description": "Apartamento finamente reformado, decorado, a venda no Cambuci com 2 dormitorios...",
"amenities": ["POOL", "GYM", "ELEVATOR", "PARTY_HALL", "GATED_COMMUNITY", "BARBECUE_GRILL"],
"images": ["https://resizedimgs.vivareal.com/img/vr-listing/63159dab.../crop.jpg?action=&dimension=870x653"],
"observedAt": "2026-09-04T22:51:59.827Z",
"error": null
}

The most complete VivaReal scraper available: it returns every field the listing card and detail page expose, plus derived fields like pricePerM2, totalMonthlyPrice and advertiserType, and lets you search by location or URL with filters for operation, property type, price, bedrooms, bathrooms, parking, area and amenities so you target exactly the listings you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches VivaReal Brazil by location (or a search URL you paste), paginates through the results, and writes one normalized record per property listing to the run's dataset. Prices are parsed into a numeric price plus currency; monthly condoFee and yearly iptu are separated out; area and price are combined into pricePerM2 for valuation; and the location is split into neighborhood, city, state, stateAcronym, zone, street, streetNumber, zipCode and GPS latitude/longitude. With withDetails enabled, each listing is enriched with the full description, complete images gallery and amenities list.

Data covers VivaReal Brazil property listings only (sale and rent, used and new developments). You control coverage with the location or a search URL, and the filters below.

Why this scraper

  • Every field, honest nulls. Card and detail fields in one pass: price breakdown (price, condo fee, IPTU, total monthly), area, rooms, floor, exact address, coordinates, advertiser identity and contacts.
  • Advertiser intelligence. advertiserType (agency / developer / owner), advertiserTier, advertiserVerified, advertiserCreci (real-estate license), advertiserSince, plus direct advertiserPhone and advertiserWhatsapp for lead generation.
  • Valuation ready. pricePerM2 and totalMonthlyPrice (rent + condo + IPTU) computed for you.
  • Precise targeting. Filter by city, operation, property type, price range, bedrooms, bathrooms, parking, area range and amenities.
  • Flexible input. A plain city name, or paste any VivaReal search URL, or batch many with filters.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 apartments for sale in Sao Paulo, enriched with advertiser contacts and coordinates.

{
"searchTerm": "Sao Paulo",
"business": "SALE",
"unitType": "APARTMENT",
"maxListings": 10,
"withDetails": true
}

Every field is optional except a location or URL. Pass a startUrl to reuse a filtered VivaReal search URL (it overrides the location and operation fields), or set business to RENTAL for rentals.

Input reference

FieldTypeRequiredDefaultDescription
searchTermstringyes*Sao PauloCity or neighborhood to search, for example Sao Paulo, Rio de Janeiro, Copacabana. Resolved automatically to the matching VivaReal location.
startUrlstringyes*(none)A VivaReal search results URL. The location, operation, and property type are read from the URL and override the filter fields.
businessenumnoSALEOperation: SALE (venda) or RENTAL (aluguel).
listingTypeenumnoUSEDUSED (resale) or DEVELOPMENT (new developments).
unitTypeenumnoAPARTMENTProperty type: APARTMENT, HOME, PENTHOUSE, ALLOTMENT_LAND, FARM, RESIDENTIAL_BUILDING, or ANY.
maxListingsintegerno10Maximum number of listings to collect.
withDetailsbooleannotrueWhen enabled, each listing also includes description, full image gallery and amenities (paying plans).
minPrice / maxPriceintegerno(none)Price range in BRL.
minBedrooms / maxBedroomsintegerno(none)Bedroom range.
minBathroomsintegerno(none)Minimum bathrooms.
minParkingintegerno(none)Minimum parking spaces.
minArea / maxAreaintegerno(none)Usable area range in square metres.
amenitiesstring[]no(none)Only return listings that have ALL of these amenity codes (e.g. POOL, GYM, ELEVATOR).

*One of searchTerm or startUrl is required.

Output reference

One dataset item per listing. Types: string, number, boolean, string[], or null when the source value is absent.

FieldTypeDescription
listingIdstringVivaReal listing ID (deduplication key).
externalIdstringAdvertiser reference / external ID.
urlstringFull URL of the listing detail page.
titlestringListing title.
pricenumberAsking price (sale) or monthly rent (rental).
currencystringCurrency of the price (BRL).
condoFeenumberMonthly condominium fee (BRL).
iptunumberYearly property tax, IPTU (BRL).
totalMonthlyPricenumberAll-in monthly cost for rentals (rent + condo + IPTU), or null for sales.
pricePerM2numberPrice per usable square metre (BRL).
showPricebooleanWhether the price is publicly shown.
acceptExchangebooleanWhether the seller accepts a property exchange (permuta).
operationTypestringvenda (sale) or aluguel (rent).
propertyTypestringProperty type (APARTMENT, HOME, PENTHOUSE, and so on).
propertySubTypestringProperty sub-type, when present.
usageTypestringRESIDENTIAL or COMMERCIAL.
listingTypestringUSED (resale) or DEVELOPMENT (new).
publicationTypestringPublication tier (STANDARD, PREMIUM, SUPER_PREMIUM).
isDevelopmentbooleanTrue for new-development listings.
isHighlightedbooleanTrue for premium / highlighted listings.
constructionStatusstringConstruction status.
bedroomsnumberNumber of bedrooms.
bathroomsnumberNumber of bathrooms.
suitesnumberNumber of en-suite bedrooms.
parkingSpacesnumberNumber of parking spaces.
usableAreaM2numberUsable area in square metres.
totalAreaM2numberTotal area in square metres.
floorsnumberNumber of floors in the building.
unitFloornumberFloor the unit is on (0 = ground floor).
unitsOnTheFloornumberUnits per floor.
condominiumNamestringCondominium / building name.
neighborhoodstringNeighborhood / bairro.
citystringCity.
statestringBrazilian state.
stateAcronymstringState acronym (e.g. SP).
zonestringCity zone (for example Zona Oeste).
streetstringStreet name.
streetNumberstringStreet number.
zipCodestringPostal code (CEP).
latitudenumberGPS latitude.
longitudenumberGPS longitude.
advertiserstringAdvertiser / agency name.
advertiserIdstringAdvertiser account ID.
advertiserLegacyIdstringAdvertiser legacy VivaReal ID.
advertiserTypestringAGENCY, DEVELOPER, or OWNER.
advertiserTierstringAdvertiser subscription tier.
advertiserVerifiedbooleanWhether the advertiser is verified.
advertiserCrecistringAdvertiser CRECI real-estate license number.
advertiserSincestringAdvertiser account creation date.
advertiserWebsitestringAdvertiser website URL.
advertiserUrlstringAdvertiser profile URL on VivaReal.
advertiserLogostringAdvertiser logo image URL.
advertiserPhonestringAdvertiser phone.
advertiserWhatsappstringAdvertiser WhatsApp / mobile.
videoTourLinkstringVideo tour URL, when present.
imageUrlstringPrimary listing image URL.
imagesstring[]Full image gallery URLs (detail).
amenitiesstring[]Amenity codes (detail).
descriptionstringListing description text (detail).
publishedAtstringPublication timestamp.
updatedAtstringLast update timestamp.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Comparison with other VivaReal scrapers

CapabilityThis actorfatihtahta/vivareal-scrapergio21/vivareal-zap-scraperstealth_mode/vivareal-property-search
Search by city / neighborhoodYesYesYesNo (URL only)
Search by VivaReal URLYesNoNoYes
Filter operation / typeYesYesNoNo
Filters: price, beds, baths, parking, areaYesYesNoNo
Filter by amenitiesYesYesNoNo
Price + condo fee + IPTU splitYesPartialNoPartial
totalMonthlyPrice (all-in rent)YesNoNoNo
pricePerM2YesNoNoNo
GPS coordinatesYesPartialNoPartial
Advertiser phone + WhatsAppYesPartialNoPartial
Advertiser type / tier / verified / CRECIYesNoNoNo
Full image gallery + amenitiesYesPartialPartialPartial
No charge on failure / spend capYesVariesVariesVaries

This actor accepts every input the listed competitors accept and returns a strict superset of their output fields, adding the price breakdown, totalMonthlyPrice, pricePerM2, advertiser identity block (type, tier, verified, CRECI) and full contacts.

Use cases

  • Real estate lead generation in Brazil: harvest agency and owner phone, WhatsApp and CRECI license from live listings.
  • Market and price analysis: track pricePerM2, condo fees and asking prices by city, neighborhood and zone.
  • Property portals and aggregators: feed a search index of imoveis a venda e aluguel with clean, deduplicated records.
  • Investment sourcing: filter by area, price and amenities to find undervalued apartamentos e casas.
  • CRM enrichment: attach coordinates, images and advertiser identity to your existing pipeline.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~vivareal-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerm":"Sao Paulo","business":"SALE","unitType":"APARTMENT","maxListings":25,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~vivareal-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"startUrl":"https://www.vivareal.com.br/venda/sp/sao-paulo/apartamento_residencial/","maxListings":100}'

Apify CLI:

apify call scrapers_lat/vivareal-scraper \
--input '{"searchTerm":"Rio de Janeiro","business":"RENTAL","maxListings":20}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object.

Billing and limits

  • Pay per result. You are charged per record returned (result event). With withDetails a per-record details event covers the description, full gallery and amenities. See the pricing tab for current prices.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run and receive card-level records only. Upgrade for higher maxListings and detail enrichment.
  • Source pagination ceiling. VivaReal caps deep pagination; very large single searches end when the source stops returning pages. Split with tighter filters or separate locations for bigger pulls.

FAQ and troubleshooting

A run returned 0 records. Why? The location did not resolve, or the filters removed everything. Confirm the searchTerm matches a real VivaReal location, or paste a working startUrl, and loosen price/bedroom/area filters. Zero-result runs are not charged.

How do I get advertiser phone numbers and coordinates? Coordinates and advertiser phone / WhatsApp are on every record. Keep withDetails enabled to also get the full description, image gallery and amenities.

Can I reuse a filtered search from the website? Yes. Copy the VivaReal search URL after applying your filters and pass it as startUrl. It overrides the location, operation, and property-type fields.

Why is totalMonthlyPrice null? That field only applies to rentals (rent + condo + IPTU). For sale listings it is null. Missing values are returned as null, never invented.

What is pricePerM2? The price divided by the usable area, in BRL. It is the standard comparable metric for valuing property against similar listings.

Is this an official VivaReal tool? No. This actor is independent and has no affiliation with VivaReal or Grupo ZAP. It reads only data that is publicly available on the website.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.

Independent tool, not affiliated with VivaReal. Accesses only publicly available listing data.


Raspador de Imoveis VivaReal Brasil | API de Anuncios e Imoveis

Extraia anuncios de imoveis do VivaReal Brasil (vivareal.com.br, Grupo ZAP / OLX) para venda e aluguel (imoveis a venda e aluguel) e exporte dados imobiliarios do Brasil limpos e estruturados: preco, condominio, IPTU, area, quartos, banheiros, endereco, coordenadas GPS, fotos, comodidades e contatos do anunciante (telefone, WhatsApp, CRECI). Busque por cidade, bairro ou uma URL do VivaReal, filtre exatamente o que precisa e baixe os resultados em JSON, CSV ou Excel, ou rode via API.

Veja um resultado real, com todos os campos que o ator retorna (images e amenities reduzidos por espaco; os demais valores sao exatamente como retornados):

{
"listingId": "2718283450",
"externalId": "01014",
"title": "Apartamento a venda com 65m², 2 dormitorios e 1 vaga no Condominio Ideal",
"url": "https://www.vivareal.com.br/imovel/apartamento-2-quartos-cambuci-zona-sul-sao-paulo-com-garagem-65m2-venda-RS595000-id-2718283450/",
"price": 595000,
"currency": "BRL",
"condoFee": 441,
"iptu": 890,
"pricePerM2": 9153.85,
"operationType": "venda",
"propertyType": "APARTMENT",
"listingType": "USED",
"publicationType": "PREMIUM",
"bedrooms": 2,
"bathrooms": 1,
"suites": 0,
"parkingSpaces": 1,
"usableAreaM2": 65,
"unitFloor": 1,
"neighborhood": "Cambuci",
"city": "Sao Paulo",
"state": "Sao Paulo",
"zone": "Centro",
"zipCode": "01522000",
"latitude": -23.559503,
"longitude": -46.615471,
"advertiser": "Santucci Broker Negocios Imobiliarios",
"advertiserType": "AGENCY",
"advertiserTier": "gold",
"advertiserVerified": true,
"advertiserCreci": "31016-J-SP",
"advertiserPhone": "11999782608",
"advertiserWhatsapp": "11999782608",
"amenities": ["POOL", "GYM", "ELEVATOR", "PARTY_HALL", "GATED_COMMUNITY", "BARBECUE_GRILL"],
"observedAt": "2026-09-04T22:51:59.827Z",
"error": null
}

O raspador do VivaReal mais completo disponivel: retorna todos os campos do card e da pagina de detalhe, mais campos derivados como pricePerM2, totalMonthlyPrice e advertiserType, e permite buscar por localizacao ou URL com filtros de operacao, tipo de imovel, preco, quartos, banheiros, vagas, area e comodidades para focar exatamente nos anuncios que voce precisa.

📥 Entrada · 📤 Saida · 💰 Precos · ▶️ Exemplos

Indice

O que faz

O ator busca no VivaReal Brasil por localizacao (ou uma URL de busca que voce cola), pagina pelos resultados e grava um registro normalizado por anuncio no dataset da execucao. O preco e convertido em price numerico mais currency; o condoFee mensal e o iptu anual sao separados; area e preco sao combinados em pricePerM2 para avaliacao; e a localizacao e dividida em neighborhood, city, state, stateAcronym, zone, street, streetNumber, zipCode e coordenadas GPS latitude/longitude. Com withDetails ativado, cada anuncio e enriquecido com a description completa, a galeria images inteira e a lista de amenities.

Os dados cobrem apenas anuncios do VivaReal Brasil (venda e aluguel, usados e lancamentos). Voce controla a cobertura com a localizacao ou uma URL de busca, e os filtros abaixo.

Por que este raspador

  • Todos os campos, nulos honestos. Campos do card e do detalhe em uma so passada: preco detalhado (preco, condominio, IPTU, total mensal), area, comodos, andar, endereco exato, coordenadas, identidade e contatos do anunciante.
  • Inteligencia do anunciante. advertiserType (imobiliaria / construtora / proprietario), advertiserTier, advertiserVerified, advertiserCreci (licenca imobiliaria), advertiserSince, mais advertiserPhone e advertiserWhatsapp diretos para geracao de leads.
  • Pronto para avaliacao. pricePerM2 e totalMonthlyPrice (aluguel + condominio + IPTU) calculados para voce.
  • Segmentacao precisa. Filtre por cidade, operacao, tipo de imovel, faixa de preco, quartos, banheiros, vagas, faixa de area e comodidades.
  • Entrada flexivel. Um nome de cidade, ou cole qualquer URL de busca do VivaReal, ou processe varias com filtros.

Inicio rapido

Abra o ator, cole isto na entrada e clique em Run. Retorna 10 apartamentos a venda em Sao Paulo, com contatos do anunciante e coordenadas.

{
"searchTerm": "Sao Paulo",
"business": "SALE",
"unitType": "APARTMENT",
"maxListings": 10,
"withDetails": true
}

Todos os campos sao opcionais, exceto uma localizacao ou URL. Passe um startUrl para reutilizar uma URL de busca filtrada do VivaReal (ela sobrepoe os campos de localizacao e operacao), ou defina business como RENTAL para aluguel.

Referencia de entrada

CampoTipoObrigatorioPadraoDescricao
searchTermstringsim*Sao PauloCidade ou bairro para buscar, por exemplo Sao Paulo, Rio de Janeiro, Copacabana. Resolvido automaticamente para a localizacao do VivaReal.
startUrlstringsim*(nenhum)Uma URL de resultados de busca do VivaReal. Localizacao, operacao e tipo de imovel sao lidos da URL e sobrepoem os filtros.
businessenumnaoSALEOperacao: SALE (venda) ou RENTAL (aluguel).
listingTypeenumnaoUSEDUSED (revenda) ou DEVELOPMENT (lancamentos).
unitTypeenumnaoAPARTMENTTipo de imovel: APARTMENT, HOME, PENTHOUSE, ALLOTMENT_LAND, FARM, RESIDENTIAL_BUILDING ou ANY.
maxListingsintegernao10Numero maximo de anuncios a coletar.
withDetailsbooleannaotrueQuando ativo, cada anuncio tambem inclui descricao, galeria completa e comodidades (planos pagos).
minPrice / maxPriceintegernao(nenhum)Faixa de preco em BRL.
minBedrooms / maxBedroomsintegernao(nenhum)Faixa de quartos.
minBathroomsintegernao(nenhum)Minimo de banheiros.
minParkingintegernao(nenhum)Minimo de vagas de garagem.
minArea / maxAreaintegernao(nenhum)Faixa de area util em metros quadrados.
amenitiesstring[]nao(nenhum)Retorna apenas anuncios que tenham TODOS estes codigos de comodidade (ex.: POOL, GYM, ELEVATOR).

*Um de searchTerm ou startUrl e obrigatorio.

Referencia de saida

Um item de dataset por anuncio. Tipos: string, number, boolean, string[] ou null quando o valor de origem esta ausente.

CampoTipoDescricao
listingIdstringID do anuncio no VivaReal (chave de deduplicacao).
externalIdstringReferencia do anunciante / ID externo.
urlstringURL completa da pagina do anuncio.
titlestringTitulo do anuncio.
pricenumberPreco de venda ou aluguel mensal.
currencystringMoeda do preco (BRL).
condoFeenumberTaxa de condominio mensal (BRL).
iptunumberIPTU anual (BRL).
totalMonthlyPricenumberCusto mensal total para aluguel (aluguel + condominio + IPTU), ou null para venda.
pricePerM2numberPreco por metro quadrado util (BRL).
showPricebooleanSe o preco e exibido publicamente.
acceptExchangebooleanSe o vendedor aceita permuta.
operationTypestringvenda ou aluguel.
propertyTypestringTipo de imovel (APARTMENT, HOME, PENTHOUSE, etc.).
propertySubTypestringSubtipo de imovel, quando presente.
usageTypestringRESIDENTIAL ou COMMERCIAL.
listingTypestringUSED (revenda) ou DEVELOPMENT (novo).
publicationTypestringNivel de publicacao (STANDARD, PREMIUM, SUPER_PREMIUM).
isDevelopmentbooleanVerdadeiro para lancamentos.
isHighlightedbooleanVerdadeiro para anuncios premium / destacados.
constructionStatusstringStatus de construcao.
bedroomsnumberNumero de quartos.
bathroomsnumberNumero de banheiros.
suitesnumberNumero de suites.
parkingSpacesnumberNumero de vagas de garagem.
usableAreaM2numberArea util em metros quadrados.
totalAreaM2numberArea total em metros quadrados.
floorsnumberNumero de andares do predio.
unitFloornumberAndar da unidade (0 = terreo).
unitsOnTheFloornumberUnidades por andar.
condominiumNamestringNome do condominio / predio.
neighborhoodstringBairro.
citystringCidade.
statestringEstado.
stateAcronymstringSigla do estado (ex.: SP).
zonestringZona da cidade (ex.: Zona Oeste).
streetstringNome da rua.
streetNumberstringNumero.
zipCodestringCEP.
latitudenumberLatitude GPS.
longitudenumberLongitude GPS.
advertiserstringNome do anunciante / imobiliaria.
advertiserIdstringID da conta do anunciante.
advertiserLegacyIdstringID legado do anunciante no VivaReal.
advertiserTypestringAGENCY, DEVELOPER ou OWNER.
advertiserTierstringNivel de assinatura do anunciante.
advertiserVerifiedbooleanSe o anunciante e verificado.
advertiserCrecistringNumero de licenca CRECI do anunciante.
advertiserSincestringData de criacao da conta do anunciante.
advertiserWebsitestringSite do anunciante.
advertiserUrlstringURL do perfil do anunciante no VivaReal.
advertiserLogostringURL do logo do anunciante.
advertiserPhonestringTelefone do anunciante.
advertiserWhatsappstringWhatsApp / celular do anunciante.
videoTourLinkstringURL do tour em video, quando presente.
imageUrlstringURL da imagem principal.
imagesstring[]URLs da galeria completa (detalhe).
amenitiesstring[]Codigos de comodidades (detalhe).
descriptionstringTexto da descricao do anuncio (detalhe).
publishedAtstringData de publicacao.
updatedAtstringData da ultima atualizacao.
observedAtstringData ISO 8601 da coleta do registro.
errorstringnull em caso de sucesso. Em falha, um unico item com error preenchido e gravado.

Comparacao com outros raspadores do VivaReal

RecursoEste atorfatihtahta/vivareal-scrapergio21/vivareal-zap-scraperstealth_mode/vivareal-property-search
Busca por cidade / bairroSimSimSimNao (so URL)
Busca por URL do VivaRealSimNaoNaoSim
Filtro de operacao / tipoSimSimNaoNao
Filtros: preco, quartos, banheiros, vagas, areaSimSimNaoNao
Filtro por comodidadesSimSimNaoNao
Preco + condominio + IPTU separadosSimParcialNaoParcial
totalMonthlyPrice (aluguel total)SimNaoNaoNao
pricePerM2SimNaoNaoNao
Coordenadas GPSSimParcialNaoParcial
Telefone + WhatsApp do anuncianteSimParcialNaoParcial
Tipo / nivel / verificado / CRECI do anuncianteSimNaoNaoNao
Galeria completa + comodidadesSimParcialParcialParcial
Sem cobranca em falha / limite de gastoSimVariaVariaVaria

Este ator aceita todas as entradas que os concorrentes listados aceitam e retorna um superconjunto estrito dos campos de saida deles, adicionando o preco detalhado, totalMonthlyPrice, pricePerM2, o bloco de identidade do anunciante (tipo, nivel, verificado, CRECI) e contatos completos.

Casos de uso

  • Geracao de leads imobiliarios no Brasil: colete telefone, WhatsApp e CRECI de imobiliarias e proprietarios a partir de anuncios ao vivo.
  • Analise de mercado e precos: acompanhe pricePerM2, condominio e precos por cidade, bairro e zona.
  • Portais e agregadores de imoveis: alimente um indice de imoveis a venda e aluguel com registros limpos e deduplicados.
  • Prospeccao de investimentos: filtre por area, preco e comodidades para achar apartamentos e casas subavaliados.
  • Enriquecimento de CRM: anexe coordenadas, imagens e identidade do anunciante ao seu pipeline.

Rodar via API e CLI

Inicie uma execucao, aguarde terminar e leia o dataset. Substitua <TOKEN> pelo seu token da API da Apify.

Rodar de forma sincrona e obter os itens em uma chamada:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~vivareal-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerm":"Sao Paulo","business":"SALE","unitType":"APARTMENT","maxListings":25,"withDetails":true}'

Iniciar de forma assincrona:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~vivareal-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"startUrl":"https://www.vivareal.com.br/venda/sp/sao-paulo/apartamento_residencial/","maxListings":100}'

Apify CLI:

apify call scrapers_lat/vivareal-scraper \
--input '{"searchTerm":"Rio de Janeiro","business":"RENTAL","maxListings":20}'

Baixar resultados

Cada execucao grava em um dataset. Baixe os itens em JSON, CSV ou Excel mudando format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginar datasets grandes
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> e retornado como defaultDatasetId no objeto da execucao.

Cobranca e limites

  • Pagamento por resultado. Voce e cobrado por registro retornado (evento result). Com withDetails, um evento details por registro cobre a descricao, a galeria completa e as comodidades. Veja a aba de precos.
  • Sem cobranca em falha. Se a execucao falhar, o ator grava um unico item com error preenchido e nao cobra por ele. Execucoes vazias nao custam nada.
  • Limite de gasto respeitado. Defina maxTotalChargeUsd na execucao; ao atingir o limite, o ator para de emitir e cobrar resultados.
  • Planos gratuitos da Apify sao limitados a 10 registros por execucao e recebem apenas registros de nivel card. Faca upgrade para maxListings maior e enriquecimento de detalhes.
  • Limite de paginacao da origem. O VivaReal limita a paginacao profunda; buscas muito grandes terminam quando a origem para de retornar paginas. Divida com filtros mais restritos ou localizacoes separadas.

FAQ e solucao de problemas

Uma execucao retornou 0 registros. Por que? A localizacao nao foi resolvida, ou os filtros removeram tudo. Confirme que o searchTerm corresponde a uma localizacao real do VivaReal, ou cole uma startUrl valida, e afrouxe os filtros de preco/quarto/area. Execucoes com zero resultados nao sao cobradas.

Como obtenho telefones do anunciante e coordenadas? Coordenadas e telefone / WhatsApp do anunciante estao em cada registro. Mantenha withDetails ativo para tambem obter a descricao completa, a galeria de imagens e as comodidades.

Posso reutilizar uma busca filtrada do site? Sim. Copie a URL de busca do VivaReal apos aplicar seus filtros e passe como startUrl. Ela sobrepoe os campos de localizacao, operacao e tipo de imovel.

Por que totalMonthlyPrice esta null? Esse campo so se aplica a aluguel (aluguel + condominio + IPTU). Para venda ele e null. Valores ausentes sao retornados como null, nunca inventados.

O que e pricePerM2? O preco dividido pela area util, em BRL. E a metrica comparavel padrao para avaliar imoveis semelhantes.

Esta e uma ferramenta oficial do VivaReal? Nao. Este ator e independente e nao tem afiliacao com o VivaReal ou o Grupo ZAP. Le apenas dados publicamente disponiveis no site.

Mais raspadores em scrapers.lat

Construido e mantido pela scrapers.lat, onde publicamos raspadores para plataformas publicas dos EUA e da America Latina: registros de empresas, dados governamentais, financas, e-commerce e mais. Navegue pelo catalogo ou solicite um raspador sob medida em scrapers.lat.

Ferramenta independente, sem afiliacao com o VivaReal. Acessa apenas dados de anuncios publicamente disponiveis.