QuintoAndar Scraper icon

QuintoAndar Scraper

Scrape QuintoAndar property listings across Brazil with 80+ fields, including rent, sale price, condo fees, IPTU, area, rooms, parking, GPS, photos,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

QuintoAndar Scraper at a glance

QuintoAndar Scraper is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, title, operation, type and rent, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Real Estate, Lead Generation, Automation
Pricing
$2.20 per 1,000 results (Free plan), from $1.50 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
32 options
Run success
98.0% of completed public runs in the last 30 days

Scrape QuintoAndar property listings across Brazil with 80+ fields, including rent, sale price, condo fees, IPTU, area, rooms, parking, GPS, photos, amenities, and descriptions. Supports search, URLs, sorting, and price, area, and bedroom filters.

What QuintoAndar Scraper can do

  • 80+ fields per listing. English and Portuguese keys, so records drop straight into any pipeline.
  • Full price picture. Rent, total monthly cost, condominium fee, IPTU and sale price side by side.
  • Exact location. GPS coordinate, postal code, neighborhood, city and state on every enriched listing.
  • Photos and description. The complete gallery and full property description, not just a card thumbnail.
  • Rich amenities. In-unit and building amenities listed separately, plus furnished, pets-allowed and near-subway flags.
  • Two ways in, built for monitoring. Search by location name, or paste results-page and property URLs (13 URL shapes supported); incremental mode returns only what changed on scheduled runs.

Choose what to collect

These inputs let you configure QuintoAndar Scraper - Property Listings, Prices & Amenities. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredsearch = build searches from location names + filters. url = paste one or more quintoandar results-page URLs.

Choices: search, url

locationsarrayLocation names to search, e.g. São Paulo, Rio de Janeiro, Pinheiros São Paulo, Belo Horizonte. Accents and spaces are handled automatically. Only applies when mode = search.
operationTypestringRent or buy. Only applies when mode = search.

Choices: rent, sale

propertyTypestringProperty category to search. 'All' covers every type. Applies in Search mode and URL mode, including a pasted URL.

Choices: all, apartment, house, studio, condo_house

propertyTypesarrayPick several property categories at once. When set, it replaces the single Property type above. Applies in Search mode and URL mode.
minPriceintegerMinimum total monthly cost (rent) or sale price, in BRL. Applies in Search mode and URL mode, including a pasted URL.
maxPriceintegerMaximum total monthly cost (rent) or sale price, in BRL. Applies in Search mode and URL mode, including a pasted URL.
Show 25 more inputs
More input fields
InputWhat it controls
minAreaintegerMinimum area in square metres. Applies in Search mode and URL mode, including a pasted URL.
maxAreaintegerMaximum area in square metres. Applies in Search mode and URL mode, including a pasted URL.
minBedroomsintegerMinimum number of bedrooms (quartos). Applies in Search mode and URL mode, including a pasted URL.
minBathroomsintegerMinimum number of bathrooms. Applies in Search mode and URL mode.
minParkingintegerMinimum number of parking spaces. Applies in Search mode and URL mode.
neighborhoodstringOptional neighbourhood (bairro) added to every location, e.g. Pinheiros with location São Paulo. Search mode only.
furnishedstringFurnished listings only, or exclude furnished listings (unfurnished is applied after the fetch, from the furnished flag when the site exposes it). Applies in Search mode and URL mode.

Choices: all, furnished, unfurnished

petsAllowedbooleanOnly listings that accept pets. Applies in Search mode and URL mode.
nearTransitbooleanOnly listings near a subway station. Applies in Search mode and URL mode.
amenitiesarrayOnly listings that have ALL selected in-unit amenities.
condoAmenitiesarrayOnly listings whose building has ALL selected amenities.
sortBystringResult ordering. Applies in Search mode and URL mode, including a pasted URL.

Choices: relevance, price-asc, price-desc, newest, closest

