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

Extract structured Brazil property listings from Imovelweb 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/imovelweb-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 23 total users, 8 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## 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

## Imovelweb Scraper

**Slug:** fatihtahta/imovelweb-scraper

### Overview
Imovelweb Scraper collects structured property listing data from Brazil, including listing identifiers, titles, descriptions, pricing, location details, property attributes, media assets, seller information, and contact details. It is designed for teams that need consistent listing records from searches defined by location, deal type, and other business filters. [Imovelweb](https://www.imovelweb.com.br) is one of Brazil's major real estate marketplaces, making it a useful source for tracking supply, pricing, and local market movement. The actor automates repetitive collection work that would otherwise require manual searching, copying, and normalization. The result is a more reliable dataset and less time spent maintaining recurring data collection workflows.

### Why Use This Actor
- **Market research and analytics:** Track listing volume, price ranges, property mix, and neighborhood-level trends across cities and segments.
- **Product and content teams:** Build city pages, comparison content, property catalogs, and research datasets with structured listing data.
- **Developers and data engineering pipelines:** Feed warehouses, ETL jobs, dashboards, and downstream services with JSON records that are ready to use.
- **Lead generation and enrichment:** Identify active listings, agencies, and seller profiles for CRM enrichment, territory mapping, or prospect research.
- **Monitoring and competitive tracking:** Watch new inventory, pricing changes, media-rich listings, and recently published properties over time.

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

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `deal_type` | `string` | Overall listing intent to search. Allowed values: `sale`, `rent`, `auction`, `temporary`, `newly_built`. | `sale` |
| `location` | `string` | Optional place query in Brazil, such as a city, neighborhood, district, avenue, or street. Example: `Sao Paulo`, `Pinheiros`, `Avenida Paulista`. | – |
| `property_type` | `array[string]` | Broad property categories to include. Allowed values: `apartment`, `house`, `land`, `commercial`, `rural`. | – |
| `property_subtype` | `array[string]` | More specific property formats. Allowed values: `apartment_standard`, `studio`, `kitnet`, `penthouse`, `flat`, `garden`, `loft`, `duplex`, `house_standard`, `gated_house`, `townhouse`, `villa_house`, `condominium_land`, `office`, `commercial_point`, `store`, `garage_box`, `commercial_house`, `warehouse`, `hotel`, `building`, `country_house`, `farm`. | – |
| `min_bedroom` | `string` | Minimum bedroom count. Allowed values: `1`, `2`, `3`, `4`, `5` for 1+ to 5+ bedrooms. | – |
| `max_bedroom` | `string` | Maximum bedroom count. Allowed values: `1`, `2`, `3`, `4`, `5`. | – |
| `min_bathroom` | `string` | Minimum bathroom count. Allowed values: `1`, `2`, `3`, `4`, `5` for 1+ to 5+ bathrooms. | – |
| `min_parking` | `string` | Minimum parking spaces. Allowed values: `1`, `2`, `3`, `4` for 1+ to 4+ spaces. | – |
| `min_price` | `integer` | Minimum listing price in BRL. Use whole numbers such as `200000`. | – |
| `max_price` | `integer` | Maximum listing price in BRL. Use whole numbers such as `4000000`. | – |
| `min_sqm` | `integer` | Minimum total area in square meters. | – |
| `max_sqm` | `integer` | Maximum total area in square meters. | – |
| `min_usable_sqm` | `integer` | Minimum usable area in square meters. | – |
| `max_usable_sqm` | `integer` | Maximum usable area in square meters. | – |
| `common_feature_ids` | `array[string]` | Shared building or condominium features to require. Allowed values: `accessible_access`, `central_heating`, `service_area`, `green_area`, `playroom`, `security_cameras`, `soccer_field`, `golf_course`, `barbecue_grill`, `elevator`, `generator`, `jogging_track`, `playground`, `electronic_gate`, `concierge_24_hours`, `near_metro`, `tennis_court`, `furnished`, `balcony`, `pool`. | – |
| `private_feature_ids` | `array[string]` | Private or in-unit features to require. Allowed values: `air_conditioning`, `bar`, `closet`, `open_kitchen`, `staff_quarters`, `home_office`, `exchange_accepted`, `oceanfront`, `hot_tub`, `garden`, `fireplace`, `suites`, `not_in_rental_pool`, `pets_allowed`, `backyard`, `alarm_system`. | – |
| `near_transit` | `boolean` | When `true`, keeps only listings marked as near a metro station or public transit. | `false` |
| `max_antiquity` | `string` | Maximum property age range. Allowed values: `under_construction`, `coming_soon`, `up_to_5_years`, `up_to_10_years`, `up_to_20_years`, `up_to_50_years`, `more_than_50_years`. | – |
| `publication_days` | `string` | Recency filter for published listings. Allowed values: `today`, `since_yesterday`, `up_to_7_days`, `up_to_15_days`, `up_to_30_days`, `up_to_45_days`. | – |
| `publisher_type` | `string` | Restrict results by advertiser type. Allowed values: `ALL`, `COMPANY`, `PARTICULAR`. | – |
| `multimedia_types` | `array[string]` | Require specific listing media. Allowed values: `tour_360`, `videos`, `floor_plans`. | – |
| `limit` | `integer` | Maximum number of listings to save. Leave empty to collect all matching results the actor can reach. | – |

### Example Inputs

#### Scenario: Broad sale search in Sao Paulo
```json
{
  "deal_type": "sale",
  "location": "Sao Paulo",
  "property_type": ["apartment"],
  "min_bedroom": "2",
  "max_price": 1200000,
  "publication_days": "up_to_7_days",
  "limit": 100
}
````

#### Scenario: Rental search with transit and media filters

```json
{
  "deal_type": "rent",
  "location": "Copacabana, Rio de Janeiro",
  "property_subtype": ["flat", "studio"],
  "max_price": 7000,
  "near_transit": true,
  "multimedia_types": ["videos"],
  "limit": 75
}
```

#### Scenario: Filter-only commercial search

```json
{
  "deal_type": "sale",
  "property_type": ["commercial"],
  "property_subtype": ["office", "store"],
  "min_usable_sqm": 80,
  "publisher_type": "COMPANY",
  "common_feature_ids": ["elevator"],
  "limit": 50
}
```

### Output

#### 6.1 Output destination

The actor writes normalized rows to the default Apify dataset as JSON records.

Every saved row now follows a stable real-estate contract with these top-level groups:

- **record\_type**: always `property_listing` for this actor.
- **record\_id**: stable listing ID for dedupe and idempotency.
- **source\_context**: source URLs, seed details, seed provenance, and lookup IDs.
- **entity**: title, description, status, category, and IDs.
- **listing**: listing-type metadata (deal type, contract, status, source links, timestamps).
- **pricing**: normalized amount and offer details.
- **availability**: availability/visibility flags.
- **property**: rooms, areas, building context, and variant data.
- **location**: address + coordinates.
- **media**: images, videos, and logos.
- **contact\_details**: phones, whatsapp, and contact links.
- **relationships**: seller/developer entities.
- **metrics**: listing counters and score-like numbers.
- **attributes**: structured and source-preserving fallback bucket.

Use `record_type` + `record_id` for idempotent upserts.

#### 6.2 Example output row

```json
{
  "record_type": "property_listing",
  "record_id": "3011654662",
  "source_context": {
    "source_name": "imovelweb",
    "source_domain": "imovelweb.com.br",
    "source_url": "https://www.imovelweb.com.br/imoveis-venda-sao-paulo.html",
    "listing_url": "https://www.imovelweb.com.br/propriedades/casa-com-3-dormitorios-a-venda-336m-urbanova-3011654662.html",
    "canonical_url": "https://www.imovelweb.com.br/propriedades/casa-com-3-dormitorios-a-venda-336m-urbanova-3011654662.html",
    "loaded_url": "https://www.imovelweb.com.br/propriedades/casa-com-3-dormitorios-a-venda-336m-urbanova-3011654662.html",
    "search_url": "https://www.imovelweb.com.br/imoveis-venda-sao-paulo.html",
    "seed_type": "location",
    "seed_id": "2af1977af04a",
    "seed_value": "Sao Paulo",
    "seed": {
      "type": "location",
      "value": "Sao Paulo",
      "id": "2af1977af04a"
    },
    "page_index": 1,
    "page_number": 1,
    "external_ids": {
      "listing_id": "3011654662",
      "external_id": "CA4602",
      "legacy_id": "3011654662",
      "provider_id": "47039668"
    }
  },
  "entity": {
    "name": "Casa com 3 dormitórios à venda, 336m² - Urbanova - SJCampos",
    "title": "Casa com 3 dormitórios à venda, 336m² - Urbanova - SJCampos",
    "description": "Casa com 3 dormitórios, cozinha e garagem.",
    "url": "https://www.imovelweb.com.br/propriedades/casa-com-3-dormitorios-a-venda-336m-urbanova-3011654662.html",
    "status": "online",
    "category": "property",
    "external_ids": {
      "listing_id": "3011654662",
      "external_id": "CA4602",
      "legacy_id": "3011654662",
      "provider_id": "47039668"
    }
  },
  "listing": {
    "listing_id": "3011654662",
    "listing_type": "property",
    "deal_type": "sale",
    "transaction_type": "sale",
    "property_type": "casas",
    "listed_at": "2026-06-09T07:55:08-04:00",
    "created_at": "2016-09-14T04:00:00+00:00",
    "updated_at": "2026-06-09T07:55:08-04:00",
    "publication_type": "3",
    "display_address_type": "exact",
    "portal": "imovelweb",
    "is_sponsored": false
  },
  "pricing": {
    "amount": 1700000,
    "currency": "BRL",
    "price_text": "1700000",
    "offers": [
      {
        "business_type": "sale",
        "currency": "BRL",
        "operation_type_id": "1",
        "operation_type_name": "Venda",
        "prices": []
      }
    ],
    "is_price_hidden": false
  },
  "availability": {
    "status": "online",
    "show_price": true
  },
  "property": {
    "property_type": "casas",
    "rooms": {
      "bedrooms": 4,
      "bathrooms": 3,
      "suites": 1,
      "parking_spaces": 2
    },
    "area": {
      "usable_area": 336,
      "total_area": 350
    }
  },
  "location": {
    "label": "Avenida Shishima Hifumi 2700, Urbanova, São José dos Campos",
    "street": "Avenida Shishima Hifumi 2700",
    "neighborhood": "Urbanova",
    "zone": "ZONA",
    "city": "São José dos Campos",
    "state_code": "SP",
    "location_id": "V1-D-525135",
    "coordinates": {
      "latitude": -23.20393,
      "longitude": -45.94852
    },
    "address": {
      "postal_code": null,
      "state": "São Paulo",
      "country": "Brasil"
    },
    "external_ids": {
      "source_id": "V1-D-525135",
      "listing_id": "3011654662"
    }
  },
  "media": {
    "images": [
      {
        "url": "https://imgbr.imovelwebcdn.com/avisos/2/30/11/65/46/62/360x266/5655419277.jpg",
        "order": 0
      }
    ]
  },
  "contact_details": {
    "whatsapp": "55 12982095100"
  },
  "relationships": {
    "seller": {
      "account_id": "47039668",
      "name": "i9vale Imóveis",
      "tier": "premier"
    }
  },
  "attributes": {
    "source_specific": {
      "listing_id": "3011654662",
      "raw_source_data": {
        "raw_listing": {
          "posting_id": "3011654662",
          "expenses": {
            "amount": 1000,
            "currency": "R$"
          }
        }
      }
    }
  }
}
```

### Field reference

#### Listing fields (`record_type = "property_listing"`)

- **record\_type** *(string, required)*: Stable top-level record class.
- **record\_id** *(string, required)*: Stable listing identifier for dedupe and upserts.
- **source\_context.source\_name** *(string, optional)*: Normalized source platform.
- **source\_context.source\_domain** *(string, optional)*: Source domain.
- **source\_context.source\_url** *(string, optional)*: Seed or discovery URL.
- **source\_context.listing\_url** *(string, optional)*: Listing URL for the row.
- **source\_context.canonical\_url** *(string, optional)*: Canonicalized listing URL.
- **source\_context.loaded\_url** *(string, optional)*: Resolved page URL used by the actor.
- **source\_context.search\_url** *(string, optional)*: Search URL used to discover the listing.
- **source\_context.seed\_type** *(string, optional)*: `url`, `location`, or `search`.
- **source\_context.seed\_id** *(string, optional)*: Actor seed id.
- **source\_context.seed\_value** *(string, optional)*: Seed value string.
- **source\_context.seed.type** *(string, optional)*: Seed kind.
- **source\_context.seed.value** *(string, optional)*: Seed value.
- **source\_context.seed.id** *(string, optional)*: Seed id.
- **source\_context.page\_index** *(number, optional)*: Result page where listing appeared.
- **source\_context.page\_number** *(number, optional)*: Search page number in listing flow.
- **source\_context.external\_ids** *(object, optional)*: IDs and references for seed context.
- **entity.name** *(string, optional)*: Listing name/title alias.
- **entity.title** *(string, optional)*: Normalized listing title.
- **entity.description** *(string, optional)*: Marketing and details text.
- **entity.url** *(string, optional)*: Primary listing URL.
- **entity.status** *(string, optional)*: Listing status.
- **entity.category** *(string, optional)*: Listing/property category.
- **entity.external\_ids** *(object, optional)*: Canonical and source IDs.
- **listing.listing\_id** *(string, optional)*: Listing ID.
- **listing.deal\_type** *(string, optional)*: Sale/rent/auction context.
- **listing.transaction\_type** *(string, optional)*: Normalized transaction context.
- **listing.contract\_type** *(string, optional)*: Contract type from source.
- **listing.property\_type** *(string, optional)*: Normalized property type.
- **listing.publication\_type** *(string, optional)*: Source publication tier.
- **listing.listed\_at** *(string, optional)*: Listing timestamp.
- **listing.created\_at** *(string, optional)*: Source creation time.
- **listing.updated\_at** *(string, optional)*: Last known source update.
- **pricing.amount** *(number, optional)*: Primary numeric asking amount.
- **pricing.currency** *(string, optional)*: Currency code.
- **pricing.price\_text** *(string, optional)*: Price text as shown by source.
- **pricing.offers\[]** *(array\[object], optional)*: Offer-level pricing objects.
- **availability.status** *(string, optional)*: Availability status.
- **availability.show\_price** *(boolean, optional)*: Whether price is visible.
- **availability.accept\_exchange** *(boolean, optional)*: Exchange supported flag.
- **property.rooms** *(object, optional)*: Rooms and counts.
- **property.area** *(object, optional)*: Area fields and variants.
- **location.label** *(string, optional)*: Full source location label.
- **location.full\_address** *(string, optional)*: Full address string.
- **location.street** *(string, optional)*: Street value.
- **location.neighborhood** *(string, optional)*: Neighborhood/bairro.
- **location.city** *(string, optional)*: City.
- **location.state** *(string, optional)*: State value.
- **location.postal\_code** *(string, optional)*: Postal code.
- **location.coordinates.latitude** *(number, optional)*: Latitude.
- **location.coordinates.longitude** *(number, optional)*: Longitude.
- **media.images\[]** *(array\[object], optional)*: Listing image objects.
- **media.videos\[]** *(array\[object], optional)*: Listing videos and tour URLs.
- **contact\_details.phones** *(array\[string], optional)*: Contact phone numbers.
- **contact\_details.whatsapp** *(string, optional)*: WhatsApp number.
- **relationships.seller** *(object, optional)*: Seller/advertiser entity data.
- **metrics.view\_count** *(number, optional)*: View-like metric.
- **metrics.trust\_score** *(number, optional)*: Trust/rating score.
- **attributes.source\_specific.raw\_source\_data** *(object, optional)*: Preserved full source payload.

### Data guarantees & handling

- **Best-effort extraction:** fields may vary by region, session, source availability, and UI 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, such as deal type, location, property type, room counts, price range, amenities, and recency filters.
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**

You can schedule runs to keep your dataset fresh without manually starting each job. This is useful for recurring market snapshots, listing monitoring, and regular reporting.

- 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 real estate listing information from <https://www.imovelweb.com.br> for legitimate business purposes. Common use cases include residential and commercial real estate research, market analysis, lead generation and enrichment, and pricing or inventory monitoring. Users are responsible for ensuring their use of the data complies with applicable laws, regulations, contractual obligations, and the target site's terms. This section is informational and not legal advice.

- **Real estate** research and market analysis
- **Lead generation and listing enrichment**
- **Pricing monitoring and competitive intelligence**

#### 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

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

# Actor input Schema

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

Select whether you want listings for sale, rent, auction, temporary stay, or newly built developments.

## `location` (type: `string`):

Optional. Search within a city, neighborhood, district, avenue, street, or another place in Brazil. Leave this empty to search more broadly with the other filters. For example: Sao Paulo, Pinheiros, or Avenida Paulista.

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

Pick one or more main property categories, or leave this empty to search across all property types.

## `property_subtype` (type: `array`):

Narrow the results to more specific property formats such as Cobertura, Flat, Sobrado, Loja, or other subtype options.

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

Show only properties with at least this many bedrooms.

## `max_bedroom` (type: `string`):

Limit results to properties with no more than this many bedrooms.

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

Show only properties with at least this many bathrooms.

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

Show only properties with at least this many parking spaces.

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

Exclude listings priced below this amount in BRL. For example, 200000.

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

Exclude listings priced above this amount in BRL. For example, 4000000.

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

Show only properties with at least this much total area in square meters.

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

Limit results to properties with no more than this much total area in square meters.

## `min_usable_sqm` (type: `integer`):

Show only properties with at least this much usable area in square meters.

## `max_usable_sqm` (type: `integer`):

Limit results to properties with no more than this much usable area in square meters.

## `common_feature_ids` (type: `array`):

Filter for shared amenities such as a pool, elevator, playground, 24-hour concierge, or other condominium-level features.

## `private_feature_ids` (type: `array`):

Filter for features inside the property or exclusive to it, such as air conditioning, a fireplace, a garden, suites, or pet-friendly access.

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

Turn this on to keep only listings marked as close to a metro station or public transit.

## `max_antiquity` (type: `string`):

Limit results to properties that fall within this age range, including options such as under 5 years or under 20 years.

## `publication_days` (type: `string`):

Show only listings published within the selected number of days.

## `publisher_type` (type: `string`):

Filter listings by advertiser type, such as all sellers, real estate agencies, or direct owners.

## `multimedia_types` (type: `array`):

Keep only listings that include specific media such as a 360 tour, video, or floor plan.

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

Enter how many listings you want to save. Leave this empty to collect every matching result the actor can reach.

## Actor input object example

```json
{
  "deal_type": "sale",
  "location": "Sao Paulo",
  "near_transit": false,
  "limit": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Structured Imovelweb property listing records saved by this run.

# 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 = {
    "location": "Sao Paulo",
    "limit": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/imovelweb-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 = {
    "location": "Sao Paulo",
    "limit": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("fatihtahta/imovelweb-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 '{
  "location": "Sao Paulo",
  "limit": 100
}' |
apify call fatihtahta/imovelweb-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Imovelweb Scraper | $1.5 / 1k | Fast & Reliable",
        "description": "Extract structured Brazil property listings from Imovelweb 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": "0.0",
        "x-build-id": "Tu7nPGmgAmwv7yGcW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihtahta~imovelweb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihtahta-imovelweb-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~imovelweb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihtahta-imovelweb-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~imovelweb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihtahta-imovelweb-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 a Deal Type",
                        "enum": [
                            "sale",
                            "rent",
                            "auction",
                            "temporary",
                            "newly_built"
                        ],
                        "type": "string",
                        "description": "Select whether you want listings for sale, rent, auction, temporary stay, or newly built developments.",
                        "default": "sale"
                    },
                    "location": {
                        "title": "Optionally Enter a Location (city or neighbourhood (bairro))",
                        "type": "string",
                        "description": "Optional. Search within a city, neighborhood, district, avenue, street, or another place in Brazil. Leave this empty to search more broadly with the other filters. For example: Sao Paulo, Pinheiros, or Avenida Paulista."
                    },
                    "property_type": {
                        "title": "Select Property Categories",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Pick one or more main property categories, or leave this empty to search across all property types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "apartment",
                                "house",
                                "land",
                                "commercial",
                                "rural"
                            ],
                            "enumTitles": [
                                "Apartment | Apartamento",
                                "House | Casa",
                                "Land | Terreno",
                                "Commercial | Comercial",
                                "Rural | Rural"
                            ]
                        }
                    },
                    "property_subtype": {
                        "title": "Refine by Property Subtype",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Narrow the results to more specific property formats such as Cobertura, Flat, Sobrado, Loja, or other subtype options.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "apartment_standard",
                                "studio",
                                "kitnet",
                                "penthouse",
                                "flat",
                                "garden",
                                "loft",
                                "duplex",
                                "house_standard",
                                "gated_house",
                                "townhouse",
                                "villa_house",
                                "condominium_land",
                                "office",
                                "commercial_point",
                                "store",
                                "garage_box",
                                "commercial_house",
                                "warehouse",
                                "hotel",
                                "building",
                                "country_house",
                                "farm"
                            ],
                            "enumTitles": [
                                "Standard apartment | Padrao",
                                "Studio apartment | Studio",
                                "Kitnet | Kitnet",
                                "Penthouse | Cobertura",
                                "Flat | Flat",
                                "Garden apartment | Garden",
                                "Loft | Loft",
                                "Duplex | Duplex",
                                "Standard house | Casa padrao",
                                "Gated community house | Casa em condominio",
                                "Townhouse | Sobrado",
                                "Village house | Casa de vila",
                                "Condominium land | Loteamento / Condominio",
                                "Office | Conjunto Comercial / Sala",
                                "Commercial point | Ponto Comercial",
                                "Storefront | Loja / Salao",
                                "Garage box | Box / Garagem",
                                "Commercial property | Casa Comercial",
                                "Warehouse | Galpao / Deposito / Barracao",
                                "Hotel / Inn | Hotel / Pousada",
                                "Whole building | Predio Inteiro",
                                "Country house | Chacara",
                                "Farm | Fazenda"
                            ]
                        }
                    },
                    "min_bedroom": {
                        "title": "Set a Minimum Bedroom Count",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Show only properties with at least this many bedrooms."
                    },
                    "max_bedroom": {
                        "title": "Set a Maximum Bedroom Count",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Limit results to properties with no more than this many bedrooms."
                    },
                    "min_bathroom": {
                        "title": "Set a Minimum Bathroom Count",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Show only properties with at least this many bathrooms."
                    },
                    "min_parking": {
                        "title": "Set a Minimum Parking Count",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Show only properties with at least this many parking spaces."
                    },
                    "min_price": {
                        "title": "Set a Minimum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Exclude listings priced below this amount in BRL. For example, 200000."
                    },
                    "max_price": {
                        "title": "Set a Maximum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Exclude listings priced above this amount in BRL. For example, 4000000."
                    },
                    "min_sqm": {
                        "title": "Set a Minimum Total Area (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Show only properties with at least this much total area in square meters."
                    },
                    "max_sqm": {
                        "title": "Set a Maximum Total Area (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Limit results to properties with no more than this much total area in square meters."
                    },
                    "min_usable_sqm": {
                        "title": "Set a Minimum Usable Area (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Show only properties with at least this much usable area in square meters."
                    },
                    "max_usable_sqm": {
                        "title": "Set a Maximum Usable Area (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Limit results to properties with no more than this much usable area in square meters."
                    },
                    "common_feature_ids": {
                        "title": "Choose Shared Building Features",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter for shared amenities such as a pool, elevator, playground, 24-hour concierge, or other condominium-level features.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "accessible_access",
                                "central_heating",
                                "service_area",
                                "green_area",
                                "playroom",
                                "security_cameras",
                                "soccer_field",
                                "golf_course",
                                "barbecue_grill",
                                "elevator",
                                "generator",
                                "jogging_track",
                                "playground",
                                "electronic_gate",
                                "concierge_24_hours",
                                "near_metro",
                                "tennis_court",
                                "furnished",
                                "balcony",
                                "pool"
                            ],
                            "enumTitles": [
                                "Accessible access | Acesso para deficientes",
                                "Central heating | Aquecimento central",
                                "Service area | Area de servico",
                                "Green area | Area verde",
                                "Playroom | Brinquedoteca",
                                "Security cameras | Cameras de seguranca",
                                "Soccer field | Campo de futebol",
                                "Golf course | Campo de golfe",
                                "Barbecue grill | Churrasqueira",
                                "Elevator | Elevador",
                                "Generator | Gerador",
                                "Jogging track | Pista de cooper",
                                "Playground | Playground",
                                "Electronic gate | Portao eletronico",
                                "24-hour concierge | Portaria 24 horas",
                                "Near metro | Proximo ao metro",
                                "Tennis court | Quadra de tenis",
                                "Furnished | Mobiliado",
                                "Balcony | Varanda",
                                "Pool | Piscina"
                            ]
                        }
                    },
                    "private_feature_ids": {
                        "title": "Choose Private Property Features",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter for features inside the property or exclusive to it, such as air conditioning, a fireplace, a garden, suites, or pet-friendly access.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "air_conditioning",
                                "bar",
                                "closet",
                                "open_kitchen",
                                "staff_quarters",
                                "home_office",
                                "exchange_accepted",
                                "oceanfront",
                                "hot_tub",
                                "garden",
                                "fireplace",
                                "suites",
                                "not_in_rental_pool",
                                "pets_allowed",
                                "backyard",
                                "alarm_system"
                            ],
                            "enumTitles": [
                                "Air conditioning | Ar condicionado",
                                "Bar | Bar",
                                "Closet | Closet",
                                "Open kitchen | Cozinha americana",
                                "Staff quarters | Dependencia de empregados",
                                "Home office | Escritorio / Home-office",
                                "Exchange accepted | Aceita / Estuda permuta",
                                "Oceanfront | Frente para o mar",
                                "Hot tub | Hidromassagem",
                                "Garden | Jardim",
                                "Fireplace | Lareira",
                                "Suites | Suites",
                                "Not in rental pool | No pool de locacao",
                                "Pets allowed | Permite animais",
                                "Backyard | Quintal",
                                "Alarm system | Sistema de alarme"
                            ]
                        }
                    },
                    "near_transit": {
                        "title": "Show Only Listings Near Metro or Transit 🚇",
                        "type": "boolean",
                        "description": "Turn this on to keep only listings marked as close to a metro station or public transit.",
                        "default": false
                    },
                    "max_antiquity": {
                        "title": "Set the Maximum Property Age",
                        "enum": [
                            "under_construction",
                            "coming_soon",
                            "up_to_5_years",
                            "up_to_10_years",
                            "up_to_20_years",
                            "up_to_50_years",
                            "more_than_50_years"
                        ],
                        "type": "string",
                        "description": "Limit results to properties that fall within this age range, including options such as under 5 years or under 20 years."
                    },
                    "publication_days": {
                        "title": "Limit by Publication Recency",
                        "enum": [
                            "today",
                            "since_yesterday",
                            "up_to_7_days",
                            "up_to_15_days",
                            "up_to_30_days",
                            "up_to_45_days"
                        ],
                        "type": "string",
                        "description": "Show only listings published within the selected number of days."
                    },
                    "publisher_type": {
                        "title": "Choose a Listing Source",
                        "enum": [
                            "ALL",
                            "COMPANY",
                            "PARTICULAR"
                        ],
                        "type": "string",
                        "description": "Filter listings by advertiser type, such as all sellers, real estate agencies, or direct owners."
                    },
                    "multimedia_types": {
                        "title": "Require Listing Media",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only listings that include specific media such as a 360 tour, video, or floor plan.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "tour_360",
                                "videos",
                                "floor_plans"
                            ],
                            "enumTitles": [
                                "360 tour | Tour 360",
                                "Videos | Videos",
                                "Floor plans | Plantas"
                            ]
                        }
                    },
                    "limit": {
                        "title": "Set a Maximum Number of Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter how many listings you want to save. Leave this empty to collect every matching result the actor can reach."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
