# QuintoAndar Property Scraper (`parsebird/quintoandar-property-scraper`) Actor

Scrape QuintoAndar property listings across 80+ Brazilian cities. Extract prices, rooms, area, amenities, location, and photos for sale and rent listings. Export JSON, CSV, Excel via API.

- **URL**: https://apify.com/parsebird/quintoandar-property-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.89 / 1,000 property listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### QuintoAndar Brazil Property Scraper - Sale & Rent Listings

QuintoAndar Brazil Property Scraper extracts property listings from [QuintoAndar](https://www.quintoandar.com.br), Brazil's largest rental and sale real estate platform, across 80+ supported Brazilian cities.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">Search any supported city or neighborhood for sale or rent listings, filter by property type, rooms, price, area, furnishing, pets, transit access, and 25+ in-home and building amenities, and get analysis-ready property data with prices, rooms, location, photos, and building details.</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
parsebird/quintoandar-property-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/quintoandar-property-scraper").call(run_input={"deal_type":"sale","city":"sao-paulo-sp-brasil","property_type":["apartment"],"max_price":1500000,"limit":150}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: deal_type (sale|rent, default sale), city (required, QuintoAndar city slug e.g. "sao-paulo-sp-brasil"), neighborhood (optional free text to narrow within the city), sort_by (closest|most_relevant|most_recent|lowest_price|highest_price), property_type (array of apartment|house|condominium|studio, empty = all), min_bedroom/min_bathroom (1-4, "N+"), min_parking (0-3, "N+"), min_price/max_price/min_sqm/max_sqm (numbers), amenities/condo_amenities (arrays of normalized amenity codes), furnished (all|furnished|unfurnished), pets_allowed/near_transit (booleans, rent-focused), limit (max listings), maximize_coverage (boolean, default true, fans out across more QuintoAndar search pages for broader coverage), proxyConfiguration (optional). Output records use record_type "property_listing" with record_id, source_context, entity (title/description/url), listing (deal_type/transaction_type), pricing (primary_price/currency/rent_price/sale_price/total_cost), availability, location, media (cover_image/images), property (property_type/rooms/area/features/is_furnished), and attributes.source_specific.quintoandar.detail (display_id/places_nearby). Full actor spec: GET https://api.apify.com/v2/acts/parsebird~quintoandar-property-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations
```

### What is QuintoAndar Brazil Property Scraper?

QuintoAndar Brazil Property Scraper is an [Apify Actor](https://apify.com/actors) that acts as a **QuintoAndar API alternative** — it extracts the same listing data that powers [quintoandar.com.br](https://www.quintoandar.com.br) search and property pages, and returns it as clean, structured rows. Point it at any of QuintoAndar's 80+ supported Brazilian cities, add filters, and it handles pagination and per-listing detail fetching for you.

Use it as a **QuintoAndar scraper**, a **Brazil real estate data API**, or a repeatable data pipeline for market research, rent/price monitoring, and investment analysis. Results download as JSON, CSV, Excel, XML, or HTML, or you can pull them programmatically through the [Apify API](https://docs.apify.com/api/v2).

### What can QuintoAndar Brazil Property Scraper do?

- 🏙️ Search **sale or rent listings** across 80+ Brazilian cities, from São Paulo and Rio de Janeiro to smaller metro areas
- 🏘️ Narrow results to a specific **neighborhood** within a city (e.g. Pinheiros, Jardim Paulista)
- 🏢 Filter by **property type** — apartment, house, condominium (house in a gated community), or studio
- 🛏️ Filter by minimum **bedrooms, bathrooms, and parking spaces**, price range, and usable area
- 🛋️ Filter **rent listings** by furnishing, pet-friendliness, and proximity to public transit
- ✨ Filter by 25+ **in-home and building amenities** — pool, gym, elevator, air conditioning, walk-in closet, 24-hour concierge, and more
- 📸 Collect full **photo galleries**, floor plans (when available), nearby places (schools, hospitals, transit), and condo building details
- 📊 Enable **maximize coverage** to fan out across more QuintoAndar result pages and sub-searches for broader listing coverage on broad searches
- ⚙️ Run on demand, schedule recurring runs, or connect results to Apify [integrations](https://apify.com/integrations) like Google Sheets, Zapier, Make, and webhooks
- 📤 Export data in JSON, CSV, Excel, XML, RSS, or HTML from the Apify dataset

### What data can you extract from QuintoAndar?

| Field | Description |
|-------|-------------|
| `pricing.primary_price` / `rent_price` / `sale_price` | Listing price(s) in BRL |
| `pricing.total_cost` / `iptu_plus_condo_fee` | Total monthly cost and combined condo fee + property tax |
| `property.rooms` | Bedrooms, bathrooms, suites, parking spaces |
| `property.area.usable_area` | Usable area in square meters |
| `property.features.amenities` | In-home features (pool, air conditioning, walk-in closet, and more) |
| `property.features.building_installations` | Shared building/condo features (gym, elevator, party room, and more) |
| `availability.pets_allowed` / `near_transit` | Pet-friendliness and public transit proximity (rent listings) |
| `location` | Street, neighborhood, city, state, and region |
| `media.images` | Full photo gallery with room captions |
| `attributes.source_specific.quintoandar.detail.places_nearby` | Nearby schools, hospitals, parks, and transit stations |

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `deal_type` | string | No | `sale` | Market to collect from: `sale` or `rent` |
| `city` | string | **Yes** | — | QuintoAndar city slug, e.g. `sao-paulo-sp-brasil` |
| `neighborhood` | string | No | — | Neighborhood name to narrow the search within the city |
| `sort_by` | string | No | `most_relevant` | `closest`, `most_relevant`, `most_recent`, `lowest_price`, `highest_price` |
| `property_type` | array | No | all types | `apartment`, `house`, `condominium`, `studio` |
| `min_bedroom` / `min_bathroom` | string | No | any | `1` through `4` (meaning 1+ to 4+) |
| `min_parking` | string | No | any | `0` through `3` (meaning 0+ to 3+) |
| `min_price` / `max_price` | integer | No | — | Price range in BRL |
| `min_sqm` / `max_sqm` | integer | No | — | Usable area range in square meters |
| `amenities` | array | No | — | In-home features to require |
| `condo_amenities` | array | No | — | Shared building features to require |
| `furnished` | string | No | `all` | `all`, `furnished`, `unfurnished` |
| `pets_allowed` | boolean | No | `false` | Keep only pet-friendly rentals (rent only) |
| `near_transit` | boolean | No | `false` | Keep only listings near public transit |
| `limit` | integer | No | all matching | Maximum number of listings to save |
| `maximize_coverage` | boolean | No | `true` | Fan out across more result pages/sub-searches for broader coverage |
| `proxyConfiguration` | object | No | disabled | Optional Apify Proxy configuration |

**Example input (broad sale search in São Paulo):**

```json
{
  "deal_type": "sale",
  "city": "sao-paulo-sp-brasil",
  "sort_by": "most_recent",
  "property_type": ["apartment"],
  "max_price": 1500000,
  "limit": 150
}
```

**Example input (furnished rental near transit in Jardim Paulista):**

```json
{
  "deal_type": "rent",
  "city": "sao-paulo-sp-brasil",
  "neighborhood": "Jardim Paulista",
  "furnished": "furnished",
  "near_transit": true,
  "pets_allowed": true,
  "condo_amenities": ["gym", "elevator"],
  "limit": 75
}
```

### Output example

```json
{
  "record_type": "property_listing",
  "record_id": "895424722",
  "entity": {
    "title": "Comprar apartamento na Vila Campanela com 2 quartos.",
    "description": "Comprar apartamento na Vila Campanela com 2 quartos.",
    "url": "https://www.quintoandar.com.br/imovel/895424722"
  },
  "listing": {
    "listing_id": "895424722",
    "deal_type": "sale",
    "transaction_type": "sale"
  },
  "pricing": {
    "primary_price": 450000,
    "currency": "BRL",
    "sale_price": 450000,
    "total_cost": 2574,
    "iptu_plus_condo_fee": 600
  },
  "availability": {
    "visit_status": "ACCEPT_NEW",
    "for_rent": true,
    "for_sale": true,
    "near_transit": true
  },
  "location": {
    "label": "Vila Campanela, São Paulo, SP",
    "street": "Avenida José Pinheiro Borges",
    "neighborhood": "Vila Campanela",
    "city": "São Paulo",
    "state_code": "SP"
  },
  "property": {
    "property_type": "apartamento",
    "rooms": { "bedrooms": 2, "bathrooms": 1, "suites": 0, "parking_spaces": 0 },
    "area": { "usable_area": 38 },
    "features": {
      "amenities": ["box", "chuveiro_a_gas", "tanque"],
      "building_installations": ["SALAO_DE_FESTAS", "ACADEMIA", "PISCINA", "PLAYGROUND"]
    },
    "is_furnished": false
  },
  "attributes": {
    "source_specific": {
      "quintoandar": {
        "detail": {
          "display_id": "2724722",
          "places_nearby": [
            { "name": "Corinthians-Itaquera", "type": "ESTACAO_METRO_OU_TREM" }
          ]
        }
      }
    }
  }
}
```

Fields that don't apply to a given listing (for example `pricing.sale_price` on a rent-only listing) are omitted. Download results in JSON, HTML, CSV, or Excel from the dataset page, or fetch rows programmatically through the API.

### How to scrape QuintoAndar property listings

1. Open QuintoAndar Brazil Property Scraper on Apify and click **Try for free**.
2. Pick a `city` from the dropdown and, optionally, a `neighborhood` to narrow the search.
3. Choose `deal_type` (sale or rent) and adjust `property_type`, room, price, and amenity filters as needed.
4. Set `limit` to control run size and cost, and turn `maximize_coverage` off for a faster, narrower run.
5. Start the run and wait for the dataset to populate.
6. Download results as JSON, CSV, Excel, HTML, XML, or RSS, or open them straight in Google Sheets.
7. Automate it with [Apify scheduling](https://docs.apify.com/platform/schedules), [integrations](https://apify.com/integrations), or the [Apify API](https://docs.apify.com/api/v2).

### How to use the QuintoAndar API in Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("parsebird/quintoandar-property-scraper").call(run_input={
    "deal_type": "sale",
    "city": "campinas-sp-brasil",
    "property_type": ["house", "condominium"],
    "min_bedroom": "3",
    "min_bathroom": "2",
    "min_parking": "2",
    "min_sqm": 120,
    "limit": 100,
})

items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items[:2])
```

### How to use the QuintoAndar API in JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('parsebird/quintoandar-property-scraper').call({
    deal_type: 'rent',
    city: 'sao-paulo-sp-brasil',
    neighborhood: 'Jardim Paulista',
    furnished: 'furnished',
    near_transit: true,
    limit: 75,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Use cases

- **Market research** — Compare prices per square meter across neighborhoods or cities
- **Rent monitoring** — Track furnished, pet-friendly, or transit-accessible rental supply in a target neighborhood
- **Investment analysis** — Screen for sale listings by price, area, and room count that fit an investment thesis
- **Lead generation** — Build a dataset of active listings for outreach or comparison tools
- **Portfolio benchmarking** — Monitor how a set of tracked listings' prices and availability change over time

### How it works

1. Builds a QuintoAndar search URL from your `deal_type`, `city`/`neighborhood`, and confirmed filter segments (property type, bedrooms, price/area caps, furnished, near-transit)
2. Fetches the search result page(s) — when `maximize_coverage` is on, it fans out across additional pages and property-type sub-searches to broaden coverage beyond a single results page
3. Fetches each listing's detail page for the full record: rooms, area, amenities, building/condo features, photos, and nearby places
4. Applies any remaining filters (bathrooms, parking, price, area, pets, amenities, neighborhood) that aren't fully expressible in the search URL
5. Sorts the collected listings by `sort_by` and pushes up to `limit` records to the dataset

### How much does it cost to scrape QuintoAndar?

QuintoAndar Brazil Property Scraper uses pay-per-event pricing — you pay per property listing saved to the dataset, not per page or API call made internally.

| Event | Price per event | Price per 1,000 |
|-------|-----------------|-----------------|
| `property-listing-scraped` | $0.00139 (Free) / $0.00119 (Bronze) / $0.00099 (Silver) / $0.00089 (Gold) | **$1.39 / $1.19 / $0.99 / $0.89** |

A 150-listing search run costs about $0.21 on the Free plan.

### Is it legal to scrape QuintoAndar data?

QuintoAndar Brazil Property Scraper extracts publicly available property listings from the same pages QuintoAndar's own website renders for visitors. Scraping publicly accessible data is generally lawful, but you're responsible for how you use the results — always review [QuintoAndar's Terms of Use](https://www.quintoandar.com.br/termos-de-uso) and Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) before running large or automated workloads.

### Related ParseBird real estate scrapers

| Actor | Best for |
|-------|----------|
| [Imovelweb Scraper](https://apify.com/parsebird/imovelweb-scraper) | Imovelweb.com.br sale, rent, and auction listings across Brazil |
| [VivaReal Property Scraper](https://apify.com/parsebird/vivareal-property-scraper) | VivaReal.com.br sale and rent listings |
| [Zoopla Property Scraper](https://apify.com/parsebird/zoopla-property-scraper) | UK property listings |

### FAQ

**Do I need a QuintoAndar account or API key?**
No. QuintoAndar doesn't offer a public API. This actor reads the same public pages the QuintoAndar website renders for visitors, so no credentials are required.

**Which cities are supported?**
Any of the 80+ Brazilian cities listed in the `city` dropdown, covering the São Paulo, Rio de Janeiro, Minas Gerais, Rio Grande do Sul, Paraná, Santa Catarina, and other metro areas QuintoAndar operates in.

**Why does `maximize_coverage` matter?**
QuintoAndar's search results are capped per page and per search combination. With `maximize_coverage` on, the actor combines several result pages and, when `property_type` is left open, several property-type sub-searches to collect a broader — though still best-effort — set of unique listings. Coverage naturally plateaus for very broad, unfiltered searches; narrowing by neighborhood, property type, or price range typically surfaces more of the available listings.

**Why are `amenities`/`condo_amenities` filters best-effort?**
QuintoAndar does not publish a documented amenity taxonomy, and listings vary in which features they report. The actor matches your selected amenities against QuintoAndar's own listing tags; a filter with no match on a given listing simply won't include it, rather than guessing.

**Can I schedule recurring runs?**
Yes. Use [Apify scheduling](https://docs.apify.com/platform/schedules) to run daily, weekly, or at any interval, then connect the dataset to integrations or webhooks.

**Does this actor require a proxy?**
No. QuintoAndar's public listing pages don't require a proxy for normal use. The `proxyConfiguration` input is available if you want extra reliability.

**How do I report a problem or request a field?**
Open an issue from the Actor page in Apify Console and include the run ID and input used.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/quintoandar-property-scraper/changelog.md

# Actor input Schema

## `deal_type` (type: `string`):

Choose which market to collect from.

## `city` (type: `string`):

City to search on QuintoAndar.

## `neighborhood` (type: `string`):

Optional neighborhood name to narrow the search within the selected city, such as Pinheiros or Jardim Paulista.

## `sort_by` (type: `string`):

Controls result ordering before collection.

## `property_type` (type: `array`):

Property categories to include. Leave empty to include all supported property types.

## `min_bedroom` (type: `string`):

Minimum bedroom count.

## `min_bathroom` (type: `string`):

Minimum bathroom count.

## `min_parking` (type: `string`):

Minimum parking spaces.

## `min_sqm` (type: `integer`):

Minimum usable area in square meters.

## `max_sqm` (type: `integer`):

Maximum usable area in square meters.

## `min_price` (type: `integer`):

Lowest price to include in the results.

## `max_price` (type: `integer`):

Highest price to include in the results.

## `furnished` (type: `string`):

Furnishing preference.

## `pets_allowed` (type: `boolean`):

Keep only pet-friendly rental listings. Does not change sale searches.

## `near_transit` (type: `boolean`):

Keep only listings marked as near public transit.

## `amenities` (type: `array`):

In-home features to require.

## `condo_amenities` (type: `array`):

Shared building features to require.

## `limit` (type: `integer`):

Maximum number of listings to save. Leave empty to collect all matching results for the configured search.

## `maximize_coverage` (type: `boolean`):

When enabled, broad searches aim to collect a more complete set of matching listings by combining several QuintoAndar result pages and sub-searches. Uses more requests.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy configuration for collection reliability. QuintoAndar's public pages do not require a proxy, so this is disabled by default.

## Actor input object example

```json
{
  "deal_type": "sale",
  "city": "sao-paulo-sp-brasil",
  "neighborhood": "",
  "sort_by": "most_relevant",
  "property_type": [],
  "min_bedroom": "",
  "min_bathroom": "",
  "min_parking": "",
  "furnished": "all",
  "pets_allowed": false,
  "near_transit": false,
  "amenities": [],
  "condo_amenities": [],
  "limit": 50,
  "maximize_coverage": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "deal_type": "sale",
    "city": "sao-paulo-sp-brasil",
    "sort_by": "most_relevant",
    "furnished": "all",
    "limit": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/quintoandar-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "deal_type": "sale",
    "city": "sao-paulo-sp-brasil",
    "sort_by": "most_relevant",
    "furnished": "all",
    "limit": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/quintoandar-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "deal_type": "sale",
  "city": "sao-paulo-sp-brasil",
  "sort_by": "most_relevant",
  "furnished": "all",
  "limit": 50
}' |
apify call parsebird/quintoandar-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/quintoandar-property-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/arctXnmEFBbfXBEV0/builds/bJ4eY6w0da7JPAkkE/openapi.json
