# Leilao Imovel Scraper | $1.5 / 1k | Fast & Reliable (`fatihtahta/leilao-imovel-scraper`) Actor

Extract structured real estate auction listings across Brazil with property details, images, seller data and full descriptions from Leilão Imóvel. Built for enterprise-grade real estate intelligence, opportunity screening, portfolio monitoring, and automated data pipelines.

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

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

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

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

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

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

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

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

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

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

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

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


# README

## Leilão Imóvel Scraper

**Slug:** `fatihtahta/leilao-imovel-scraper`

### Overview

Leilão Imóvel collects structured Brazilian real estate auction listing data, including property details, pricing, discounts, dates, location, sale terms, payment eligibility, documents, images, and listing metadata. [Leilão Imóvel](https://www.leilaoimovel.com.br) is a public marketplace for real estate auction opportunities, making its data useful for market research, opportunity screening, acquisition workflows, and recurring portfolio analysis. The actor converts public listing information into repeatable JSON records that are easier to review, export, compare, and load into downstream systems. It is designed for automated, recurring data acquisition with consistent output fields and practical filtering options. Results reflect the public data available at run time, enabling dependable operational workflows without assuming completeness beyond what the source exposes.

### Why Use This Actor

- **Market research and analytics teams:** build structured extraction workflows for pricing, discounts, asset classes, locations, banks, and sale formats across Brazilian real estate auction listings.
- **Product and content teams:** populate internal property feeds, research tools, content operations, and review queues with normalized listing data.
- **Developers and data engineering teams:** feed downstream systems, warehouses, enrichment pipelines, and monitoring workflows with predictable JSON records.
- **Lead generation and enrichment teams:** identify target properties, locations, seller contexts, payment conditions, and broker information for qualification workflows.
- **Monitoring and competitive tracking teams:** schedule recurring collection to track availability, pricing movement, auction deadlines, and geographic supply changes.

### Common Use Cases

- **Market intelligence:** monitor auction supply, pricing, discount levels, property types, bank exposure, and geographic distribution.
- **Acquisition screening:** filter listings by state, city, price range, discount, property type, payment eligibility, sale type, or sale modality.
- **Lead generation:** build targeted prospect or opportunity lists from public real estate auction listings and related broker information.
- **Competitive monitoring:** track changes in available listings, auction timing, sale formats, and institution coverage over repeated runs.
- **Catalog and directory building:** populate internal databases with structured public property records, images, documents, and location fields.
- **Data enrichment:** add current public auction attributes to CRM, BI, portfolio, or analytics datasets.
- **Recurring reporting:** schedule periodic runs for dashboards, alerts, intake reviews, and market movement analysis.

### Quick Start

1. Choose the target scope using location, price, property type, discount, payment option, sale type, sale modality, date, bank, or limit fields.
2. For the first validation run, set a small `limit` such as `25` or `50`.
3. Run the actor in Apify Console.
4. Inspect the first dataset records and confirm the fields match your reporting, review, or ingestion workflow.
5. Broaden or narrow filters after validation, then increase `limit` for production collection.
6. Schedule the actor when you need recurring monitoring or refreshed datasets.

### Input Parameters

This actor accepts optional filters for location, price, property type, discount, financing, sale format, dates, banks, and maximum result count.

| Parameter | Type | Description | Default |
|---|---:|---|---:|
| `location_state` | string | Brazilian state name or abbreviation, such as `SP`, `RJ`, or `Minas Gerais`. Use it to focus results on one state. | – |
| `location_city` | string | Brazilian city name. For precise regional filtering, combine it with `location_state`. | – |
| `min_price` | integer | Minimum property price to include, in Brazilian reais (BRL). Must be at least `1` when provided. | – |
| `max_price` | integer | Maximum property price to include, in Brazilian reais (BRL). Must be at least `1` when provided. | – |
| `property_type` | array of strings | Property types to include. Allowed values: `Agency`, `Apartment`, `Industrial Land`, `Rural Land`, `House`, `Commercial Property`, `Warehouse`, `Parking Space`, `Unspecified`, `Other`, `Land / Plot`. | – |
| `min_discount` | string | Minimum discount percentage to include. Allowed values: `0`, `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55`, `60`, `65`, `70`, `75`, `80`, `85`, `90`, `95`, `100`. | – |
| `max_discount` | string | Maximum discount percentage to include. Allowed values: `0`, `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55`, `60`, `65`, `70`, `75`, `80`, `85`, `90`, `95`, `100`. | – |
| `financement_method` | array of strings | Payment methods listings must support. Allowed values: `FGTS (Severance Fund)`, `Financing`. | – |
| `sale_type` | array of strings | Sale types to include. Allowed values: `Direct Purchase`, `Online Sale`, `Open Bidding (Caixa)`, `SFI Auction (Caixa)`. | – |
| `condo_debt` | array of strings | Condo debt conditions to include. Allowed values: `Buyer Pays Condo Debt`, `Buyer Pays up to 10% of Appraised Value`. | – |
| `sale_modality` | array of strings | Sale modalities to include. Allowed values: `PGFN Acquisition`, `Extrajudicial Auction`, `Judicial Auction`, `Other`, `Private Sale`, `Direct Sale`. | – |
| `auction_end_before` | string | Latest auction end date to include. Use an Apify date picker value to include listings ending on or before the selected date. | – |
| `listing_date_from` | string | Earliest listing inclusion date to include. Use an Apify date picker value to focus on listings added on or after the selected date. | – |
| `banks` | array of strings | Banks to include. Allowed values: `Caixa Econômica Federal CEF`, `Banco do Brasil`, `Banco BRB`, `Banco Inter`, `Banco Santander`, `Bradesco`, `Emgea`, `Fundação Assefaz`, `Itaú Unibanco`. | – |
| `limit` | integer | Maximum number of listings to save for this run configuration. Must be at least `1` when provided. Leave empty to collect as many matching records as available during the run. | – |

### Choosing Inputs

Use narrower filters when you need a targeted dataset, such as one state, one city, a defined price band, a specific property type, or listings with a minimum discount. Use broader filters when the goal is discovery, market mapping, or a more complete view of available public listings. Location fields control geographic scope, price and discount fields control financial screening, property type controls asset category, and date fields help align records with your review window. Bank, sale type, sale modality, payment option, and condo debt fields are useful when your operating process only accepts certain transaction structures. Start with a small `limit` to validate output quality, then increase it after confirming the records match your downstream workflow.

### Example Inputs

#### Location and Property Type Review

```json
{
  "location_state": "SP",
  "location_city": "São Paulo",
  "property_type": ["Apartment", "House"],
  "min_price": 150000,
  "max_price": 800000,
  "limit": 50
}
````

#### Discount-Focused Opportunity Screening

```json
{
  "location_state": "SC",
  "property_type": ["House", "Land / Plot"],
  "min_discount": "40",
  "sale_type": ["Online Sale", "Direct Purchase"],
  "banks": ["Caixa Econômica Federal CEF"],
  "limit": 75
}
```

#### Recent Listing Monitoring

```json
{
  "location_state": "RJ",
  "listing_date_from": "2026-04-01",
  "auction_end_before": "2026-06-30",
  "financement_method": ["Financing"],
  "sale_modality": ["Judicial Auction", "Extrajudicial Auction"],
  "limit": 100
}
```

### Output

#### Output Destination

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

When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output.

#### Record Envelope And Stable Identifiers

The documented output shape is a real estate auction listing record. The strongest recommended idempotency key is `id`; use `url` or `fingerprint` as a secondary key when reconciling records across systems.

For deduplication and upserts, store records by `id` and update mutable listing fields such as prices, dates, availability-related text, and payment terms on later runs. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs. The `fingerprint` field provides an additional stable record signature, and `sourceUrl` records the public search or listing context associated with the collected record.

#### Examples

##### Example: listing

```json
{
  "id": "2295647",
  "url": "https://www.leilaoimovel.com.br/imovel/sc/xanxere/residencial-lot-bem-morar-3-quartos-2-vagas-na-garagem-varanda-sacada-area-de-servico-imovel-caixa-economica-federal-cef-2295647-1444417607230-venda-direta-caixa",
  "title": "Casa Caixa em Xanxerê / SC - 2295647",
  "address": "RUA RENATO MARCANTE,N. 106 LT 45, QD D, SAO JORGE - CEP: 89820-000, XANXERE - SANTA CATARINA",
  "imageUrl": "https://image.leilaoimovel.com.br/images/47/casa-caixa-em-xanxere-sc-2295647-imovel-2295647-03e5bad2e6b618b3f61f8376bc0d62a260ebe65b-g.webp",
  "currentPrice": "R$ 322.799,34",
  "appraisalPrice": "R$ 595.881,72",
  "discountPercent": 46,
  "closingDate": "28/04/2026 às 18:00",
  "categories": [
    "Venda Online"
  ],
  "propertyType": "Casa",
  "city": "Xanxerê",
  "state": "SC",
  "detailPageUrl": "https://www.leilaoimovel.com.br/imovel/sc/xanxere/residencial-lot-bem-morar-3-quartos-2-vagas-na-garagem-varanda-sacada-area-de-servico-imovel-caixa-economica-federal-cef-2295647-1444417607230-venda-direta-caixa",
  "usableArea": "329,79 m²",
  "landArea": "371,00 m²",
  "bedrooms": 3,
  "parkingSpaces": 2,
  "detailAlerts": [
    "Encerra em: 28/04/2026 às 18:00",
    "Imóvel NÃO ACEITA Financiamento",
    "Imóvel NÃO ACEITA Parcelamento",
    "Imóvel NÃO ACEITA FGTS",
    "Somente à vista",
    "Condomínio: Sob responsabilidade do comprador, até o limite de 10% em relação ao valor de avaliação do imóvel. A CAIXA realizará o pagamento apenas do valor que exceder o limite de 10% do valor de avaliação.",
    "Tributos: Sob responsabilidade do comprador.",
    "Existe área não averbada. Corretores credenciados"
  ],
  "acceptsFinancing": false,
  "acceptsInstallments": false,
  "acceptsFgts": false,
  "cashOnly": true,
  "paymentTerms": "Somente à vista",
  "caixaAccreditedBroker": "LEILÃO IMÓVEL IMOBILIÁRIA",
  "creciState": "SC",
  "creciNumber": "8491",
  "locationText": "SC /Xanxerê",
  "propertyTypeDetail": "Casa /Venda Online",
  "bank": "Caixa",
  "originCode": "1444417607230",
  "propertyCode": "2295647",
  "inclusionDate": "02/06/2025",
  "registrationNumber": "33273",
  "judicialDistrict": "XANXERE-SC",
  "registryOffice": "01",
  "realEstateRegistration": "19779",
  "negativeAuctionsAnnotation": "Averbado",
  "description": "LOT BEM MORAR - 3 Quartos, 2 Vagas na Garagem, Varanda/sacada, Área de Serviço, 4 Wc, Sala, Cozinha. . RUA RENATO MARCANTE,N. 106 LT 45, QD D, SAO JORGE - CEP: 89820-000, XANXERE - SANTA CATARINA - Condomínio: Sob responsabilidade do comprador, até o limite de 10% em relação ao valor de avaliação do imóvel. A CAIXA realizará o pagamento apenas do valor que exceder o limite de 10% do valor de avaliação. - Tributos: Sob responsabilidade do comprador. - Existe área não averbada. Corretores credenciados",
  "documents": [
    {
      "label": "Matricula",
      "url": "https://venda-imoveis.caixa.gov.br/editais/matricula/SC/1444417607230.pdf"
    },
    {
      "label": "Edital",
      "url": "https://venda-imoveis.caixa.gov.br/editais/regras-VOL/comocomprar.pdf?v=01"
    }
  ],
  "imageUrls": [
    "https://image.leilaoimovel.com.br/images/47/casa-caixa-em-xanxere-sc-2295647-imovel-2295647-03e5bad2e6b618b3f61f8376bc0d62a260ebe65b-g.webp"
  ],
  "coordinates": {
    "latitude": -26.8612337,
    "longitude": -52.3947944
  },
  "detailLoadedUrl": "https://www.leilaoimovel.com.br/imovel/sc/xanxere/residencial-lot-bem-morar-3-quartos-2-vagas-na-garagem-varanda-sacada-area-de-servico-imovel-caixa-economica-federal-cef-2295647-1444417607230-venda-direta-caixa",
  "seed_id": "5fc3b6fbe36e",
  "seed_type": "url",
  "seed_value": "https://www.leilaoimovel.com.br/encontre-seu-imovel?s=&venda=1,11,10,7",
  "page_index": 1,
  "fingerprint": "a63f46422be81ed444ea",
  "sourceUrl": "https://www.leilaoimovel.com.br/encontre-seu-imovel?s=&venda=1%2C11%2C10%2C7"
}
```

### Field Reference

#### Listing Record

**id** *(string, required)*: Stable listing identifier.

**url** *(string, required)*: Public listing URL.

**title** *(string, required)*: Listing title.

**address** *(string, optional)*: Public address text for the property.

**imageUrl** *(string, optional)*: Primary image URL.

**currentPrice** *(string, optional)*: Current listing price as displayed, in BRL.

**appraisalPrice** *(string, optional)*: Appraisal value as displayed, in BRL.

**discountPercent** *(number, optional)*: Discount percentage when available.

**closingDate** *(string, optional)*: Auction or listing closing date as displayed by the source.

**categories** *(array of strings, optional)*: Listing categories or sale labels.

**propertyType** *(string, optional)*: Property type, such as house, apartment, land, warehouse, or commercial property.

**city / state** *(string, optional)*: Municipality and Brazilian state abbreviation.

**detailPageUrl** *(string, optional)*: Public detail page URL for the listing.

**usableArea / landArea** *(string, optional)*: Property area values as displayed, typically in square meters (`m²`).

**bedrooms / parkingSpaces** *(number, optional)*: Bedroom and parking space counts when provided.

**detailAlerts** *(array of strings, optional)*: Public notices, conditions, payment restrictions, debt notes, or listing alerts.

**acceptsFinancing / acceptsInstallments / acceptsFgts / cashOnly** *(boolean, optional)*: Payment eligibility and cash-only indicators.

**paymentTerms** *(string, optional)*: Payment terms text.

**caixaAccreditedBroker** *(string, optional)*: Accredited broker name when available.

**creciState / creciNumber** *(string, optional)*: Broker CRECI registration state and number when available.

**locationText** *(string, optional)*: Source-provided location label.

**propertyTypeDetail** *(string, optional)*: Combined property type and sale label as displayed.

**bank** *(string, optional)*: Bank or institution associated with the listing.

**originCode** *(string, optional)*: Source-provided origin code.

**propertyCode** *(string, optional)*: Source-provided property code.

**inclusionDate** *(string, optional)*: Listing inclusion date as displayed.

**registrationNumber** *(string, optional)*: Registration number when available.

**judicialDistrict** *(string, optional)*: Judicial district associated with the property when provided.

**registryOffice** *(string, optional)*: Registry office identifier when provided.

**realEstateRegistration** *(string, optional)*: Real estate registration number when provided.

**negativeAuctionsAnnotation** *(string, optional)*: Public annotation related to negative auctions when available.

**description** *(string, optional)*: Public listing description and relevant conditions.

**documents** *(array of objects, optional)*: Public document links associated with the listing.

**documents.label** *(string, optional)*: Document label.

**documents.url** *(string, optional)*: Public document URL.

**imageUrls** *(array of strings, optional)*: All collected image URLs for the listing.

**coordinates** *(object, optional)*: Geographic coordinates when available.

**coordinates.latitude** *(number, optional)*: Latitude.

**coordinates.longitude** *(number, optional)*: Longitude.

**detailLoadedUrl** *(string, optional)*: Final public detail URL associated with the record.

**seed\_id** *(string, optional)*: Run context identifier for the input scope that produced the record.

**seed\_type** *(string, optional)*: Run context type for the input scope.

**seed\_value** *(string, optional)*: Input scope value associated with the record.

**page\_index** *(number, optional)*: Result page index associated with the record.

**fingerprint** *(string, optional)*: Stable record fingerprint suitable as a secondary deduplication key.

**sourceUrl** *(string, optional)*: Public source URL associated with the record collection context.

### Data Quality, Guarantees, And Handling

- **Structured records:** results are normalized into predictable JSON objects for downstream use.
- **Best-effort extraction:** fields may vary by region, session, availability, or source-side presentation changes.
- **Optional fields:** null-check optional fields in downstream code, especially documents, coordinates, broker details, registration data, and payment indicators.
- **Deduplication:** use `id` as the primary stable key, with `url` or `fingerprint` as a secondary key when needed.
- **Freshness:** results reflect the publicly available data at run time.
- **Repeated runs:** use the recommended idempotency key when syncing data into warehouses, CRMs, or search indexes.

### Tips For Best Results

- Start with a small `limit` to validate the output shape before scaling up.
- Use one state, city, property type, bank, or sale segment per run when you need cleaner segmentation.
- Leave optional filters empty when the goal is broad discovery.
- Add filters gradually to understand how each field changes coverage.
- Use `listing_date_from` and `auction_end_before` for monitoring windows and recurring review cycles.
- Schedule recurring runs for monitoring workflows instead of relying on manual one-off collection.
- Store `id`, `url`, and `fingerprint` to support deduplication over time.

### How To Run On Apify

1. Open the Actor in Apify Console.
2. Configure the available input fields for the target scope.
3. Set the maximum number of outputs to collect with `limit`, if you want a capped run.
4. Click **Start** and wait for the run to finish.
5. Open the dataset and inspect the first records.
6. Download results in JSON, CSV, Excel, or other supported formats.

### Scheduling & Automation

#### Scheduling

**Automated Data Collection**

Schedule runs to keep property auction datasets fresh for monitoring, reporting, and enrichment workflows. Recurring runs are especially useful for tracking listing availability, auction deadlines, and changing market conditions.

- Navigate to **Schedules** in Apify Console
- Create a new schedule, such as daily, weekly, or custom cron
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing

#### Integration Options

- **BI dashboards:** monitor pricing, discounts, availability, property types, banks, and geographic coverage over time.
- **Data warehouses:** load normalized listing records into historical tables for analysis and reporting.
- **CRM enrichment:** sync property, broker, location, and sale-condition attributes into lead or opportunity records.
- **Google Sheets or Airtable:** review smaller regional or filtered runs in lightweight operational workflows.
- **Webhooks:** trigger validation, ingestion, notification, or alerting workflows after each completed run.
- **Data enrichment pipelines:** combine auction listing records with internal portfolio, risk, valuation, or acquisition datasets.

### Export Formats And Downstream Use

Apify datasets can be exported or consumed by downstream systems for operational review, analysis, and automation.

- **JSON:** for APIs, applications, and data pipelines
- **CSV or Excel:** for spreadsheet workflows and manual review
- **API access:** for automated ingestion into internal systems
- **BI and warehouses:** for reporting, dashboards, and historical analysis

### Performance

Estimated run times:

- **Small runs (< 1,000 outputs):** ~3–10 minutes
- **Medium runs (1,000–5,000 outputs):** ~8–25 minutes
- **Large runs (5,000+ outputs):** ~20–35 minutes

Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.

### Limitations

- Availability depends on what <https://www.leilaoimovel.com.br> publicly exposes at run time.
- Some optional fields may be missing on sparse listings or listing types with limited public detail.
- Very broad searches may take longer or require higher `limit` values.
- Source-side changes can affect field availability, labels, or naming.
- Regional, account, or availability differences may change visible results.
- Dates, prices, and sale conditions should be treated as time-sensitive public information and rechecked for critical decisions.

### Troubleshooting

- **No results returned:** check filters, state or city spelling, selected categories, date windows, and whether the target has matching public records.
- **Fewer results than expected:** broaden filters, raise `limit`, or verify that enough matching public listings are available.
- **Some fields are empty:** optional fields depend on what each listing publicly provides.
- **Run takes longer than expected:** reduce scope, lower `limit` for validation, or split broad collection into smaller regional or category segments.
- **Output changed:** compare the current output with the field reference and include a small sample if support is needed.

### FAQ

#### What data does this actor collect?

It collects public real estate auction listing data from Leilão Imóvel, including property details, prices, discounts, dates, location, sale terms, documents, images, payment indicators, and listing metadata.

#### Can I filter by location, category, date, price, or other criteria?

Yes. The actor supports filters for state, city, price range, property type, discount range, payment options, sale type, condo debt rules, sale modality, auction end date, listing inclusion date, banks, and result limit.

#### Why did I receive fewer results than my limit?

`limit` is a maximum, not a guaranteed count. The actor may return fewer records when the public source has fewer matching listings for the selected filters.

#### Can I schedule recurring runs?

Yes. Use Apify schedules to run the actor on a daily, weekly, or custom cadence for monitoring, reporting, and data refresh workflows.

#### How do I avoid duplicates across runs?

Use `id` as the primary idempotency key when storing records. You can also retain `url` and `fingerprint` as secondary keys for reconciliation.

#### Can I export the data to CSV, Excel, or JSON?

Yes. Apify datasets support exports in JSON, CSV, Excel, and other formats available in Apify Console.

#### Does this actor collect private data?

No. The actor is intended to collect publicly available listing information from Leilão Imóvel.

#### Are prices and auction dates always current?

Results reflect the public data available at run time. For time-sensitive acquisition decisions, run the actor again or verify the listing directly on the source site.

#### What should I include when reporting an issue?

Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps illustrate the issue.

### Compliance & Ethics

#### Responsible Data Collection

This actor collects publicly available real estate auction listing information from <https://www.leilaoimovel.com.br> for legitimate business purposes, including:

- **Real estate** research and market analysis
- **Auction opportunity screening**
- **Portfolio monitoring and data enrichment**

Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and the target site’s terms. This section is informational and not legal advice.

#### Best Practices

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

### Support

For help, use the actor page or Issues. Include the input used with any sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample when it is useful for diagnosis.

# Actor input Schema

## `location_state` (type: `string`):

Enter a Brazilian state name or abbreviation, such as SP, RJ, or Minas Gerais. Use this to focus the collection on listings in one state.

## `location_city` (type: `string`):

Enter a Brazilian city name to focus results on that municipality. For the most precise setup, combine it with the matching state.

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

Enter the lowest property price to include, in Brazilian reais. Leave empty if you do not want a minimum price filter.

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

Enter the highest property price to include, in Brazilian reais. Leave empty if higher-priced listings should remain eligible.

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

Select one or more property types to include, such as apartments, houses, warehouses, land, or commercial properties. Leave empty to include all supported property types.

## `min_discount` (type: `string`):

Choose the lowest discount percentage to include. Leave empty when you do not want to require a minimum discount.

## `max_discount` (type: `string`):

Choose the highest discount percentage to include. Leave empty if listings with any higher discount should remain eligible.

## `financement_method` (type: `array`):

Select the payment methods that listings must support. Choose multiple options when either financing path is acceptable.

## `sale_type` (type: `array`):

Select one or more sale types to include, such as direct purchase, online sale, open bidding, or SFI auction.

## `condo_debt` (type: `array`):

Select the condo debt conditions you want listings to match. Leave empty if condo debt handling should not narrow the collection.

## `sale_modality` (type: `array`):

Select the sale modalities to include, such as judicial auction, extrajudicial auction, private sale, or direct sale.

## `auction_end_before` (type: `string`):

Choose the latest auction end date to include. Use this when you only want listings ending on or before a specific date.

## `listing_date_from` (type: `string`):

Choose the earliest listing inclusion date to include. Use this to focus on listings added on or after a specific date.

## `banks` (type: `array`):

Select one or more banks to include in the results. Selecting several banks broadens coverage while still keeping the run institution-focused.

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

Enter the maximum number of listings to save for this run configuration. Leave empty to collect as many matching listings as are available during the run.

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

Fetch each listing detail page to add detail-only fields. Disable this for faster runs that save only fields available on search result pages.

## Actor input object example

```json
{
  "limit": 100,
  "enrich_data": false
}
```

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

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Leilao Imovel Scraper | $1.5 / 1k | Fast & Reliable",
        "description": "Extract structured real estate auction listings across Brazil with property details, images, seller data and full descriptions from Leilão Imóvel. Built for enterprise-grade real estate intelligence, opportunity screening, portfolio monitoring, and automated data pipelines.",
        "version": "0.0",
        "x-build-id": "2wO7jUdNPtW1MSBkc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihtahta~leilao-imovel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihtahta-leilao-imovel-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~leilao-imovel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihtahta-leilao-imovel-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~leilao-imovel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihtahta-leilao-imovel-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": {
                    "location_state": {
                        "title": "Choose a State (Optional)",
                        "type": "string",
                        "description": "Enter a Brazilian state name or abbreviation, such as SP, RJ, or Minas Gerais. Use this to focus the collection on listings in one state."
                    },
                    "location_city": {
                        "title": "Choose a City (Optional)",
                        "type": "string",
                        "description": "Enter a Brazilian city name to focus results on that municipality. For the most precise setup, combine it with the matching state."
                    },
                    "min_price": {
                        "title": "Set Minimum Price",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter the lowest property price to include, in Brazilian reais. Leave empty if you do not want a minimum price filter."
                    },
                    "max_price": {
                        "title": "Set Maximum Price",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter the highest property price to include, in Brazilian reais. Leave empty if higher-priced listings should remain eligible."
                    },
                    "property_type": {
                        "title": "Choose Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select one or more property types to include, such as apartments, houses, warehouses, land, or commercial properties. Leave empty to include all supported property types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Agency",
                                "Apartment",
                                "Industrial Land",
                                "Rural Land",
                                "House",
                                "Commercial Property",
                                "Warehouse",
                                "Parking Space",
                                "Unspecified",
                                "Other",
                                "Land / Plot"
                            ],
                            "enumTitles": [
                                "Agency | Agência",
                                "Apartment | Apartamento",
                                "Industrial Land | Área Industrial",
                                "Rural Land | Área Rural",
                                "House | Casa",
                                "Commercial Property | Comercial",
                                "Warehouse | Galpão",
                                "Parking Space | Garagem",
                                "Unspecified | Não Identificado",
                                "Other | Outros",
                                "Land / Plot | Terreno"
                            ]
                        }
                    },
                    "min_discount": {
                        "title": "Set Minimum Discount",
                        "enum": [
                            "0",
                            "5",
                            "10",
                            "15",
                            "20",
                            "25",
                            "30",
                            "35",
                            "40",
                            "45",
                            "50",
                            "55",
                            "60",
                            "65",
                            "70",
                            "75",
                            "80",
                            "85",
                            "90",
                            "95",
                            "100"
                        ],
                        "type": "string",
                        "description": "Choose the lowest discount percentage to include. Leave empty when you do not want to require a minimum discount."
                    },
                    "max_discount": {
                        "title": "Set Maximum Discount",
                        "enum": [
                            "0",
                            "5",
                            "10",
                            "15",
                            "20",
                            "25",
                            "30",
                            "35",
                            "40",
                            "45",
                            "50",
                            "55",
                            "60",
                            "65",
                            "70",
                            "75",
                            "80",
                            "85",
                            "90",
                            "95",
                            "100"
                        ],
                        "type": "string",
                        "description": "Choose the highest discount percentage to include. Leave empty if listings with any higher discount should remain eligible."
                    },
                    "financement_method": {
                        "title": "Choose Financing Methods",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select the payment methods that listings must support. Choose multiple options when either financing path is acceptable.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "FGTS (Severance Fund)",
                                "Financing"
                            ],
                            "enumTitles": [
                                "FGTS (Severance Fund) | FGTS",
                                "Financing | Financiamento"
                            ]
                        }
                    },
                    "sale_type": {
                        "title": "Choose Sale Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select one or more sale types to include, such as direct purchase, online sale, open bidding, or SFI auction.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Direct Purchase",
                                "Online Sale",
                                "Open Bidding (Caixa)",
                                "SFI Auction (Caixa)"
                            ],
                            "enumTitles": [
                                "Direct Purchase | Compra Direta",
                                "Online Sale | Venda Online",
                                "Open Bidding (Caixa) | Licitação Aberta Caixa",
                                "SFI Auction (Caixa) | Leilão SFI Caixa"
                            ]
                        }
                    },
                    "condo_debt": {
                        "title": "Choose Condo Debt Rules",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select the condo debt conditions you want listings to match. Leave empty if condo debt handling should not narrow the collection.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Buyer Pays Condo Debt",
                                "Buyer Pays up to 10% of Appraised Value"
                            ],
                            "enumTitles": [
                                "Buyer Pays Condo Debt | Arrematante Paga",
                                "Buyer Pays up to 10% of Appraised Value | Arrematante paga até 10% da avaliação"
                            ]
                        }
                    },
                    "sale_modality": {
                        "title": "Choose Sale Modalities",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select the sale modalities to include, such as judicial auction, extrajudicial auction, private sale, or direct sale.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "PGFN Acquisition",
                                "Extrajudicial Auction",
                                "Judicial Auction",
                                "Other",
                                "Private Sale",
                                "Direct Sale"
                            ],
                            "enumTitles": [
                                "PGFN Acquisition | Comprei PGFN",
                                "Extrajudicial Auction | Extrajudicial",
                                "Judicial Auction | Judicial",
                                "Other | Outro",
                                "Private Sale | Particular",
                                "Direct Sale | Venda Direta"
                            ]
                        }
                    },
                    "auction_end_before": {
                        "title": "Set Latest Auction End Date",
                        "type": "string",
                        "description": "Choose the latest auction end date to include. Use this when you only want listings ending on or before a specific date."
                    },
                    "listing_date_from": {
                        "title": "Set Earliest Listing Date",
                        "type": "string",
                        "description": "Choose the earliest listing inclusion date to include. Use this to focus on listings added on or after a specific date."
                    },
                    "banks": {
                        "title": "Choose Banks",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select one or more banks to include in the results. Selecting several banks broadens coverage while still keeping the run institution-focused.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Caixa Econômica Federal CEF",
                                "Banco do Brasil",
                                "Banco BRB",
                                "Banco Inter",
                                "Banco Santander",
                                "Bradesco",
                                "Emgea",
                                "Fundação Assefaz",
                                "Itaú Unibanco"
                            ]
                        }
                    },
                    "limit": {
                        "title": "Set Maximum Results per Input",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter the maximum number of listings to save for this run configuration. Leave empty to collect as many matching listings as are available during the run."
                    },
                    "enrich_data": {
                        "title": "Enrich Data",
                        "type": "boolean",
                        "description": "Fetch each listing detail page to add detail-only fields. Disable this for faster runs that save only fields available on search result pages.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
