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

Scrape ZAP Imoveis real estate listings for sale and rent across Brazil. Extract price, currency, area, bedrooms, bathrooms, parking, condo fee, IPTU, neighborhood, city, advertiser phone, WhatsApp and CRECI license. Export to JSON, CSV or Excel.

- **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, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.15 / 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

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

## ZAP Imoveis Brazil Real Estate & Price 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.

**📥 [Input](https://apify.com/scrapers_lat/zap-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/zap-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/zap-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/zap-scraper/examples)**

![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>20 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>
</tr></table>

Each listing carries the full picture for price analysis and lead generation: sale or rent price plus a ready-computed price per square metre, condo fee and IPTU, bedrooms, bathrooms, suites, parking and usable area, neighborhood and coordinates, and the advertiser's name, phone, WhatsApp and license (CRECI) number.

<br>

### 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 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 Imoveis Belo Horizonte Apartments for Sale Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-belo-horizonte-apartments-sale): Scrape apartments for sale in Belo Horizonte from ZAP Imoveis. Extract prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Brasilia Apartments for Sale Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-brasilia-apartments-sale): Scrape apartments for sale in Brasilia from ZAP Imoveis. Extract prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Curitiba Apartments for Rent Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-curitiba-apartments-rent): Scrape apartments for rent in Curitiba from ZAP Imoveis. Extract rent prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Porto Alegre Houses for Sale Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-porto-alegre-houses-sale): Scrape houses for sale in Porto Alegre from ZAP Imoveis. Extract prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Rio de Janeiro Houses for Sale Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-rio-houses-sale): Scrape houses for sale in Rio de Janeiro from ZAP Imoveis. Extract prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Salvador Apartments for Sale Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-salvador-apartments-sale): Scrape apartments for sale in Salvador from ZAP Imoveis. Extract prices, area, bedrooms, location and listing details from Brazil real estate.
- [ZAP Imoveis Sao Paulo Apartments for Rent Scraper](https://apify.com/scrapers_lat/zap-scraper/examples/zap-sao-paulo-apartments-rent): Scrape apartments for rent in Sao Paulo from ZAP Imoveis. Extract rent prices, area, bedrooms, location and listing details from Brazil real estate.
- [Zap Rio de Janeiro Apartments for Sale](https://apify.com/scrapers_lat/zap-scraper/examples/zap-rio-apartments-sale): Zap Rio de Janeiro Apartments for Sale
- [Zap Sao Paulo Apartments for Sale](https://apify.com/scrapers_lat/zap-scraper/examples/zap-sao-paulo-apartments-sale): Zap Sao Paulo Apartments for Sale
- [Zap Sao Paulo Houses for Rent](https://apify.com/scrapers_lat/zap-scraper/examples/zap-sao-paulo-houses-rent): Zap Sao Paulo Houses for Rent

### Export, API and AI agents (x402 + MCP)

Export the scraped data to **JSON, CSV or Excel**, pull it as a **dataset** through the Apify **API**, or wire it into your app with **no code**. This web scraper and data extractor also works for bulk data extraction and scheduled runs.

For AI agents: this Actor is available on **x402**, Apify's agentic payment standard built with Coinbase. An AI agent can discover, pay for and run it on its own with a funded wallet and a single HTTP request: no account, no subscription, no API key and no human in the loop. It also runs as an **MCP** tool inside Claude, Cursor and other AI clients out of the box. Learn more about [x402 agentic payments on Apify](https://docs.apify.com/platform/integrations/x402).

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

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

## `maxListings` (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
{
  "maxListings": 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 = {
    "maxListings": 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 = {
    "maxListings": 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 '{
  "maxListings": 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

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