Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
QuintoAndar Scraper icon

QuintoAndar Scraper

Scrape QuintoAndar rentals and sales in Brazil: price, condo fee, IPTU, area, rooms, parking, address, coordinates, amenities, photos. No API key needed.

65 runs on Apify $0.0014 per property ($1.4 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust location, businessContext, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0014 per property = $1.4 per 1,000

You are charged forWhenPrice
Property returnedOne property listing returned in the dataset. Diagnostic rows and the labelled sample row are not charged.$0.0014

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.

Inputs

FieldWhat it doesType
locationA city QuintoAndar covers, "São Paulo", "Rio de Janeiro", "Belo Horizonte", "Curitiba". You can also write a neighbourhood and its city, like "Pinheiros, São Paulo", or paste a neighbourhood slug straight from a QuintoAndar URL, like "pinheiros-sao-paulo-sp-brasil". Either gives you a much tighter result set.string
businessContextWhich side of QuintoAndar to read. Several cities are rent-only, if you ask for sale listings there the run tells you so instead of returning nothing.string
maxItemsHard cap on rows across everything you asked for (1-2000). You are charged per listing returned. QuintoAndar hands out about 26 listings per search URL, so anything above that is collected by searching neighbourhood by neighbourhood, which takes roughly one request per 24 extra listings.integer
includeDetailsOff by default. Turn it on and the actor opens every listing to fill in latitude and longitude, the condo fee and IPTU split apart, postcode, suites, pets, construction year, availability and the owner's own description. It costs one extra request per listing and makes the run roughly forty times heavier, so leave it off unless you need those fields.boolean
locationsExtra cities or neighbourhood slugs, one per line. Runs alongside the field above.array
priceMinOnly listings at or above this price. On a rent search it is the monthly rent before the condo fee and IPTU; on a sale search it is the asking price. Leave it empty for no minimum.integer
bedroomsMin1 to 4. QuintoAndar's own choices stop at 4, so 4 means four or more.integer
bathroomsMin1 to 4. As with bedrooms, 4 means four or more.integer
areaMinOnly listings with at least this much floor area, as QuintoAndar records it.integer
startUrlsPaste search pages (https://www.quintoandar.com.br/alugar/imovel/sao-paulo-sp-brasil/apartamento/2-quartos) or single listings (https://www.quintoandar.com.br/imovel/892801690). Filters already in the URL are kept. A single listing URL always comes back with the full field set.array

What you get

A structured dataset — each result includes fields like:

propertyTypeneighbourhoodcityrentPricesalePricecondoAndIptutotalCostareabedroomsbathroomsparkingSpotsisFurnishedlatitudelongitudeurllistingId

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

QuintoAndar Scraper: Brazilian rentals and sales with the full monthly cost

Name a Brazilian city or paste a QuintoAndar URL, and get the listings back as rows. Rent, sale price, condo fee and IPTU, the total monthly cost, floor area, bedrooms, bathrooms, parking, neighbourhood, the amenity list, the building's facilities and every photo.

The thing to know first: QuintoAndar hands out about 26 listings per search page. Asking for more than that means the run works through the city neighbourhood by neighbourhood, roughly one extra request per 24 listings, so a 500-row run is a lot more work than a 26-row one.

InputA city, a neighbourhood slug, or QuintoAndar URLs
OutputOne row per property
Ceiling2,000 properties per run
Account neededNone
Price$1.40 per 1,000 properties, flat on every plan

🏢 What QuintoAndar Scraper does

Type "São Paulo" and it finds the search; paste pinheiros-sao-paulo-sp-brasil and it goes straight at that neighbourhood, which gives you a much tighter set. You can also paste a search page or a single listing URL, and a single listing always comes back with the full field set.

Rent and sale are separate sides of the site. Several cities QuintoAndar covers are rent-only, and asking for sale listings there gets you a row that says so rather than an empty dataset.

There is a guard worth knowing about. Hand QuintoAndar a location slug it does not recognise and it does not refuse, it answers with listings from somewhere else entirely. The run compares what came back against what you asked for and throws those away instead of charging you for another city's flats.

includeDetails is off on purpose. Leave it off and you get everything the search results carry. Turn it on and the run opens each listing to fill in coordinates, the condo fee and IPTU split apart, postcode, suites, pets, construction year, availability and the owner's own description. That is one extra request per listing and it makes the run about forty times heavier.

Minimums narrow the search on QuintoAndar itself. Price, bedrooms, bathrooms and floor area are checked again on each listing's own numbers, and one that falls short is skipped, never charged. A rent minimum is the monthly rent before condo fee and IPTU. Bedrooms and bathrooms stop at 4, meaning four or more. Minimums work on places you type, not pasted URLs: adding a second bedroom choice to a URL widens it, so the run stops with a BAD_INPUT row.

📥 What you give it

{
  "location": "pinheiros-sao-paulo-sp-brasil",
  "businessContext": "rent",
  "maxItems": 50,
  "includeDetails": false
}
FieldWhat the run uses if you leave itWhat it is
locationbox starts at São PauloA city QuintoAndar covers, a neighbourhood written as Pinheiros, São Paulo, or a neighbourhood slug copied out of one of their URLs. The slug is the faster and tighter option.
businessContextrentrent or sale.
maxItems50Hard cap on rows, 1 to 2,000. This is also your spending cap.
includeDetailsfalseOpen every listing page for the extra fields. Costs one extra request per listing.
locationsbox starts emptyExtra cities or slugs, one per line, run alongside location.
priceMinempty, no minimumLowest monthly rent, or lowest asking price on a sale search, in reais.
bedroomsMinempty, no minimumAt least this many bedrooms, 1 to 4. 4 means four or more.
bathroomsMinempty, no minimumAt least this many bathrooms, 1 to 4. 4 means four or more.
areaMinempty, no minimumSmallest floor area in m².
startUrlsbox starts emptyQuintoAndar search pages or single listing URLs. Filters already in the URL are kept.
proxyConfigurationnoneOptional. Only set this if traffic has to leave from a particular network of your own.

📤 What you get back

A real row from a recent run, with the photo list cut short:

{
  "listingId": "893445318",
  "url": "https://www.quintoandar.com.br/imovel/893445318/alugar",
  "businessContext": "rent",
  "forRent": true,
  "forSale": false,
  "rentPrice": 9610,
  "salePrice": 1950000,
  "totalCost": 12136,
  "condoAndIptu": 2156,
  "condoPrice": null,
  "iptu": null,
  "currency": "BRL",
  "propertyType": "Apartamento",
  "area": 110,
  "bedrooms": 3,
  "bathrooms": 2,
  "suites": null,
  "parkingSpots": 2,
  "isFurnished": true,
  "acceptsPets": null,
  "constructionYear": null,
  "street": "Rua Doutor Virgílio de Carvalho Pinto",
  "neighbourhood": "Pinheiros",
  "city": "São Paulo",
  "postcode": null,
  "latitude": null,
  "longitude": null,
  "availability": null,
  "visitsUnavailable": false,
  "description": null,
  "amenities": ["BANHEIRA_DE_HIDROMASSAGEM", "ESPELHO_NO_BANHEIRO", "VARAL_DE_ROUPAS", "..."],
  "buildingFacilities": ["SALAO_DE_FESTAS", "AREA_VERDE", "GAS_ENCANADO", "..."],
  "specialConditions": ["Exclusivity"],
  "rentalYield": 0.0049,
  "coverImage": "https://www.quintoandar.com.br/img/med/893445318-787...jpg",
  "imageCount": 12,
  "searchLocation": "sao-paulo-sp-brasil",
  "position": 3,
  "scrapedAt": "2026-09-26T06:14:03.287Z"
}
FieldWhat it is
listingIdQuintoAndar's own number. Stable, so use it to dedupe across runs.
urlThe listing on the side of the site you searched: /alugar for rent, /comprar for sale.
totalCostRent plus condo fee plus IPTU, the number a tenant actually pays each month.
condoAndIptuThe two bundled together as the search results give them. condoPrice and iptu are only split apart when includeDetails is on.
rentPrice, salePriceQuintoAndar writes a zero into the side that is not being offered. A zero is not a price, so it comes back null.
forRent, forSaleQuintoAndar's own flags, straight off their data and not always set in search results. businessContext records which side you asked for.
latitude, postcode, suites, acceptsPets, constructionYear, availability, descriptionAll null unless includeDetails is on.
amenities, buildingFacilitiesQuintoAndar's own Portuguese keys, left as they come so they stay stable to filter on.
rentalYieldQuintoAndar's own yield figure, not something worked out here.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot itCharged
A propertyno _sample and no _diagnostic keyyes
The sample row_sample: trueno
A diagnostic_diagnostic: true and an errorCodeno

Filter on _sample and _diagnostic being absent. Starting a run with nothing filled in writes the sample row and stops, so you can look at the shape before spending anything.

CodeWhat it means
NO_RESULTSNothing on that side of the market in that place right now. Several cities are rent-only.
UNKNOWN_LOCATIONQuintoAndar has no searchable location matching what you typed, or it answered a slug with the wrong city and those rows were discarded.
BAD_URLOne of your startUrls is not a QuintoAndar search or listing address.
BAD_INPUTA minimum was set alongside pasted URLs. Nothing was fetched.
SEARCH_FAILEDOne search did not come back. The other searches in the run carried on.
DETAIL_FAILEDA listing page would not open, usually because it was rented or sold between the search and the read.
SITE_UNREACHABLEQuintoAndar did not answer at all. Re-run in a few minutes.

A diagnostic row never fails the run, and one bad location never stops the others.

▶️ How to run it

1. Open QuintoAndar Scraper and click Try for free. 2. Type a city into Where to look, or paste a neighbourhood slug from a QuintoAndar URL. 3. Pick Rent or buy. 4. Set How many listings. Start at 26 or below to stay inside one search page. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$1.40 per 1,000 properties. Flat on every Apify plan, no volume tiers.

You pay per property row delivered. Duplicates removed before delivery, listings discarded because QuintoAndar answered with the wrong city, the sample row and diagnostic rows are all free. Turning on includeDetails does not change the price, only how long the run takes.

💡 What people use it for

  • Working out the real monthly cost of renting in a neighbourhood, using totalCost rather than the

headline rent.

  • Comparing rent against asking price on the same buildings, since both come back on one row.
  • Watching new listings appear in one neighbourhood, scheduled, deduped on listingId.
  • Filtering by what the building actually has: buildingFacilities carries the gym, the pool and the

laundry as stable keys.

🚧 What it does not do

  • No owner or agent contact details. QuintoAndar handles the visit itself and publishes none.
  • About 26 listings per search page. More than that means many more requests, which is why the

ceiling is 2,000 and not higher.

  • Cities stay inside their borders, neighbourhoods not always. A search page links nearby cities

and neighbourhoods, and the run does not follow them, so a São Paulo search never hands you Osasco. A neighbourhood search covers QuintoAndar's own map of the area, though, and a narrow one, four bedrooms in Pinheiros say, can bring listings from just across the border. Each row's neighbourhood says where it is.

  • Seven fields stay null without includeDetails, coordinates and the condo fee split among

them.

  • Several cities are rent-only. Asking for sale listings there returns a row saying so.
  • No upper limits. Price, bedrooms, bathrooms and area take a minimum only.
  • Brazil only, and only the cities QuintoAndar operates in.
  • Amenity keys stay in Portuguese. Translating them would break anyone filtering on them.
  • Rows are a snapshot. QuintoAndar pulls a listing the moment it is rented, and scrapedAt

records when it was read.

  • No floor plans and no virtual tours, only the photo URLs.

🧭 Which property scraper do you need?

If you wantUse
QuintoAndar rentals and salesThis one
Brazilian listings from VivaReal and ZAPVivaReal & ZAP Imóveis Scraper
Spanish listings from FotocasaFotocasa Scraper
Spain, Italy or Portugal from IdealistaIdealista Scraper
United States listingsZillow Scraper

❓ Questions people ask

Do I need a QuintoAndar account? No, and there is no API key to apply for.

What is a neighbourhood slug? The bit in their URL that names the area, like pinheiros-sao-paulo-sp-brasil. Copy it out of the address bar. It gets you a tighter, faster search than a whole city.

Should I turn on details? Only if you need coordinates, the condo fee split from IPTU, or the owner's description. It costs an extra request per listing.

Why is salePrice null on a rental? QuintoAndar writes a zero on the side that is not offered, and a zero is not a price, so it comes back empty rather than as a misleading number.

Can I run several cities at once? Yes. Put the extras into locations, one per line.

Is scraping property listings legal? These are public adverts on a public site. Apify's write-up on scraping and the law is a sensible starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and the location or URL you used. The errorCode on the diagnostic row usually names the problem on its own.