# Imovelweb Real Estate Listings Scraper

> Imovelweb Real Estate Listings Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes and returns structured property listings from Imovelweb (Brazilian real estate portal) filtered by location, price, size, bedrooms, and deal type.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/imovelweb?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/imovelweb-real-estate-listings-scraper-7e0b0f9c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7OQSJHyzBXx3uVKGAIiwC

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability imovelweb-real-estate-listings-scraper-7e0b0f9c -d '<json body>'
```

Example prompt: Search Imovelweb for apartments for sale in São Paulo with at least 2 bedrooms, 1 bathroom, 1 parking space, between 50 and 150 square meters, priced between R$300,000 and R$800,000 — grab up to 50 listings.

## When to prefer this

Choose this endpoint when you need structured real estate listing data from Imovelweb, the major Brazilian property portal, especially when filtering by Brazilian Real (BRL) prices, square meters, bedrooms, bathrooms, or parking spaces. Prefer this over generic web scrapers when you need clean, deduplicated listing objects without parsing raw HTML. Use startUrls for highly specific searches that are easier to define via Imovelweb's own search interface.

## Known failure modes

- Empty result set if location name is ambiguous or unrecognized — use an exact Imovelweb search URL instead
- No charge if the run fails or returns no results
- Truncated results if maxPages or maxItems limits are hit before all listings are collected
- Filters like min/max price and sqm are applied post-page-load, so edge cases near boundaries may include or exclude borderline listings
- Invalid enum values for property_type or deal_type will cause a schema validation error

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object containing a count of matched listings and an array of listing items, each with fields including title, deal type, listing ID, search URL, listing URL, page number, description, and listing type. The product field is always 'imovelweb'.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "max_sqm": {
   "type": "integer",
   "minimum": 0,
   "description": "Maximum total area in square meters. Applied to listings found within the page limit."
  },
  "min_sqm": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum total area in square meters. Applied to listings found within the page limit."
  },
  "location": {
   "type": "string",
   "description": "City, neighborhood, or state in the search URL. Use an exact search URL for ambiguous place names."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after saving this many unique listings. Zero removes this cap."
  },
  "maxPages": {
   "type": "integer",
   "default": 20,
   "maximum": 500,
   "minimum": 1,
   "description": "Maximum search pages to inspect per URL or category."
  },
  "deal_type": {
   "enum": [
    "sale",
    "rent"
   ],
   "type": "string",
   "default": "sale",
   "description": "Transaction to search when no search URL is supplied."
  },
  "max_price": {
   "type": "integer",
   "minimum": 0,
   "description": "Maximum asking price in BRL. Applied to listings found within the page limit."
  },
  "min_price": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum asking price in BRL. Applied to listings found within the page limit."
  },
  "startUrls": {
   "type": "array",
   "description": "Optional Imovelweb search result URLs. Use a filtered search URL to reproduce the exact site search."
  },
  "max_bedroom": {
   "type": "integer",
   "minimum": 0,
   "description": "Maximum number of bedrooms. Applied to listings found within the page limit."
  },
  "min_bedroom": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum number of bedrooms. Applied to listings found within the page limit."
  },
  "min_parking": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum number of parking spaces. Applied to listings found within the page limit."
  },
  "min_bathroom": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum number of bathrooms. Applied to listings found within the page limit."
  },
  "property_type": {
   "type": "array",
   "items": {
    "enum": [
     "apartment",
     "house",
     "land",
     "commercial",
     "rural"
    ],
    "type": "string",
    "enumTitles": [
     "Apartments",
     "Houses",
     "Land",
     "Commercial",
     "Rural"
    ]
   },
   "description": "Categories to searc
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "title": null,
    "dealType": null,
    "listingId": null,
    "searchUrl": null,
    "listingUrl": null,
    "pageNumber": null,
    "description": null,
    "listingType": null
   }
  ],
  "product": "imovelweb"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/imovelweb-real-estate-listings-scraper-7e0b0f9c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