urlsarrayPaste one or more quintoandar.com.br URLs: results pages (city or neighbourhood, with an optional property type, bedroom count, mobiliado segment or ?ordenar= / ?preco= query) or single property pages (/imovel/{id}). Filters and sort carried by a pasted results URL are applied and win over the fields above. Unsupported parts of a URL are logged as warnings. Location and operation above are ignored in this mode; property type, price, area, bedroom and sort filters above still apply to results URLs that do not set their own.
fetchDetailsbooleanFetch each property page to add GPS coordinates, the full description, in-unit and building amenities, condo and IPTU breakdown, floor, and furnished / pets / subway flags. Adds one request per property. Leave on for the richest output.
maxPagesintegerOptional safety stop on how many result pages to read per location/URL. This does NOT cap the run: leave it empty (or 0) to use the built-in hard ceiling of 1000 pages per search (about 11,000 listings), which applies even when Max listings is 0. Set a lower value if you want a tighter per-search page ceiling.
maxListingsintegerThe run's single hard cap: maximum total listings across all searches. Defaults to 20. Set 0 for unlimited. This is the only default limit; Max pages falls back to a built-in hard ceiling of 1000 pages per search.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large catalogue pull without returning or charging for listings already collected there. Use this after an interrupted run. For recurring daily monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns every matching listing as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED listings, which is how a price cut or a stock change is spotted. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each search, filter and detail setup; use State key to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the search, filters and detail settings, so different searches never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return listings that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, so never when Max listings capped it or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayIncremental mode only. Fields whose changes do not count as an update: a change in them alone leaves the listing UNCHANGED and they are not listed in changedFields. They are still returned in every row. Use a dotted path for a nested field. The run timestamps (scrapedAt, coletadoEm, vistoPrimeiraVez, vistoUltimaVez) are always ignored. Add more field names here to ignore them as well, for example precoCondominio.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (text)
titleTitle (text)
tipoOperacaoOperation (text)
tipoImovelType (text)
precoAluguelRent (number)
precoTotalMensalTotal/mo (number)
precoVendaSale (number)
precoCondominioCondo (number)
precoIPTUIPTU (number)
areaArea m2 (number)
quartosBeds (number)
banheirosBaths (number)
Show 20 more fields
vagasParking (number)
bairroNeighborhood (text)
cidadeCity (text)
estadoState (text)
latitudeLat (number)
longitudeLng (number)
urlURL (link)
mobiliadoFurnished (boolean)
aceitaPetsPets (boolean)
pertoMetroNear subway (boolean)
floorFloor (number)
suitesSuites (number)
comodidadesIn-unit (array)
comodidadesPredioBuilding (array)
descricaoDescription (text)
enderecoAddress (text)
changeTypeChange
changedFieldsChanged fields (array)
firstSeenAtFirst seen (date)
lastSeenAtLast seen (date)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": 100000000,
  "idImovel": 100000000,
  "url": "https://www.quintoandar.com.br/imovel/100000000/alugar",
  "fonte": "quintoandar.com.br",
  "title": "Apartamento · 2 quartos · Bairro Exemplo",
  "titulo": "Apartamento · 2 quartos · Bairro Exemplo",
  "tipoOperacao": "aluguel",
  "tipoImovel": "Apartamento",
  "propertyType": "Apartamento",
  "modo": "rent",
  "precoAluguel": 2500,
  "precoTotalMensal": 3200,
  "precoAtual": 3200,
  "precoVenda": 0,
  "precoCondominio": 500,
  "precoIPTU": 200,
  "area": 65,
  "areaM2": 65,
  "quartos": 2,
  "banheiros": 1,
  "suites": 0,
  "vagas": 1,
  "floor": 7,
  "bairro": "Bairro Exemplo",
  "cidade": "Cidade Exemplo",
  "estado": "Estado Exemplo",
  "endereco": "Rua Ficticia, 123",
  "latitude": -23.55,
  "longitude": -46.63,
  "mobiliado": false,
  "aceitaPets": true,
  "pertoMetro": true,
  "descricao": "Apartamento amplo e bem localizado, com dois quartos.",
  "comodidades": [
    "Varanda",
    "Ar condicionado"
  ],
  "comodidadesPredio": [
    "Piscina",
    "Academia"
  ],
  "coverImage": "https://www.quintoandar.com.br/img/xlg/photo-1.jpeg",
  "imagens": [
    "https://www.quintoandar.com.br/img/xlg/photo-1.jpeg",
    "https://www.quintoandar.com.br/img/xlg/photo-2.jpeg"
  ],
  "listedAt": "2026-01-01T00:00:00.000Z",
  "coletadoEm": "2026-01-01T00:00:00Z"
}

Ways to use this data

  • Real estate investment analysis: pull sale prices, area and property specs to model returns on prospective properties.
  • Proptech and listings aggregators: feed structured Brazilian rental and sale data into your own search or comparison app.
  • Relocation and moving services: match clients to furnished, pet-friendly or subway-adjacent listings by city and neighborhood.
  • Academic and market research: build datasets of pricing and amenities across Brazilian cities over time.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does QuintoAndar Scraper return?

The documented output for QuintoAndar Scraper includes id, title, operation, type, rent, total/mo, sale and condo. Availability of each field depends on the source page and the selected mode.

How much does QuintoAndar Scraper cost?

It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only what changed since my last run?

Yes. Turn on Incremental mode and schedule the actor. The first run returns every matching listing as NEW; later runs return only NEW, UPDATED and REAPPEARED listings, with changedFields naming what moved (for example precoAluguel). Unchanged listings are not returned or billed unless you turn on emitUnchanged. emitExpired adds EXPIRED rows for listings that disappeared, only after a run that scanned the whole search (never when Max listings, Max pages, a failed page or Resume stopped it); EXPIRED rows are dataset rows and are charged as a Property result each. Rows are changeType, changedFields, firstSeenAt and lastSeenAt, shown in the Changes view. With Fetch details on, a listing whose detail page could not be read is skipped for that run and picked up on the next one. Resume from a previous run continues one specific interrupted run instead; the two are different features.

Can I schedule this to track a market over time?

Yes, schedule it from the Schedules tab. Each run reads the current live listings for your locations or URLs; there is no built-in change-tracking between runs, so keep the run's output (or your own downstream store) if you want to compare snapshots over time.

Why did I get fewer listings than Max listings?

With more than one location or URL, Max listings is split evenly across them, and an under-delivering location does not free its unused share up for the others. A location can also run dry before its share is filled, a results page that could not be read ends that location early, or Max pages per search can stop it first. Raise Max listings, raise or clear Max pages per search, or run fewer locations per job to collect more.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with QuintoAndar Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.