# QuintoAndar Scraper | $1.5 / 1k | Fast & Reliable (`fatihtahta/quintoandar-scraper`) Actor

Extract structured Brazil property listings from QuintoAndar Imoveis with pricing, locations, seller details, media assets, and contact data. Built for enterprise-grade Brazil real estate intelligence, listing monitoring, lead enrichment and automated analytics pipelines.

- **URL**: https://apify.com/fatihtahta/quintoandar-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 12 total users, 3 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## QuintoAndar Scraper

**Slug:** fatihtahta/quintoandar-scraper

### Overview
QuintoAndar Scraper collects structured property listing data from QuintoAndar, including listing identifiers, pricing, location details, room counts, amenities, building features, and media assets. It is designed for teams that need consistent listing records for analysis, enrichment, reporting, or operational workflows. [https://www.quintoandar.com.br](https://www.quintoandar.com.br) is one of Brazil's best-known real estate platforms, making it a valuable source for tracking rental and sale inventory across major cities. The actor automates repetitive collection work so you can avoid manual searches and exports. Each run is built to deliver repeatable, ready-to-use JSON output that saves time across research and data pipelines.

### Why Use This Actor
- **Market research and analytics:** Track asking prices, listing mix, neighborhood coverage, and amenity trends across cities and segments.
- **Product and content teams:** Build localized pages, comparison content, or housing datasets with structured listing, pricing, and location information.
- **Developers and data engineering pipelines:** Feed warehouses, dashboards, ETL jobs, and downstream APIs with normalized JSON records.
- **Lead generation and enrichment:** Identify active listings that match target neighborhoods, price bands, property types, or lifestyle filters.
- **Monitoring and competitive tracking:** Watch market changes over time, including shifts in availability, furnishing preferences, transit proximity, and building features.

### Input Parameters
Provide any combination of URLs, queries, and filters…

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `deal_type` | `string` | Choose which market to collect from. Allowed values: `sale`, `rent`. | `sale` |
| `sort_by` | `string` | Controls result ordering before collection. Allowed values: `closest`, `most_relevant`, `most_recent`, `lowest_price`, `highest_price`. | `most_relevant` |
| `city` | `string` | City slug to search. Allowed values: `sao-paulo-sp-brasil` (Sao Paulo), `rio-de-janeiro-rj-brasil` (Rio de Janeiro), `belo-horizonte-mg-brasil` (Belo Horizonte), `porto-alegre-rs-brasil` (Porto Alegre), `brasilia-df-brasil` (Brasilia), `curitiba-pr-brasil` (Curitiba), `goiania-go-brasil` (Goiania), `campinas-sp-brasil` (Campinas), `canoas-rs-brasil` (Canoas), `guarulhos-sp-brasil` (Guarulhos), `jundiai-sp-brasil` (Jundiai), `nova-lima-mg-brasil` (Nova Lima), `novo-hamburgo-rs-brasil` (Novo Hamburgo), `niteroi-rj-brasil` (Niteroi), `osasco-sp-brasil` (Osasco), `santo-andre-sp-brasil` (Santo Andre), `sao-bernardo-do-campo-sp-brasil` (Sao Bernardo do Campo), `sao-caetano-do-sul-sp-brasil` (Sao Caetano do Sul), `barueri-sp-brasil` (Barueri), `sao-leopoldo-rs-brasil` (Sao Leopoldo), `florianopolis-sc-brasil` (Florianopolis), `sao-jose-sc-brasil` (Sao Jose), `palhoca-sc-brasil` (Palhoca), `contagem-mg-brasil` (Contagem), `taboao-da-serra-sp-brasil` (Taboao da Serra), `diadema-sp-brasil` (Diadema), `sao-jose-dos-pinhais-pr-brasil` (Sao Jose dos Pinhais), `varzea-paulista-sp-brasil` (Varzea Paulista), `pinhais-pr-brasil` (Pinhais), `santana-de-parnaiba-sp-brasil` (Santana de Parnaiba), `santos-sp-brasil` (Santos), `recife-pe-brasil` (Recife), `salvador-ba-brasil` (Salvador), `mogi-das-cruzes-sp-brasil` (Mogi das Cruzes), `sao-jose-dos-campos-sp-brasil` (Sao Jose dos Campos), `cotia-sp-brasil` (Cotia), `vitoria-es-brasil` (Vitoria), `ribeirao-preto-sp-brasil` (Ribeirao Preto), `sorocaba-sp-brasil` (Sorocaba), `sao-jose-do-rio-preto-sp-brasil` (Sao Jose do Rio Preto), `uberlandia-mg-brasil` (Uberlandia), `maua-sp-brasil` (Maua), `belem-pa-brasil` (Belem), `fortaleza-ce-brasil` (Fortaleza), `manaus-am-brasil` (Manaus), `valinhos-sp-brasil` (Valinhos), `vinhedo-sp-brasil` (Vinhedo), `indaiatuba-sp-brasil` (Indaiatuba), `nova-iguacu-rj-brasil` (Nova Iguacu), `americana-sp-brasil` (Americana), `hortolandia-sp-brasil` (Hortolandia), `paulinia-sp-brasil` (Paulinia), `praia-grande-sp-brasil` (Praia Grande), `guaruja-sp-brasil` (Guaruja), `carapicuiba-sp-brasil` (Carapicuiba), `votorantim-sp-brasil` (Votorantim), `sao-vicente-sp-brasil` (Sao Vicente), `duque-de-caxias-rj-brasil` (Duque de Caxias), `sao-goncalo-rj-brasil` (Sao Goncalo), `vila-velha-es-brasil` (Vila Velha), `betim-mg-brasil` (Betim), `aparecida-de-goiania-go-brasil` (Aparecida de Goiania), `suzano-sp-brasil` (Suzano), `itaquaquecetuba-sp-brasil` (Itaquaquecetuba), `sumare-sp-brasil` (Sumare), `embu-das-artes-sp-brasil` (Embu das Artes), `ferraz-de-vasconcelos-sp-brasil` (Ferraz de Vasconcelos), `poa-sp-brasil` (Poa), `gravatai-rs-brasil` (Gravatai), `viamao-rs-brasil` (Viamao), `alvorada-rs-brasil` (Alvorada), `jaboatao-dos-guararapes-pe-brasil` (Jaboatao dos Guararapes), `belford-roxo-rj-brasil` (Belford Roxo), `nilopolis-rj-brasil` (Nilopolis), `mesquita-rj-brasil` (Mesquita), `taubate-sp-brasil` (Taubate), `jacarei-sp-brasil` (Jacarei), `ribeirao-das-neves-mg-brasil` (Ribeirao das Neves), `ribeirao-pires-sp-brasil` (Ribeirao Pires), `brumadinho-mg-brasil` (Brumadinho), `itabirito-mg-brasil` (Itabirito), `lagoa-santa-mg-brasil` (Lagoa Santa), `sabara-mg-brasil` (Sabara), `vespasiano-mg-brasil` (Vespasiano), `rio-acima-mg-brasil` (Rio Acima), `santa-luzia-mg-brasil` (Santa Luzia), `marica-rj-brasil` (Marica), `cabo-frio-rj-brasil` (Cabo Frio). | – |
| `neighborhood` | `string` | Optional neighborhood name to narrow the search within the selected city, such as `Pinheiros` or `Jardim Paulista`. | – |
| `property_type` | `array[string]` | Property categories to include. Allowed values: `apartment`, `house`, `condominium`, `studio`. Leave empty to include all supported property types. | – |
| `min_bedroom` | `string` | Minimum bedroom count. Allowed values: `1`, `2`, `3`, `4`, meaning 1+ through 4+ bedrooms. | – |
| `min_bathroom` | `string` | Minimum bathroom count. Allowed values: `1`, `2`, `3`, `4`, meaning 1+ through 4+ bathrooms. | – |
| `min_parking` | `string` | Minimum parking spaces. Allowed values: `0`, `1`, `2`, `3`, meaning 0+ through 3+ spaces. | – |
| `min_price` | `integer` | Lowest price to include in the results. | – |
| `max_price` | `integer` | Highest price to include in the results. | – |
| `min_sqm` | `integer` | Minimum usable area in square meters. | – |
| `max_sqm` | `integer` | Maximum usable area in square meters. | – |
| `amenities` | `array[string]` | In-home features to require. Allowed values: `penthouse_apartment`, `air_conditioning`, `bathtub`, `shower_enclosure`, `barbecue_grill`, `gas_shower`, `walk_in_closet`, `garden_private_outdoor_area`, `new_or_renovated`, `private_pool`, `single_house_on_the_property`, `laundry_sink`, `television`, `kitchen_utensils`, `ceiling_fan`. | – |
| `condo_amenities` | `array[string]` | Shared building features to require. Allowed values: `gym`, `green_area`, `playroom`, `barbecue_area`, `elevator`, `laundry_room`, `swimming_pool`, `playground`, `24_hour_concierge`, `sports_court`, `party_room`, `game_room`, `sauna`. | – |
| `furnished` | `string` | Furnishing preference. Allowed values: `all`, `furnished`, `unfurnished`. | `all` |
| `pets_allowed` | `boolean` | When enabled, keeps only pet-friendly rental listings. It does not change sale searches. | `false` |
| `near_transit` | `boolean` | When enabled, keeps only listings marked as near public transit. | `false` |
| `limit` | `integer` | Maximum number of listings to save. Leave empty to collect all matching results for the configured search. | – |
| `maximize_coverage` | `boolean` | When enabled, broad searches aim to collect a more complete set of matching listings. | `true` |

### Example Inputs

#### Scenario: Broad sale search in Sao Paulo
```json
{
  "deal_type": "sale",
  "city": "sao-paulo-sp-brasil",
  "sort_by": "most_recent",
  "property_type": ["apartment"],
  "max_price": 1500000,
  "limit": 150
}
````

#### Scenario: 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
}
```

#### Scenario: Family-focused house search in Campinas

```json
{
  "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
}
```

### Output

#### 6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

#### 6.2 Record envelope (all items)

Each saved item is a normalized real estate listing record:

- **record\_type** *(string, required)*: Stable discriminator. Current value: `property_listing`.
- **record\_id** *(string, required)*: Stable QuintoAndar listing identifier.
- **source\_context** *(object, required)*: Source URL, source domain, seed, page, and external IDs.
- **entity** *(object, required)*: Main listing title, description, public URL, and source identifiers.
- **listing** *(object, required)*: Deal type, listing status, publication history, and short source descriptions.

Recommended idempotency key: `record_type + ":" + record_id`

If the same listing appears in multiple runs or search combinations, use this key for deduplication and upserts.

#### 6.3 Example

```json
{
  "record_type": "property_listing",
  "record_id": "895116186",
  "source_context": {
    "source_url": "https://www.quintoandar.com.br/comprar/imovel/sao-paulo-sp-brasil",
    "source_name": "QuintoAndar",
    "source_domain": "quintoandar.com.br",
    "page_index": 1,
    "seed": {
      "id": "c0cb59c07f0d",
      "type": "location",
      "value": "sao-paulo-sp-brasil"
    },
    "external_ids": {
      "listing_id": "895116186"
    }
  },
  "entity": {
    "title": "Casa na Lapa com 6 quartos disponível para compra.",
    "description": "Casa na Lapa com 6 quartos disponível para compra.",
    "url": "https://www.quintoandar.com.br/imovel/895116186",
    "external_ids": {
      "listing_id": "895116186"
    }
  },
  "listing": {
    "listing_id": "895116186",
    "deal_type": "sale",
    "transaction_type": "sale",
    "short_descriptions": {
      "sale": "Casa na Lapa com 6 quartos disponível para compra."
    }
  },
  "pricing": {
    "primary_price": 2300000,
    "currency": "BRL",
    "rent_price": 9942,
    "sale_price": 2300000,
    "total_cost": 12281,
    "iptu_plus_condo_fee": 1917,
    "estimated_yield": 0.0034,
    "yield_strategy": "calculator"
  },
  "availability": {
    "visit_status": "accept_new",
    "for_rent": true,
    "for_sale": true,
    "is_primary_market": false,
    "is_secondary_house": false,
    "active_special_conditions": [
      "Exclusivity"
    ]
  },
  "location": {
    "label": "Lapa, São Paulo, SP",
    "street": "Rua Guararapes",
    "neighborhood": "Lapa",
    "city": "São Paulo",
    "state_code": "SP",
    "region_name": "Lapa"
  },
  "media": {
    "cover_image": {
      "url": "original895116186-722.86017859647941000485522.jpg",
      "cover": true
    },
    "images": [
      {
        "url": "original895116186-722.86017859647941000485522.jpg",
        "cover": true
      },
      {
        "url": "original895116186-295.9663141414039IMG8196.JPG",
        "caption": "Cozinha"
      }
    ]
  },
  "property": {
    "property_type": "casa",
    "rooms": {
      "bedrooms": 6,
      "bathrooms": 4,
      "suites": 1,
      "parking_spaces": 6
    },
    "area": {
      "usable_area": 521
    },
    "features": {
      "amenities": [
        "vista_livre",
        "banheira_de_hidromassagem",
        "quintal"
      ],
      "building_installations": [
        "SALAO_DE_FESTAS",
        "AREA_VERDE",
        "PERTO_DE_METRO_OU_TREM"
      ],
      "listing_tags": [
        "BUY_RENTED"
      ],
      "score_match_tags": [
        "SAME_CITY_MATCH"
      ]
    },
    "is_furnished": false
  },
  "attributes": {
    "source_specific": {
      "quintoandar": {
        "detail": {
          "url": "https://www.quintoandar.com.br/imovel/895116186/comprar/casa-6-quartos-lapa-sao-paulo",
          "display_id": "2416186",
          "places_nearby": [
            {
              "name": "Colégio Adventista da Lapa",
              "type": "SCHOOL",
              "slug": "colegio-adventista-da-lapa-lapa-sao-paulo-sp"
            }
          ]
        }
      }
    }
  }
}
```

### Field reference

- **record\_type** *(string, required)*: Stable discriminator. Current value is `property_listing`.
- **record\_id** *(string, required)*: Stable QuintoAndar listing identifier.
- **source\_context.source\_url** *(string, required)*: Search or listing URL where the record was discovered.
- **source\_context.source\_name** *(string, optional)*: Source label, usually `QuintoAndar`.
- **source\_context.source\_domain** *(string, optional)*: Source domain.
- **source\_context.page\_index** *(number, optional)*: Results page number.
- **source\_context.seed** *(object, optional)*: Originating seed id, type, and value.
- **source\_context.external\_ids** *(object, optional)*: Listing, external, legacy, source, and provider IDs when available.
- **entity.title** *(string, optional)*: Listing title.
- **entity.description** *(string, optional)*: Listing description.
- **entity.url** *(string, optional)*: Public listing URL.
- **entity.external\_ids** *(object, optional)*: Listing identifiers repeated with the entity for downstream joins.
- **listing.listing\_id** *(string, optional)*: Source listing ID.
- **listing.deal\_type** *(string, optional)*: Deal mode, such as `sale` or `rent`.
- **listing.transaction\_type** *(string, optional)*: Transaction mode from the source.
- **listing.listing\_type** *(string, optional)*: Source listing type when provided.
- **listing.listing\_status** *(string, optional)*: Source listing status when provided.
- **listing.property\_status** *(string, optional)*: Construction or property status.
- **listing.history** *(object, optional)*: Published, created, and updated timestamps when available.
- **listing.short\_descriptions** *(object, optional)*: Short sale or rent descriptions from QuintoAndar.
- **pricing** *(object, optional)*: Primary price, rent, sale price, fees, tax, guarantee, yield, and source offer details.
- **availability** *(object, optional)*: Visit status, price display, rent/sale flags, exchange, resale, and special conditions.
- **location** *(object, optional)*: Address, neighborhood, city, state, postal code, coordinates, and geocoding context.
- **property** *(object, optional)*: Property type, rooms, area, amenities, building features, furnishing, condominium, development, and unit options.
- **media** *(object, optional)*: Cover image, images, videos, logos, and related media metadata.
- **relationships** *(object, optional)*: Seller, advertiser, developer, and linked entity details.
- **contact\_details** *(object, optional)*: Public phones, WhatsApp, and contact fields exposed by the source.
- **attributes.source\_specific** *(object, optional)*: Rich QuintoAndar detail objects, enrichment-only fields, and source-specific structures.
- **attributes.source\_data** *(object, optional)*: Meaningful source fields that were not already mapped into a normalized group.
- **attributes.additional\_attributes** *(object, optional)*: Additional normalized values retained when they do not fit a stronger group.

### Data guarantees & handling

- **Best-effort extraction:** fields may vary by region, session, availability, and site experiments.
- **Optional fields:** null-check in downstream code.
- **Deduplication:** recommend `record_type + ":" + record_id`.

### How to Run on Apify

1. Open the Actor in Apify Console.
2. Configure your search parameters, including deal type, city, and any optional filters such as neighborhood, price, size, or amenities.
3. Set the maximum number of outputs to collect.
4. Click **Start** and wait for the run to finish.
5. Download results in JSON, CSV, Excel, or other supported formats.

### Scheduling & Automation

#### Scheduling

**Automated Data Collection**

Schedule recurring runs to keep your QuintoAndar dataset current without manual work. This is useful for market tracking, recurring exports, and any workflow that depends on fresh listing data.

- Navigate to **Schedules** in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- Optional: add webhooks for automated processing

#### Integration Options

- **Webhooks:** Trigger downstream actions when a run completes
- **Zapier:** Connect to 5,000+ apps without coding
- **Make (Integromat):** Build multi-step automation workflows
- **Google Sheets:** Export results to a spreadsheet
- **Slack/Discord:** Receive notifications and summaries
- **Email:** Send automated reports via email

### Performance

- **Small runs (< 1,000 outputs):** ~2-3 minutes
- **Medium runs (1,000-5,000 outputs):** ~5-15 minutes
- **Large runs (5,000+ outputs):** ~15-30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

### Compliance & Ethics

#### Responsible Data Collection

This actor collects publicly available property listing information from <https://www.quintoandar.com.br> for legitimate business purposes, including:

- **Real estate** research and market analysis
- **Listing monitoring and reporting**
- **Data enrichment and internal analytics**

You are responsible for ensuring your use of the collected data complies with applicable laws, regulations, platform terms, and internal policies. This section is informational and not legal advice.

#### Best Practices

- Use collected data in accordance with applicable laws, regulations, and the target site's terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

### Support

For help, use the Issues tab or support section on the actor page in Apify Console. Include the input you used with sensitive values redacted, the run ID, a short description of expected versus actual behavior, and, if helpful, a small output sample.

# Actor input Schema

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

Select `sale` for homes listed to buy, or `rent` for homes listed to lease.

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

Select the city where listings should be collected. The city also provides the context for any neighborhood name you enter below.

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

Optionally enter a bairro or neighborhood name to narrow the search within the selected city. For example, choose Rio de Janeiro as the city and enter `Copacabana` to focus on that neighborhood.

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

Select the ordering strategy for matching listings. Relevance is a balanced default, while recency and price sorting are useful for market monitoring or budget-focused workflows.

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

Leave empty to include every supported property type. Select multiple values to keep only listings that match those categories.

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

Choose the fewest bedrooms a listing must have. For example, `2+` keeps homes with at least 2 bedrooms.

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

Choose the fewest bathrooms a listing must have. For example, `2+` keeps homes with at least 2 bathrooms.

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

Choose the fewest parking spaces a listing must have. For example, `1+` keeps homes with at least 1 parking space.

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

Enter the lowest listing price to include. Use the same currency convention shown by QuintoAndar for the selected market.

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

Enter the highest listing price to include. Use this to cap expensive outliers or keep a sample focused on a target budget band.

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

Enter the smallest usable area to include, in square meters. For example, `35` keeps listings with at least 35 sqm.

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

Enter the largest usable area to include, in square meters. Use this when you want compact listings or a bounded comparison set.

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

Leave empty to include all homes regardless of amenities. Select one or more options to keep listings that match the chosen in-home features.

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

Leave empty to include buildings with any amenity set. Select one or more options to keep listings in buildings that include those facilities.

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

Select `all` to include every listing, `furnished` to keep only furnished homes, or `unfurnished` to keep only unfurnished homes.

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

Enable this to keep only rental listings marked as allowing pets. It is intended for rental searches and should be left off when pet policy is not part of your criteria.

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

Enable this to keep only listings marked as near public transit when that signal is available for the selected search.

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

Enter the maximum number of listings to save. Leave empty when you want the run to collect all available matching results within the selected scope.

## `enrich_data` (type: `boolean`):

Enable this when completeness matters more than speed. Leave it off for faster runs when the lightweight listing fields are sufficient for your workflow.

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

Enable this to collect a broader set of matching listings for large searches. Keep it on for comprehensive runs, or turn it off when you only need a faster sample from the selected criteria.

## Actor input object example

```json
{
  "deal_type": "sale",
  "city": "sao-paulo-sp-brasil",
  "sort_by": "most_relevant",
  "furnished": "all",
  "pets_allowed": false,
  "near_transit": false,
  "limit": 100,
  "enrich_data": false,
  "maximize_coverage": true
}
```

# Actor output Schema

## `results` (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 = {
    "city": "sao-paulo-sp-brasil",
    "limit": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/quintoandar-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 = {
    "city": "sao-paulo-sp-brasil",
    "limit": 100,
}

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

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

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

```

## CLI example

```bash
echo '{
  "city": "sao-paulo-sp-brasil",
  "limit": 100
}' |
apify call fatihtahta/quintoandar-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fatihtahta/quintoandar-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "QuintoAndar Scraper | $1.5 / 1k | Fast & Reliable",
        "description": "Extract structured Brazil property listings from QuintoAndar Imoveis with pricing, locations, seller details, media assets, and contact data. Built for enterprise-grade Brazil real estate intelligence, listing monitoring, lead enrichment and automated analytics pipelines.",
        "version": "1.0",
        "x-build-id": "aDOgMd0sUcCF2cjTZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihtahta~quintoandar-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihtahta-quintoandar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/fatihtahta~quintoandar-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihtahta-quintoandar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/fatihtahta~quintoandar-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihtahta-quintoandar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "deal_type": {
                        "title": "Choose Sale or Rental Listings",
                        "enum": [
                            "sale",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Select `sale` for homes listed to buy, or `rent` for homes listed to lease.",
                        "default": "sale"
                    },
                    "city": {
                        "title": "Choose a City",
                        "enum": [
                            "sao-paulo-sp-brasil",
                            "rio-de-janeiro-rj-brasil",
                            "belo-horizonte-mg-brasil",
                            "porto-alegre-rs-brasil",
                            "brasilia-df-brasil",
                            "curitiba-pr-brasil",
                            "goiania-go-brasil",
                            "campinas-sp-brasil",
                            "canoas-rs-brasil",
                            "guarulhos-sp-brasil",
                            "jundiai-sp-brasil",
                            "nova-lima-mg-brasil",
                            "novo-hamburgo-rs-brasil",
                            "niteroi-rj-brasil",
                            "osasco-sp-brasil",
                            "santo-andre-sp-brasil",
                            "sao-bernardo-do-campo-sp-brasil",
                            "sao-caetano-do-sul-sp-brasil",
                            "barueri-sp-brasil",
                            "sao-leopoldo-rs-brasil",
                            "florianopolis-sc-brasil",
                            "sao-jose-sc-brasil",
                            "palhoca-sc-brasil",
                            "contagem-mg-brasil",
                            "taboao-da-serra-sp-brasil",
                            "diadema-sp-brasil",
                            "sao-jose-dos-pinhais-pr-brasil",
                            "varzea-paulista-sp-brasil",
                            "pinhais-pr-brasil",
                            "santana-de-parnaiba-sp-brasil",
                            "santos-sp-brasil",
                            "recife-pe-brasil",
                            "salvador-ba-brasil",
                            "mogi-das-cruzes-sp-brasil",
                            "sao-jose-dos-campos-sp-brasil",
                            "cotia-sp-brasil",
                            "vitoria-es-brasil",
                            "ribeirao-preto-sp-brasil",
                            "sorocaba-sp-brasil",
                            "sao-jose-do-rio-preto-sp-brasil",
                            "uberlandia-mg-brasil",
                            "maua-sp-brasil",
                            "belem-pa-brasil",
                            "fortaleza-ce-brasil",
                            "manaus-am-brasil",
                            "valinhos-sp-brasil",
                            "vinhedo-sp-brasil",
                            "indaiatuba-sp-brasil",
                            "nova-iguacu-rj-brasil",
                            "americana-sp-brasil",
                            "hortolandia-sp-brasil",
                            "paulinia-sp-brasil",
                            "praia-grande-sp-brasil",
                            "guaruja-sp-brasil",
                            "carapicuiba-sp-brasil",
                            "votorantim-sp-brasil",
                            "sao-vicente-sp-brasil",
                            "duque-de-caxias-rj-brasil",
                            "sao-goncalo-rj-brasil",
                            "vila-velha-es-brasil",
                            "betim-mg-brasil",
                            "aparecida-de-goiania-go-brasil",
                            "suzano-sp-brasil",
                            "itaquaquecetuba-sp-brasil",
                            "sumare-sp-brasil",
                            "embu-das-artes-sp-brasil",
                            "ferraz-de-vasconcelos-sp-brasil",
                            "poa-sp-brasil",
                            "gravatai-rs-brasil",
                            "viamao-rs-brasil",
                            "alvorada-rs-brasil",
                            "jaboatao-dos-guararapes-pe-brasil",
                            "belford-roxo-rj-brasil",
                            "nilopolis-rj-brasil",
                            "mesquita-rj-brasil",
                            "taubate-sp-brasil",
                            "jacarei-sp-brasil",
                            "ribeirao-das-neves-mg-brasil",
                            "ribeirao-pires-sp-brasil",
                            "brumadinho-mg-brasil",
                            "itabirito-mg-brasil",
                            "lagoa-santa-mg-brasil",
                            "sabara-mg-brasil",
                            "vespasiano-mg-brasil",
                            "rio-acima-mg-brasil",
                            "santa-luzia-mg-brasil",
                            "marica-rj-brasil",
                            "cabo-frio-rj-brasil"
                        ],
                        "type": "string",
                        "description": "Select the city where listings should be collected. The city also provides the context for any neighborhood name you enter below."
                    },
                    "neighborhood": {
                        "title": "Add a Neighborhood",
                        "type": "string",
                        "description": "Optionally enter a bairro or neighborhood name to narrow the search within the selected city. For example, choose Rio de Janeiro as the city and enter `Copacabana` to focus on that neighborhood."
                    },
                    "sort_by": {
                        "title": "Sort Listings By",
                        "enum": [
                            "closest",
                            "most_relevant",
                            "most_recent",
                            "lowest_price",
                            "highest_price"
                        ],
                        "type": "string",
                        "description": "Select the ordering strategy for matching listings. Relevance is a balanced default, while recency and price sorting are useful for market monitoring or budget-focused workflows.",
                        "default": "most_relevant"
                    },
                    "property_type": {
                        "title": "Choose Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Leave empty to include every supported property type. Select multiple values to keep only listings that match those categories.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "apartment",
                                "house",
                                "condominium",
                                "studio"
                            ],
                            "enumTitles": [
                                "🏠 Apartamento | Apartment",
                                "🏠 Casa | House",
                                "🏠 Casa de Condomínio | Condominium",
                                "🏠 Kitnet/Studio | Studio apartment"
                            ]
                        }
                    },
                    "min_bedroom": {
                        "title": "Set Minimum Bedrooms",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Choose the fewest bedrooms a listing must have. For example, `2+` keeps homes with at least 2 bedrooms."
                    },
                    "min_bathroom": {
                        "title": "Set Minimum Bathrooms",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Choose the fewest bathrooms a listing must have. For example, `2+` keeps homes with at least 2 bathrooms."
                    },
                    "min_parking": {
                        "title": "Set Minimum Parking Spaces",
                        "enum": [
                            "0",
                            "1",
                            "2",
                            "3"
                        ],
                        "type": "string",
                        "description": "Choose the fewest parking spaces a listing must have. For example, `1+` keeps homes with at least 1 parking space."
                    },
                    "min_price": {
                        "title": "Set a Minimum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the lowest listing price to include. Use the same currency convention shown by QuintoAndar for the selected market."
                    },
                    "max_price": {
                        "title": "Set a Maximum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the highest listing price to include. Use this to cap expensive outliers or keep a sample focused on a target budget band."
                    },
                    "min_sqm": {
                        "title": "Set Minimum Area",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the smallest usable area to include, in square meters. For example, `35` keeps listings with at least 35 sqm."
                    },
                    "max_sqm": {
                        "title": "Set Maximum Area",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the largest usable area to include, in square meters. Use this when you want compact listings or a bounded comparison set."
                    },
                    "amenities": {
                        "title": "Choose Home Amenities",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Leave empty to include all homes regardless of amenities. Select one or more options to keep listings that match the chosen in-home features.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "penthouse_apartment",
                                "air_conditioning",
                                "bathtub",
                                "shower_enclosure",
                                "barbecue_grill",
                                "gas_shower",
                                "walk_in_closet",
                                "garden_private_outdoor_area",
                                "new_or_renovated",
                                "private_pool",
                                "single_house_on_the_property",
                                "laundry_sink",
                                "television",
                                "kitchen_utensils",
                                "ceiling_fan"
                            ],
                            "enumTitles": [
                                "Apartamento cobertura | Penthouse apartment",
                                "Ar condicionado | Air conditioning",
                                "Banheira | Bathtub",
                                "Box | Shower enclosure",
                                "Churrasqueira | Barbecue grill",
                                "Chuveiro a gás | Gas shower",
                                "Closet | Walk-in closet",
                                "Garden/Área privativa | Garden / Private outdoor area",
                                "Novos ou reformados | New or renovated",
                                "Piscina privativa | Private pool",
                                "Somente uma casa no terreno | Single house on the property",
                                "Tanque | Laundry sink",
                                "Televisão | Television",
                                "Utensílios de cozinha | Kitchen utensils",
                                "Ventilador de teto | Ceiling fan"
                            ]
                        }
                    },
                    "condo_amenities": {
                        "title": "Choose Building Amenities",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Leave empty to include buildings with any amenity set. Select one or more options to keep listings in buildings that include those facilities.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "gym",
                                "green_area",
                                "playroom",
                                "barbecue_area",
                                "elevator",
                                "laundry_room",
                                "swimming_pool",
                                "playground",
                                "24_hour_concierge",
                                "sports_court",
                                "party_room",
                                "game_room",
                                "sauna"
                            ],
                            "enumTitles": [
                                "Academia | Gym",
                                "Área verde | Green area",
                                "Brinquedoteca | Playroom",
                                "Churrasqueira | Barbecue area",
                                "Elevador | Elevator",
                                "Lavanderia | Laundry room",
                                "Piscina | Swimming pool",
                                "Playground | Playground",
                                "Portaria 24h | 24-hour concierge",
                                "Quadra esportiva | Sports court",
                                "Salão de festas | Party room",
                                "Salão de jogos | Game room",
                                "Sauna | Sauna"
                            ]
                        }
                    },
                    "furnished": {
                        "title": "Choose Furnishing Preference",
                        "enum": [
                            "all",
                            "furnished",
                            "unfurnished"
                        ],
                        "type": "string",
                        "description": "Select `all` to include every listing, `furnished` to keep only furnished homes, or `unfurnished` to keep only unfurnished homes.",
                        "default": "all"
                    },
                    "pets_allowed": {
                        "title": "Require Pet-Friendly Rentals",
                        "type": "boolean",
                        "description": "Enable this to keep only rental listings marked as allowing pets. It is intended for rental searches and should be left off when pet policy is not part of your criteria.",
                        "default": false
                    },
                    "near_transit": {
                        "title": "Require Nearby Transit",
                        "type": "boolean",
                        "description": "Enable this to keep only listings marked as near public transit when that signal is available for the selected search.",
                        "default": false
                    },
                    "limit": {
                        "title": "Set Maximum Saved Listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter the maximum number of listings to save. Leave empty when you want the run to collect all available matching results within the selected scope."
                    },
                    "enrich_data": {
                        "title": "Collect Richer Property Listing Details",
                        "type": "boolean",
                        "description": "Enable this when completeness matters more than speed. Leave it off for faster runs when the lightweight listing fields are sufficient for your workflow.",
                        "default": false
                    },
                    "maximize_coverage": {
                        "title": "Maximize Coverage for Broad Searches",
                        "type": "boolean",
                        "description": "Enable this to collect a broader set of matching listings for large searches. Keep it on for comprehensive runs, or turn it off when you only need a faster sample from the selected criteria.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
