# ZAP Imoveis Brazil Real Estate Scraper (`scrapers_lat/zap-scraper`) Actor

Scrape ZAP Imóveis real estate listings across Brazil: prices, area, bedrooms, parking, condo fees, location and advertiser details for sale and rent. Export to JSON, CSV, Excel or XML.

- **URL**: https://apify.com/scrapers\_lat/zap-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 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

<!-- actor-banner -->
[![ZAP Imoveis Brazil Real Estate Scraper](https://scrapers.lat/banners/zap-scraper.png)](https://console.apify.com/actors/vSYBgV6srCAvqGA7w/input)
<!-- /actor-banner -->

## ZAP Imóveis Scraper

> Extract real estate listings, prices, and advertiser data from ZAP Imóveis, one of the largest property portals in Brazil with hundreds of thousands of homes for sale and rent.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Brazil](https://img.shields.io/badge/Coverage-Brazil-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>19 fields</strong><br>per record</td>
<td align="center"><strong>Brazil</strong><br>nationwide coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-19</td>
</tr></table>

<br>

### What you get

Each listing returns a structured record ready to load into any database, spreadsheet, or analytics pipeline:

- **imageUrl**: main listing photo
- **title**: full listing headline as published
- **price**: sale price or monthly rent
- **currency**: ISO currency code (BRL)
- **operationType**: venda (sale) or aluguel (rent)
- **propertyType**: property category such as apartment, house or condominium
- **bedrooms**: number of bedrooms
- **bathrooms**: number of bathrooms
- **suites**: number of en-suite bedrooms
- **parkingSpaces**: number of parking spaces
- **usableAreaM2**: usable floor area in square meters
- **condoFee**: monthly condominium fee, when applicable
- **iptu**: annual property tax, when applicable
- **pricePeriod**: rent billing period for rental listings (for example MONTHLY)
- **neighborhood**: neighborhood name
- **city**: city name
- **state**: state acronym
- **listingId**: unique ZAP Imóveis listing ID
- **url**: direct link to the listing page
- **description\***: full listing description text
- **amenities\***: list of property and building features
- **images\***: gallery of listing photos
- **advertiserName\***: name of the agency or advertiser
- **advertiserPhone\***: advertiser phone number in plain text
- **advertiserPhones\***: all phone numbers the advertiser publishes
- **advertiserWhatsapp\***: advertiser WhatsApp number, when published
- **licenseNumber\***: agency real estate license number (CRECI), when published
- **legacyZapId\***: the advertiser's legacy numeric ZAP id
- **advertiserTier\***: advertiser tier on ZAP (for example diamond, gold)
- **advertiserUrl\***: link to the advertiser profile
- **latitude\***: map latitude
- **longitude\***: map longitude
- **observedAt**: when this listing was last seen by the scraper

*\*These fields only appear when withDetails is set to true.*

### Who is it for

| Use case | Who benefits |
|---|---|
| Price monitoring | Real estate teams tracking sale and rent prices in Brazil |
| Market research | Analysts studying housing supply and pricing trends |
| Lead generation | Agencies sourcing advertiser and inventory data |
| Data pipelines | Developers feeding BI tools or valuation models |
| Investment analysis | Investors benchmarking yields across neighborhoods |

### Frequently Asked Questions

**Does it cover all of Brazil on ZAP Imóveis?**  
Yes. The actor works with any ZAP Imóveis search URL, so it covers every city, state and neighborhood available on the portal. Just paste a search results URL for the area you want, whether for sale or for rent.

**How many listings can I collect per run?**  
There is no hard limit imposed by the actor, and you control the volume with the Max Items input. In practice ZAP search results run into the hundreds of thousands per query, and the actor paginates through them automatically until your limit is reached.

**Can I filter by operation, property type, location, or price?**  
Yes. Apply any filters directly on ZAP Imóveis and copy the resulting URL into the actor input. All filters encoded in the URL, including operation, property type, location, price and bedrooms, are respected automatically.

**What is the difference between the basic and detailed output?**  
By default each record contains the core listing fields such as price, area, rooms and location. When you enable Fetch listing details, every record is enriched with the full description, complete amenities list, photo gallery, advertiser contact details and map coordinates.

**Does the scraper return the advertiser phone and WhatsApp?**  
Yes. When listing details are enabled, each record includes the advertiser phone number, WhatsApp number, agency license number (CRECI) and legacy ZAP id in plain text, taken directly from the listing data. A small share of advertisers hide some of these, in which case those fields are returned empty rather than guessed.

**What happens if a listing is missing some data?**  
Fields that a listing does not publish, such as condominium fee or number of suites, are returned empty rather than guessed. If a page cannot be loaded, the actor records the reason in the error field and continues with the rest of the run.



<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [Zap Rio de Janeiro Apartments for Sale](https://apify.com/scrapers_lat/zap-scraper/examples/zap-rio-apartments-sale): Track Zap Imoveis apartments for sale in Rio de Janeiro with price, area, rooms and location.
- [Zap Sao Paulo Apartments for Sale](https://apify.com/scrapers_lat/zap-scraper/examples/zap-sao-paulo-apartments-sale): Scrape Zap Imoveis apartments for sale in Sao Paulo with price, area, rooms, location and contact.
- [Zap Sao Paulo Houses for Rent](https://apify.com/scrapers_lat/zap-scraper/examples/zap-sao-paulo-houses-rent): Pull Zap Imoveis houses for rent in Sao Paulo with monthly price, area, rooms, location and contact.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [InfoCasas Real Estate Listings Scraper](https://apify.com/scrapers_lat/infocasas-scraper): Scrape Infocasas real estate listings across Uruguay, Paraguay and more. Extract price, currency...
- [Urbania Peru Property Listings Scraper](https://apify.com/scrapers_lat/urbania-scraper): Scrape Urbania property listings in Peru. Extract price, currency, operation, property type...
- [Adondevivir Peru Property Listings Scraper](https://apify.com/scrapers_lat/adondevivir-scraper): Scrape Adondevivir property listings in Peru. Extract price, currency, operation, property type...
- [MercadoLibre Product Listings Scraper](https://apify.com/scrapers_lat/mercadolibre-scraper): Extract products, prices and seller data from MercadoLibre across 18 LATAM countries. Scrape...
- [Quince Product Scraper](https://apify.com/scrapers_lat/quince-scraper): Extract Quince.com products with prices, traditional retail price, discounts, variants, images and...
- [Rappi Restaurants & Stores Scraper](https://apify.com/scrapers_lat/rappi-scraper): Scrape restaurants and stores from Rappi Colombia! Extract store name, logo, category, rating...

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with ZAP Imóveis or Grupo ZAP. It only accesses data that is publicly available on the platform. Use it in accordance with ZAP Imóveis's terms of service.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of listings to collect. Optional.
## `withDetails` (type: `boolean`):

When enabled, each record is enriched with the full description, complete image gallery, amenities, advertiser details and map coordinates. When disabled, only the core listing fields are returned.
## `startUrl` (type: `string`):

A full ZAP Imóveis search results URL, for example https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/ or any filtered search. All filters encoded in the URL (operation, property type, location, price, area, bedrooms) are respected automatically.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "startUrl": "https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/"
}
````

# 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 = {
    "maxItems": 10,
    "startUrl": "https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/zap-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 = {
    "maxItems": 10,
    "startUrl": "https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/zap-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 '{
  "maxItems": 10,
  "startUrl": "https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/"
}' |
apify call scrapers_lat/zap-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ZAP Imoveis Brazil Real Estate Scraper",
        "description": "Scrape ZAP Imóveis real estate listings across Brazil: prices, area, bedrooms, parking, condo fees, location and advertiser details for sale and rent. Export to JSON, CSV, Excel or XML.",
        "version": "0.1",
        "x-build-id": "wNCQ6jqAyHrmyFavm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~zap-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-zap-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/scrapers_lat~zap-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-zap-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/scrapers_lat~zap-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-zap-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",
                "required": [
                    "startUrl"
                ],
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of listings to collect. Optional."
                    },
                    "withDetails": {
                        "title": "Fetch listing details",
                        "type": "boolean",
                        "description": "When enabled, each record is enriched with the full description, complete image gallery, amenities, advertiser details and map coordinates. When disabled, only the core listing fields are returned.",
                        "default": true
                    },
                    "startUrl": {
                        "title": "Search URL",
                        "type": "string",
                        "description": "A full ZAP Imóveis search results URL, for example https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/ or any filtered search. All filters encoded in the URL (operation, property type, location, price, area, bedrooms) are respected automatically."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
