QuintoAndar Scraper
Scrape QuintoAndar rentals and sales in Brazil: price, condo fee, IPTU, area, rooms, parking, address, coordinates, amenities, photos. No API key needed.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
location,businessContext,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export 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 for | When | Price |
|---|---|---|
| Property returned | One 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
| Field | What it does | Type |
|---|---|---|
location | A 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 |
businessContext | Which 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 |
maxItems | Hard 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 |
includeDetails | Off 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 |
locations | Extra cities or neighbourhood slugs, one per line. Runs alongside the field above. | array |
priceMin | Only 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 |
bedroomsMin | 1 to 4. QuintoAndar's own choices stop at 4, so 4 means four or more. | integer |
bathroomsMin | 1 to 4. As with bedrooms, 4 means four or more. | integer |
areaMin | Only listings with at least this much floor area, as QuintoAndar records it. | integer |
startUrls | Paste 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:
propertyTypeneighbourhoodcityrentPricesalePricecondoAndIptutotalCostareabedroomsbathroomsparkingSpotsisFurnishedlatitudelongitudeurllistingIdExport 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
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.
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.
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.
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.
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.
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.
Where this tool sits
- Categories
- 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.
| Input | A city, a neighbourhood slug, or QuintoAndar URLs |
| Output | One row per property |
| Ceiling | 2,000 properties per run |
| Account needed | None |
| 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
}
| Field | What the run uses if you leave it | What it is |
|---|---|---|
location | box starts at São Paulo | A 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. |
businessContext | rent | rent or sale. |
maxItems | 50 | Hard cap on rows, 1 to 2,000. This is also your spending cap. |
includeDetails | false | Open every listing page for the extra fields. Costs one extra request per listing. |
locations | box starts empty | Extra cities or slugs, one per line, run alongside location. |
priceMin | empty, no minimum | Lowest monthly rent, or lowest asking price on a sale search, in reais. |
bedroomsMin | empty, no minimum | At least this many bedrooms, 1 to 4. 4 means four or more. |
bathroomsMin | empty, no minimum | At least this many bathrooms, 1 to 4. 4 means four or more. |
areaMin | empty, no minimum | Smallest floor area in m². |
startUrls | box starts empty | QuintoAndar search pages or single listing URLs. Filters already in the URL are kept. |
proxyConfiguration | none | Optional. 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"
}
| Field | What it is |
|---|---|
listingId | QuintoAndar's own number. Stable, so use it to dedupe across runs. |
url | The listing on the side of the site you searched: /alugar for rent, /comprar for sale. |
totalCost | Rent plus condo fee plus IPTU, the number a tenant actually pays each month. |
condoAndIptu | The two bundled together as the search results give them. condoPrice and iptu are only split apart when includeDetails is on. |
rentPrice, salePrice | QuintoAndar writes a zero into the side that is not being offered. A zero is not a price, so it comes back null. |
forRent, forSale | QuintoAndar'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, description | All null unless includeDetails is on. |
amenities, buildingFacilities | QuintoAndar's own Portuguese keys, left as they come so they stay stable to filter on. |
rentalYield | QuintoAndar's own yield figure, not something worked out here. |
🧾 Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A property | no _sample and no _diagnostic key | yes |
| The sample row | _sample: true | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
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.
| Code | What it means |
|---|---|
NO_RESULTS | Nothing on that side of the market in that place right now. Several cities are rent-only. |
UNKNOWN_LOCATION | QuintoAndar has no searchable location matching what you typed, or it answered a slug with the wrong city and those rows were discarded. |
BAD_URL | One of your startUrls is not a QuintoAndar search or listing address. |
BAD_INPUT | A minimum was set alongside pasted URLs. Nothing was fetched. |
SEARCH_FAILED | One search did not come back. The other searches in the run carried on. |
DETAIL_FAILED | A listing page would not open, usually because it was rented or sold between the search and the read. |
SITE_UNREACHABLE | QuintoAndar 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
totalCostrather 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:
buildingFacilitiescarries 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
nullwithoutincludeDetails, 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 want | Use |
|---|---|
| QuintoAndar rentals and sales | This one |
| Brazilian listings from VivaReal and ZAP | VivaReal & ZAP Imóveis Scraper |
| Spanish listings from Fotocasa | Fotocasa Scraper |
| Spain, Italy or Portugal from Idealista | Idealista Scraper |
| United States listings | Zillow 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.